騰訊出品小程式自動化測試框架【Minium】系列(二)專案配置及測試套件使用說明

久曲健發表於2023-01-25

一、寫在前面

真的人這一散漫慣了,收心就很難了,上午把小程式開發環境啟動後,在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;
   }
 }

四、寫在最後

可能有同學看到這會覺得,與上一篇文章好像一樣,有那麼一丟丟不一樣,加入了實際案例及執行引數舉例講解,狀態算是找回來了吧!

我是六哥,關於小程式自動化測試框架的學習,我會持續更新,感覺對您有幫助,請繼續關注我,幫忙星標並轉發即可!

相關文章