Robot Framework自動化測試框架核心指南-如何做好自動化測試平台框架的設計


自動化測試如果需要能高效快速的支撐軟件項目的測試,項目的快速迭代以及上線,除了以上我們介紹的需要許多的Lib來支持以及需要高效的去編寫自動化測試案例外,還需要一個好的自動化測試框架平台來支撐我們的自動化測試案例的執行以及分析,自動化測試平台一般需要解決測試案例執行任務的創建,任務的管理,任務的調度,測試案例的解析,測試案例分別根據不同的測試類型分發給不同的測試工具或者測試Lib庫進行執行,並且需要對執行的數據進行分析,得出質量數據,然后才好給出對應的測試報告分析數據給測試經理,項目經理來輔助持續的改善項目版本的質量,下圖是一個自動化測試平台框架的架構設計圖。

 本文作者:張永清,轉載請注明出處:https://www.cnblogs.com/laoqing/p/13622088.html 節選自《Robot Framework 自動化測試框架核心指南》

框架圖中的自動化測試平台框架主要包含了4個部分,自動化測試案例編寫的IDE工具,自動化測試案例的執行,測試任務的管理和監控,測試案例執行后的數據分析。

一個通用的自動化測試案例編寫的IDE工具一般需要包含的功能如下圖所示。

 

 本文作者:張永清,轉載請注明出處:https://www.cnblogs.com/laoqing/p/13622088.html 節選自《Robot Framework 自動化測試框架核心指南》

友好的用戶案例編寫界面,通常一般可以表格或者表單的形式,比如RobotFramework,就是典型的表格界面,也可以用Eclipse的插件式開發實現這一需求。

在平台中,一個自動化測試案例的執行一般包括如下圖中的基本步驟,最核心的就是將解析的案例數據分發出去給不同的Lib庫去執行。

 本文作者:張永清,轉載請注明出處:https://www.cnblogs.com/laoqing/p/13622088.html 節選自《Robot Framework 自動化測試框架核心指南》

在做數據分析時,可以借用很多現在主流的大數據組件,如下圖所示,數據分析通常包括實時數據分析和離線數據分析,分析中我們還會用到很多消息隊列中間件,比如kafka,數據明細可以采用elasticsearch來進行存儲,這和elasticsearch本身的特點有關系,可以支持大數據的存儲以及方便以后我們來做全文檢索。

  

平台框架圖中包含的組件如下表所示。

IDE

RIDE,eclipse插件,idea插件

測試案例版本服務器

svn,git等版本控制服務器

自動化測試案例數據

自動測試案例文件

案例解析器

負責自動化測試案例文件數據的讀取和解析,翻譯成自動化測試工具或者自動化測試Lib庫可以執行的命令

資源監控和
資源管理

負責各個執行器,案例解析器以及自動化工具服務器的資源監控和資源管理

任務調度器

調度自動化測試執行任務在多個節點上的執行

自動化任務管理器

接受自動化任務的提交,自動化任務的管理(任務啟用,任務停用,任務新增,修改,刪除等)

告警

任務執行異常,超時等,自動產生告警

短信平台

告警短信發送,短信接收

郵件服務器

接收生成的測試報告或者告警短信,然后郵件發送給對應的相關人員

Kafka

執行日志數據的緩存存儲

Elasticsearch

測試案例執行的日志明細數據存儲

Kibana

是一個開源的分析和可視化平台,旨在與 Elasticsearch 進行結合。Kibana 提供了搜索、查看和與存儲在 Elasticsearch 索引中的數據進行交互的功能。開發者或運維人員可以輕松地執行高級數據分析,並在各種圖表、表格和地圖中可視化數據。

離線分析

負責對日志定時做離線分析處理,比如通過hive等大數據方式進行數據歸類分析

實時分析

將日志數據,通過大數據實時數據流的分析,提取案例執行過程的相關日志數據做實時的分析和統計,常用的實時流分析工具有spark,storm,flink等。

下圖是自動化平台框架設計的一個分層結構圖。

我們對常見的自動化測試架構思想做了一個如下的對比,如下表所示。

數據驅動測試

數據驅動測試的的思想是將我們的自動化測試腳本和測試數據放在共同的測試架構中,思想是提供可重用的測試邏輯,這樣來做的目的是減少測試維護的工作量以及便於改善測試案例的覆蓋率,測試案例需要輸入的測試數據和測試完成后的測試結果數據都會被存儲同一個數據庫或者數據源中,並且將測試的數據和測試邏輯分開,這樣測試數據放生了變化時,不會影響到我們的測試邏輯。並且使得同一套測試邏輯可以針對多種數據來進行測試,盡量來提高測試邏輯的使用效率和復用效率。

模塊驅動測試

模塊驅動測試的思想是使用獨立的腳本或者代碼來對應每一個待測試的模塊單元和功能,模塊驅動測試引入的是編程語言中的面向對象編程中的抽象和模塊獨立封裝的思想,即將測試代碼和每一個測試模塊進行解耦,這樣可以減低自動化測試腳本或者自動化測試代碼的維護成本,同時也增強了可擴展性,測試的執行者不需要知道單元模塊的內部實現,只需要調用單元模塊的對外提供的抽象接口方法即可,單元模塊的功能需求發生變化時,只需要修改該單元模塊的內部實現,對外的提供的抽象接口方法依然可以做到不發生變化。

關鍵字驅動測試

RobotFramework就是一種典型的關鍵字驅動測試的框架模式,關鍵字驅動測試通常也被認為是表格驅動測試,通過在表格中調用關鍵字來實現自動化測試,這種設計思想一般會將自動化測試拆分為設計和實現兩個不同的階段,RedWoodHQ自動化測試工具框架也是這種思想來實現,設計時需要盡量考慮關鍵字的通俗易懂以及通用性,也就是可以在不同的測試案例或者場景中可以高效的復用。關鍵字驅動測試的優點就在於自動化測試案例的編寫者不需要對腳本語言有非常深入的了解就可以完成自動化測試案例的編寫。

混合自動化測試

混合自動化測試是上面幾種自動化測試思想的綜合使用,關鍵字驅動測試和模塊驅動測試這兩種在很多情況下就可以完美的結合起來使用,比如我們可以使用RobotFramework提供的自定義用戶關鍵字來對單元模塊業務進行封裝,封裝完成后,再提供一個新的用戶自定義關鍵字出來,新的用戶自定義關鍵字就可以認為是一個抽象的接口。

基於模型測試

基於模型測試的思想一般用的較少,一般只能適合於特定的也是基於這種模型設計思想的系統,通常的情況下,這一測試模型是全部或者部分從待測試的軟件系統的功能模型中提取出來的。在測試模型中描述了待測試系統的抽象行為,因此從測試模型中也可以派生出功能測試案例。

行為驅動開發

行為驅動開發是一種敏捷開發的思想,Behavior Driven Development使用簡單的,特定於領域的腳本語言(DSL)將結構化自然語言語句轉換為通俗易懂的可執行測試,行為驅動開發的根基是一種“通用語言”,該語言通俗易懂,這種通用語言同時被客戶和開發者用來定義系統的行為,Cucumber 就是一種行為驅動開發的自動化測試工具。

備注:本文內容摘選自作者自己出版的Robot Framework自動化測試框架核心指南  一書。

關於自動化測試的更多內容,請關注:


Robot Framework自動化測試框架核心指南京東官方購買
Robot Framework自動化測試框架核心指南電子版試讀
Robot Framework自動化測試框架核心指南天貓官方旗艦店購買
Robot Framework自動化測試框架核心指南當當網購買
Robot Framework自動化測試框架核心指南 作者簽名版本購買

相關博文匯總:

RobotFramework下的http接口自動化Create Http Context關鍵字的使用

RobotFramework下的http接口自動化Get關鍵字的使用

RobotFramework下的http接口自動化post關鍵字的使用

如何創建一個自動化測試項目

RobotFramework下的http接口自動化Get Response Body關鍵字的使用

RobotFramework下的http接口自動化Get Response Status 關鍵字的使用

RobotFramework下的http接口自動化Get Response header 關鍵字的使用

RobotFramework下的http接口自動化Set Request Header 關鍵字的使用

RobotFramework下HttpLibrary庫其它關鍵字

RobotFramework下的http接口自動化Set Request Body 關鍵字的使用

RobotFramework下的http接口自動化Follow Response關鍵字的使用

RobotFramework自動化測試框架的基礎關鍵字(一)

RobotFramework自動化測試框架的基礎關鍵字(二)

RobotFramework自動化測試框架的基礎關鍵字(三)

RobotFramework自動化測試框架的基礎關鍵字(四)

RobotFramework自動化測試框架的基礎關鍵字(五)

RobotFramework自動化測試框架-移動手機自動化測試AppiumLibrary介紹

RobotFramework自動化測試框架-移動手機自動化測試Open Application關鍵字的使用

RobotFramework自動化測試框架-常用斷言關鍵字

RobotFramework自動化測試框架-移動手機自動化測試AppiumLibrary庫其它的常見自動化關鍵字

RobotFramework自動化測試框架-移動手機自動化測試Input Text和Click Button關鍵字的使用

RobotFramework自動化測試框架-移動手機自動化測試Clear Text關鍵字的使用

RobotFramework自動化測試框架-移動手機自動化測試Click Element關鍵字的使用

RobotFramework自動化測試框架-移動手機自動化測試Click A Point關鍵字的使用

RobotFramework自動化測試框架-移動手機自動化測試Click Element At Coordinates關鍵字的使用

RobotFramework自動化測試框架-移動手機自動化測試Get Element Location關鍵字的使用

RobotFramework自動化測試框架-移動手機自動化測試Get Network Connection Status和Set Network Connection Status關鍵字的使用

RobotFramework自動化測試框架-移動手機自動化測試Element Attribute Should Match關鍵字的使用

RobotFramework自動化測試框架-DatabaseLibrary庫的使用(對數據庫的操作)

RobotFramework自動化測試框架-使用Python編寫自定義的RobotFramework Lib

RobotFramework自動化測試框架-Selenium Web自動化(-)-Open Browser和Close Browser

RobotFramework自動化測試框架-Selenium Web自動化(二)關於在RobotFramework中如何使用Selenium很全的總結(上)

RobotFramework自動化測試框架-MongoDBLibrary庫的使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM