聊聊自動化測試框架

無論是在自動化測試實踐,還是日常交流中,經常聽到一個詞:框架。之前學習自動化測試的過程中,一直對“框架”這個詞知其然不知其所以然。

最近看了很多自動化相關的資料,加上自己的一些實踐,算是對“框架”有了一些理解,這篇博客,就聊聊自動化框架的一些事吧。。。

?

一、什么是框架

框架(framework)是一個框子——指其約束性,也是一個架子——指其支撐性。是一個基本概念上的結構,用于去解決或者處理復雜的問題。

在軟件工程中,框架(Framework)是整個或部分系統的可重用設計,表現為一組抽象構件及構件實例間交互的方法;

另一種定義認為,框架是可被應用開發者定制的應用骨架,前者是從應用方面而后者是從目的方面給出的定義。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?—— 百度百科

上面的概念比較抽象,換另一個角度解釋:

1、框架本身一般不完整到可以解決特定問題;

2、框架天生就是為擴展而設計的;

3、框架里面可以為后續擴展的組件提供很多輔助性、支撐性的方便易用的工具,也就是說框架是配套了一些幫助解決某類問題的庫(libraries)或工具(tools)。

約束性:針對解決特定問題的軟件框架會首先定義問題的邊界,進而將相關的軟件組件約束在這個邊界內,保持框架在解決問題方面上的內聚性。

支撐性:框架本身不解決什么問題,但給了解決問題的相關組件一個組合底子,這個底子的科學性和易用性直接影響在此之上進一步開發的科學性和方便性。

                                              —— 知乎

上面的2個對框架的解釋和定義,看起來也并沒有很簡單直白的說清楚什么是框架,下面是我的一些理解:

定義:為解決某些特定問題而約束邊界,支撐整個問題解決方案,配套了一些解決問題的組件而構成的工具

特定問題:什么問題?——自動化測試

約束邊界:為什么約束?——明確測試范圍和目的

解決方案:用什么方案解決問題?——編程語言+工具+其他

構成工具的組件:哪些組件?—— 用例、腳本、數據、日志、報告、通知

工具:特點是什么?—— 靈活性、可擴展性、高內聚低耦合

?

二、自動化測試

1、為什么要進行自動化測試?

①、黑盒測試回歸效率低

②、手動測試的偶然性和不確定性

③、回歸的覆蓋率不足

④、交付的產品質量無法保證,全靠評估

⑤、系統越復雜,問題越多

⑥、上線時間長、構件失敗率高導致的蝴蝶效應(迭代快,加班多)

2、自動化測試能解決什么問題?

①、提高出現問題后的響應速率

②、降低回歸成本

③、提高回歸覆蓋率

④、提高回歸效率

⑤、提高回歸的穩定性

3、自動化測試的不足有哪些?

①、無法減少成本投入,而是為了加快測試結果反饋,提升測試質量

②、自動化適用于回歸和冒煙,而不是發現BUG

③、錄制回放功能是雞肋,可視化并不是一個很好的做法

④、不是所有所有系統所有功能都適合做自動化測試

?

三、自動化測試框架

構成框架的組件,最起碼應該具備以下的功能:

Log:日志記錄和管理功能,針對不同的情況,設置不同的日志級別,方便定位問題;

Report:測試報告生成和管理以及即時通知,測試結果快速響應;

Source:配置文件、靜態資源的管理,遵循高內聚低耦合原則;

Common:公共函數、方法以及通用操作的管理,遵循高內聚低耦合原則;

TestCase:測試用例管理功能,一個功能點對應一個或者多個case,盡可能的提高覆蓋率;

TestData:測試數據管理功能,數據與腳本分離,降低維護成本,提高可移植性;

TestSuite:測試組件管理功能,針對不同場景不同需求,組裝構建不同的測試框架,遵循框架的靈活性和擴展性;

Statistics:測試結果統計管理功能,每次執行測試的結果統計、分析、對比以及反饋,數據驅動,為軟件優化和流程改進,提供參考;

Continuous:持續集成環境,即CI環境,包括測試文件提交、掃描編譯、執行測試、生成報告及時通知等功能,持續集成是自動化測試的核心

?

四、常見的自動化測試框架

1、接口自動化框架:

①、java+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine

②、python+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine

③、python+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine

④、jmeter+Maven/Ant+Jenkins+MySQL+testlink/redmine

2、UI自動化測試框架

①、java+selenium/appium+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine

②、python+selenium/appium+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine

③、python+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine

通過上面的一些常見框架,你發現了什么?

它們都擁有共同特性:編程語言+單元測試框架+掃描編譯工具+持續集成工具+數據庫+項目管理工具

編程語言:編寫測試腳本、日志記錄和輸出;

單元測試框架:提供測試腳本運行、異常校驗等一些列的配置;

掃描編譯工具:測試文件掃描編譯,一般配合持續集成工具使用效果更佳;

持續集成工具:Jenkins,經典的持續集成工具;

數據庫:測試數據管理;

項目管理工具:測試結果統計管理;

PS:自動化測試工具太多,上面只是列舉了使用率較高以及我個人還算了解的一些開源工具,具體的框架選型,需要根據具體項目特點和團隊、個人技術特點來決定!

?

關于自動化測試框架的一些理解和思考總結,就是上面這些內容,提到的一些框架組件可能存在不合理的地方,僅供參考,如有更好的建議,請指出,不勝感激。。。

?

轉載于:https://www.cnblogs.com/imyalost/p/9034194.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/389644.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389644.shtml
英文地址,請注明出處:http://en.pswp.cn/news/389644.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

1971. Find if Path Exists in Graph

1971. Find if Path Exists in Graph 有一個具有 n個頂點的 雙向 圖,其中每個頂點標記從 0 到 n - 1(包含 0 和 n - 1)。圖中的邊用一個二維整數數組 edges 表示,其中 edges[i] [ui, vi] 表示頂點 ui 和頂點 vi 之間的雙向邊。 …

移動磁盤文件或目錄損壞且無法讀取資料如何找回

文件或目錄損壞且無法讀取說明這個盤的文件系統結構損壞了。在平時如果數據不重要,那么可以直接格式化就能用了。但是有的時候里面的數據很重要,那么就必須先恢復出數據再格式化。具體恢復方法可以看正文了解(不格式化的恢復方法)…

python 平滑時間序列_時間序列平滑以實現更好的聚類

python 平滑時間序列In time series analysis, the presence of dirty and messy data can alter our reasonings and conclusions. This is true, especially in this domain, because the temporal dependency plays a crucial role when dealing with temporal sequences.在…

基于SmartQQ協議的QQ自動回復機器人-1

0. 本項目的原始代碼及我二次開發后的代碼 1. 軟件安裝:【myeclipse6.0 maven2】 0. https://blog.csdn.net/zgmzyr/article/details/6886440 1. https://blog.csdn.net/shuzhe66/article/details/45009175 2. https://www.cnblogs.com/whgk/p/7112560.html<mirror><…

1725. 可以形成最大正方形的矩形數目

1725. 可以形成最大正方形的矩形數目 給你一個數組 rectangles &#xff0c;其中 rectangles[i] [li, wi] 表示第 i 個矩形的長度為 li 、寬度為 wi 。 如果存在 k 同時滿足 k < li 和 k < wi &#xff0c;就可以將第 i 個矩形切成邊長為 k 的正方形。例如&#xff0c…

幫助學生改善學習方法_學生應該如何花費時間改善自己的幸福

幫助學生改善學習方法There have been numerous studies looking into the relationship between sleep, exercise, leisure, studying and happiness. The results were often quite like how we expected, though there have been debates about the relationship between sl…

Spring Boot 靜態資源訪問原理解析

一、前言 springboot配置靜態資源方式是多種多樣&#xff0c;接下來我會介紹其中幾種方式&#xff0c;并解析一下其中的原理。 二、使用properties屬性進行配置 應該說 spring.mvc.static-path-pattern 和 spring.resources.static-locations這兩屬性是成對使用的&#xff0c;如…

深挖“窄帶高清”的實現原理

過去幾年&#xff0c;又拍云一直在點播、直播等視頻應用方面潛心鉆研&#xff0c;取得了不俗的成果。我們結合點播、直播、短視頻等業務中的用戶場景&#xff0c;推出了“省帶寬、壓成本”系列文章&#xff0c;從編碼技術、網絡架構等角度出發&#xff0c;結合又拍云的產品成果…

學習總結5 - bootstrap學習記錄1__安裝

1.bootstrap是什么&#xff1f; 簡潔、直觀、強悍的前端開發框架&#xff0c;說白了就是給后端二把刀開發網頁用的&#xff0c;讓web開發更迅速、簡單。 復制代碼 2.如何使用&#xff1f; 如圖所示到bootstrap中文網進行下載 復制代碼 下載完成之后&#xff0c;如圖所示&#x…

519. 隨機翻轉矩陣

519. 隨機翻轉矩陣 給你一個 m x n 的二元矩陣 matrix &#xff0c;且所有值被初始化為 0 。請你設計一個算法&#xff0c;隨機選取一個滿足 matrix[i][j] 0 的下標 (i, j) &#xff0c;并將它的值變為 1 。所有滿足 matrix[i][j] 0 的下標 (i, j) 被選取的概率應當均等。 …

模型的搜索和優化方法綜述:

一、常用的優化方法&#xff1a; 1.爬山 2.最陡峭下降 3.期望最大值 二、常用的搜索方法&#xff1a; 1.貪婪搜索 2.分支界定 3.寬度&#xff08;深度&#xff09;優先遍歷轉載于:https://www.cnblogs.com/xyp666/p/9042143.html

Redis 服務安裝

下載 客戶端可視化工具: RedisDesktopManager redis官網下載: http://redis.io/download windos服務安裝 windows服務安裝/卸載下載文件并解壓使用 管理員身份 運行命令行并且切換到解壓目錄執行 redis-service --service-install windowsR 打開運行窗口, 輸入 services.msc 查…

熊貓數據集_對熊貓數據框使用邏輯比較

熊貓數據集P (tPYTHON) Logical comparisons are used everywhere.邏輯比較隨處可見 。 The Pandas library gives you a lot of different ways that you can compare a DataFrame or Series to other Pandas objects, lists, scalar values, and more. The traditional comp…

初級功能筆試題-1

給我徒弟整理的一些理論性的筆試題&#xff0c;不喜勿噴。&#xff08;所以沒有答案哈&#xff09; 1、測試人員返測缺陷時&#xff0c;如果缺陷未修復&#xff0c;把缺陷的狀態置為下列什么狀態&#xff08;&#xff09;。 2、當驗證被測系統的主要業務流程和功能是否實現時&a…

ansbile--playbook劇本案例

個人博客轉至&#xff1a; www.zhangshoufu.com 通過ansible批量管理三臺服務器&#xff0c;使三臺服務器實現備份&#xff0c;web01、nfs、backup&#xff0c;把web和nfs上的重要文件被分到backup上&#xff0c;主機ip地址分配如下 CharacterIP地址IP地址主機名Rsync--server1…

5938. 找出數組排序后的目標下標

5938. 找出數組排序后的目標下標 給你一個下標從 0 開始的整數數組 nums 以及一個目標元素 target 。 目標下標 是一個滿足 nums[i] target 的下標 i 。 將 nums 按 非遞減 順序排序后&#xff0c;返回由 nums 中目標下標組成的列表。如果不存在目標下標&#xff0c;返回一…

決策樹之前要不要處理缺失值_不要使用這樣的決策樹

決策樹之前要不要處理缺失值As one of the most popular classic machine learning algorithm, the Decision Tree is much more intuitive than the others for its explainability. In one of my previous article, I have introduced the basic idea and mechanism of a Dec…

說說 C 語言中的變量與算術表達式

我們先來寫一個程序&#xff0c;打印英里與公里之間的對應關系表。公式&#xff1a;1 mile1.61 km 程序如下&#xff1a; #include <stdio.h>/* print Mile to Kilometre table*/ main() {float mile, kilometre;int lower 0;//lower limitint upper 1000;//upper limi…

gl3520 gl3510_帶有gl gl本機的跨平臺地理空間可視化

gl3520 gl3510Editor’s note: Today’s post is by Ib Green, CTO, and Ilija Puaca, Founding Engineer, both at Unfolded, an “open core” company that builds products and services on the open source deck.gl / vis.gl technology stack, and is also a major contr…

uiautomator +python 安卓UI自動化嘗試

使用方法基本說明&#xff1a;https://www.cnblogs.com/mliangchen/p/5114149.html&#xff0c;https://blog.csdn.net/Eugene_3972/article/details/76629066 環境準備&#xff1a;https://www.cnblogs.com/keeptheminutes/p/7083816.html 簡單實例 1.自動化安裝與卸載 &#…