一、什麼是Minium?
minium是為小程式專門開發的自動化架構,使用minium可以進行小程式UI自動化測試。 當然,它的能力不僅僅局限于UI自動化, 比如:
- 使用minium來進行函數的mock
- 可以直接跳轉到小程式某個頁面
- 設定頁面資料, 做針對性的全面測試
這些能力是其他的一些工具所不具備的,不僅如此,它還有許多其他特性,也是很吸引人的:
- 支援一套腳本,iOS &Android& 模拟器,三端運作
- 提供豐富的頁面跳轉方式,看不到也能去得到
- 可以擷取和設定小程式頁面資料,讓測試不止點點點
- 可以直接觸發小程式元素綁定事件
- 支援往AppSerive注入代碼片段執行
- 可以調用部分wx對象上的接口
- 支援Mock wx對象上的接口
- 支援Hook wx對象上的接口
- 通過suite方式管理用例,config管理運作裝置
- ...
二、環境搭建
1、準備工作
- Python 3.8及以上
- 選擇穩定版下載下傳 微信開發者工具
- 微信 >= 7.0.7
2、自動安裝
pip3 install minium 或者 pip3 install https://minitest.weixin.qq.com/minium/Python/dist/minium-latest.zip
3、手動安裝
下載下傳minium安裝包, 解壓後進入檔案夾, 運作
python3 setup.py install
4、設定微信開發者工具
5、找開發要源代碼
這裡我們以官方示例小程式項目作為示範,使用git直接clone:
git clone https://github.com/wechat-miniprogram/miniprogram-demo.git
下載下傳到本地之後,先cd到miniprogram-demo中,然後cnpm i。接着再cd到miniprogram中,再次cnpm i。(npm 真不好使)
安裝、依賴、編譯成功,就可以看到如下小程式:
6、環境确認
「minium安裝完成後,可執行以下指令檢視版本:」
輸入minitest -v
出現如下表示安裝成功
「開發者工具自動化能力檢查」
path/to/cli" auto --project "path/to/project" --auto-port 9420
「路徑說明:」
- path/to/project: 指代填寫存放小程式源碼的目錄位址,檔案夾中需要包含有project.config.json檔案
- path/to/cli: 指代開發者工具cli指令路徑。macOS: <安裝路徑>/Contents/MacOS/cli, Windows: <安裝路徑>/cli.bat
- 有類似以下log并且開發者工具上有以下提示的則通過,否則根據提示和開發者工具文檔調試解決
舉個栗子:
以我win10系統為例,輸入如下指令: "E:\Program Files (x86)\Tencent\微信web開發者工具\cli.bat" auto --project "D:\pyworkspace\miniprogram-demo" --auto-port 9420
看到如下顯示,證明安裝成功且小程式也會被啟動!
三、編寫測試腳本
1、項目結構
簡單建立一個python項目即可,如下所示:
2、添加配置檔案
在項目目錄添加suite.json,示例如下:
{
"pkg_list": [
{
"case_list": [
"test_*"
],
"pkg": "test_case.*_test"
}
]
}
在項目目錄添加config.json,這裡替換上你自己本地環境的對應路徑。示例如下:
{
"project_path": "D:\\pyworkspace\\miniprogram-demo",
"dev_tool_path": "E:\\Program Files (x86)\\Tencent\\微信web開發者工具\\cli.bat",
"debug_mode": "warn"
}
3、編寫測試代碼
示例代碼如下:
# -*- coding: utf-8 -*-
"""
@Time : 2022/12/30 15:48
@Auth : longrong.lang
@File :my_test.py.py
@IDE :PyCharm
@Motto:ABC(Always Be Coding)
"""
import minium
class ComponentTest(minium.MiniTest):
def test_ui_op(self):
self.page.get_element("view", inner_text="視圖容器").click()
self.page.get_element("navigator", inner_text="swiper").click()
self.page.get_elements("switch")[0].click()
self.page.get_elements("switch")[1].click()
print("執行測試結束!")
4、執行測試腳本
「選中測試類執行」
運作結果如下:
「指令行形式」
minitest -m test_case.first_test -c config.json -g -s suite.json
運作結果如下:
「效果」
四、生成測試報告
輸入如下指令,可生成一份美麗的測試報告
python -m http.server 12345 -d outputs
打開浏覽器,通路http://localhost:12345即可檢視報告。
五、寫在最後
寫這篇文章,算是技癢吧,在微信群看到某位同學分享的名字,我順騰摸瓜花了一小時就有了它。
「學習的意義,不在于一定要用上,而在于要用的時候可以輕松無縫銜接,而不是不會憋得一腦袋汗!」
到此,小程式的入門分享完畢,感興趣的同學可以檢視官方文檔。
我是測試君,關于後面小程式測試架構的更新,我也會繼續,更多請繼續關注我,覺得對你有用,請星标即可,不用轉發!