什么是框架?
框架(Framework)是整個或部分系統的可重用設計,
框架是用來解決代碼的組織及運行控制問題的。
在我們編寫自動化腳本的時候,經常需要讀取配置文件,讀取數據文件,發送請求,記錄日志,連接並對比數據庫數據。每個腳本里都重寫一遍各種方法不僅工作量大而且易錯。所以我們需要把公共的方法提取出來,封裝成單獨的模塊,放到公用方法包里。另外配置文件,數據文件,日志等我們也需要分類存到不同的文件夾下。這種對公共方法的封裝及對腳本及配置文件怎么組織的設計就叫做框架。
同時,一般框架除了完成對代碼及配置文件的組織之外還要提供運行的控制功能。比如批量執行,分模塊執行,生成報告,異常處理等等。
總結為以下3點:
封裝公共方法
代碼及配置文件的組織
執行控制
什么是測試框架?
一個完整的測試腳本(用例)一般包含以下幾個步驟:
環境准備或檢查
執行業務操作
斷言結果
清理環境
而測試框架一般還要完成用例加載,批量執行,異常控制,結果輸出等功能。基礎的測試框架一般只提供執行控制方面的功能。
測試框架應具有的特點
易用性:編寫用例,執行用例,生成報告及定位問題方便
健壯性:穩定,比如timeout機制等
擴展性:插件
靈活性:用例組織或執行的靈活性,Fixture功能(不同范圍的setUp和tearDown)等
定制性:二次開發方便
unittest,pytest,nose,robot framework簡介
unittest: Python自帶,最基礎的單元測試框架
nose: 基於unittest開發,易用性好,有許多插件
pytest: 同樣基於unittest開發,易用性好,信息更詳細,插件眾多
robot framework:一款基於Python語言的關鍵字驅動測試框架,有界面,功能完善,自帶報告及log清晰美觀
總結:總體來說,unittest比較基礎,二次開發方便,適合高手使用;pytest/nose更加方便快捷,效率更高,適合小白及追求效率的公司;robot framework由於有界面及美觀的報告,易用性更好,靈活性及可定制性略差。