一、寫在前面
真的人這一散漫慣了,收心就很難了,上午把小程式開發環境啟動後,在QQ遊戲裡,殺了三把象棋,5把2D桌球,一上午沒了,還是沒法心靜下來去學點東西。
那就老樣子,逼著自己開始,找到 “肌肉記憶” 自然也就可以靜下心去思考問題了。
二、搞定配置項
1、配置檔案部分
示例如下:
{
"project_path": "D:\\pyworkspace\\miniprogram-demo",
"dev_tool_path": "E:\\Program Files (x86)\\Tencent\\微信web開發者工具\\cli.bat",
"debug_mode": "warn"
}
這裡很多引數沒寫,即走預設的配置項,關於詳細的測試配置說明,請參看官方文件說明
2、命令列工具
測試用例既可以用unittest的方式執行,也可以用minitest來載入用例執行,相關的引數說明如下:
minitest 命令
- -h, --help: 使用幫助。
- -v, --version: 檢視 minium 的版本。
- -p PATH/--path PATH: 用例所在的資料夾,預設當前路徑。
- -m MODULE_PATH, --module MODULE_PATH: 用例的包名或者檔名
- --case CASE_NAME: test_開頭的用例名
- -s SUITE, --suite SUITE:就是suite.json檔案,檔案的格式如下:
{
"pkg_list": [
{
"case_list": [
"test_*"
],
"pkg": "test_case.*_test"
}
]
}
說明:
- pkg_list欄位說明要執行用例的內容和順序,是一個陣列,每個陣列元素是一個匹配規則,會根據pkg去匹配包名,找到測試類,然後
- 根據case_list裡面的規則去查詢測試類的測試用例。可以根據需要編寫匹配的粒度。注意匹配規則不是正規表示式,而是萬用字元。
三、入門栗子
1、目錄結構
2、編寫第一個case
# -*- coding: utf-8 -*-
"""
# @Time : 2023/01/25 12:49
# @Author : longrong.lang
# @FileName: sysinfo_test.py
# @Software: PyCharm
# @Blog :https://www.cnblogs.com/longronglang/
# @Motto:ABC(Always Be Coding)
"""
import minium
class SysInfoTest(minium.MiniTest):
def test_sysinfo(self):
sys_info = self.mini.get_system_info()
print(sys_info)
self.assertIn("SDKVersion", sys_info)
3、執行單個case
執行如下命令:
minitest -m test_case.sysinfo_test -c config.json -g
重點:
測試用例的命名,一定要casename_test
,否則不好使,不信你可以寫成test_casename
,命令列執行體驗報錯的感覺!
執行結果如下:
4、批次執行測試
執行如下命令:
minitest -s suite.json -c config.json -g
執行結果如下:
測試套件的意義在於可以批次執行用例,也是我們做自動化測試首選的方式。
部分引數說明:
- -c CONFIG, --config CONFIG:配置檔名,配置專案參考配置檔案
- -g, --generate: 生成網頁測試報告
- --module_search_path [SYS_PATH_LIST [SYS_PATH_LIST ...]] : 新增 module 的搜尋路徑
- -a, --accounts: 檢視開發者工具當前登入的多賬號, 需要透過 9420 埠,以自動化模式開啟開發者工具
- --mode RUN_MODE: 選擇以
parallel
(並行, 每個賬號從佇列中取一個pkg執行, 完成後取下一個)或者fork
(復刻, 每個帳號都跑全部的pkg)的方式執行用例 - --task-limit-time: 任務超時時間,如果到期還沒跑完測試,直接終止測試程式. 單位: s
更多命令列引數請參考命令列工具
5、生成測試報告
本地報告
執行如下命令:
python -m http.server 12345 -d outputs
開啟瀏覽器,訪問http://localhost:12345即可檢視報告。
利用nginx的配置報告
server {
listen 80;
server_name your.domain.com;
location / {
alias /path/to/dir/of/report;
index index.html;
}
}
四、寫在最後
可能有同學看到這會覺得,與上一篇文章好像一樣,有那麼一丟丟不一樣,加入了實際案例及執行引數舉例講解,狀態算是找回來了吧!
我是六哥,關於小程式自動化測試框架的學習,我會持續更新,感覺對您有幫助,請繼續關注我,幫忙星標並轉發即可!