標籤:sel ack pack 實現 port 自動化測試 講解 清理 har
1 為什麼需要架構?
代碼混亂,難閱讀; 重複編碼,效率低;需求變化,難維護;
一 自動化執行個體
1 準備測試的app;準備測試環境;實現指令碼;
2 測試app:只有登入功能
測試環境:
- Appium(Android/IOS);
- Android SDK;
- Appium-Python-Client;
- Selenium(Appium-Python-Client繼承於Selenium);
- UIAutomatorViewer
- Pycharm
3 實現指令碼
在Pycharm中編寫指令碼;
用UIAutomatorViewer進行定位;
藉助Appium—Python—Client實現的api;
藉助Appium—Python—Client的字典實現屬性;
運行指令碼之前要啟動Appium並進行設定,如果出現“新的session無法建立”的錯誤,請釋放資源並重啟Appium。
二 測試架構Unittest
1 主要講解:Test Fixture; Test Case; Test Suite; Test Runner
2 Test Fixture包括準備,執行,清理的過程;對應到指令碼上是:setup(), testcase(), teardown()
其他三項已知。
3 指令碼
三 資料驅動架構
1 如何使用?準備第三方庫——首先安裝ddt庫,其次在指令碼中引入ddt, 然後就OK
具體:
- 到Python 官網下載ddt庫;
- 在指令碼中匯入ddt庫的命令:from ddt import ddt, data, unpack
- 在測試類別前標註ddt :@ddt
- class MookTestCase(unittest.TestCase) ,說明本次的測試類別是使用資料驅動架構
- 測試案例主要分為有參數和無參數,資料驅動主要用於帶參數的測試案例
- 對於有一個參數的用例,使用元組存放被測試的資料,並加上data標註:@data(1, -3, 2, 0)
- def testcase(self, value):
- 對於有多個參數的用例,使用元組存放被測試的資料,並加上data標註:@data((3,2),(4,3), (5,3))
- @unpack
- def testcase(self, value1, value2):
2 指令碼中應用
3 應用了ddt架構後,單獨運行某條case的語句不再適用,但可以載入運行整個測試類別。
python專項測試——Android App自動化測試架構