天天看點

小程式自動化測試神器【Minium】系列(一)環境搭建

作者:軟體測試君

一、什麼是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

小程式自動化測試神器【Minium】系列(一)環境搭建

3、手動安裝

下載下傳minium安裝包, 解壓後進入檔案夾, 運作

python3 setup.py install

4、設定微信開發者工具

小程式自動化測試神器【Minium】系列(一)環境搭建

5、找開發要源代碼

這裡我們以官方示例小程式項目作為示範,使用git直接clone:

git clone https://github.com/wechat-miniprogram/miniprogram-demo.git

下載下傳到本地之後,先cd到miniprogram-demo中,然後cnpm i。接着再cd到miniprogram中,再次cnpm i。(npm 真不好使)

小程式自動化測試神器【Minium】系列(一)環境搭建
小程式自動化測試神器【Minium】系列(一)環境搭建

安裝、依賴、編譯成功,就可以看到如下小程式:

小程式自動化測試神器【Minium】系列(一)環境搭建

6、環境确認

「minium安裝完成後,可執行以下指令檢視版本:」

輸入minitest -v

出現如下表示安裝成功

小程式自動化測試神器【Minium】系列(一)環境搭建

「開發者工具自動化能力檢查」

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

看到如下顯示,證明安裝成功且小程式也會被啟動!

小程式自動化測試神器【Minium】系列(一)環境搭建
小程式自動化測試神器【Minium】系列(一)環境搭建

三、編寫測試腳本

1、項目結構

簡單建立一個python項目即可,如下所示:

小程式自動化測試神器【Minium】系列(一)環境搭建

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、執行測試腳本

「選中測試類執行」

小程式自動化測試神器【Minium】系列(一)環境搭建

運作結果如下:

小程式自動化測試神器【Minium】系列(一)環境搭建

「指令行形式」

minitest -m test_case.first_test -c config.json -g -s suite.json

運作結果如下:

小程式自動化測試神器【Minium】系列(一)環境搭建

「效果」

小程式自動化測試神器【Minium】系列(一)環境搭建

四、生成測試報告

輸入如下指令,可生成一份美麗的測試報告

python -m http.server 12345 -d outputs

小程式自動化測試神器【Minium】系列(一)環境搭建

打開浏覽器,通路http://localhost:12345即可檢視報告。

小程式自動化測試神器【Minium】系列(一)環境搭建

五、寫在最後

寫這篇文章,算是技癢吧,在微信群看到某位同學分享的名字,我順騰摸瓜花了一小時就有了它。

「學習的意義,不在于一定要用上,而在于要用的時候可以輕松無縫銜接,而不是不會憋得一腦袋汗!」

到此,小程式的入門分享完畢,感興趣的同學可以檢視官方文檔。

我是測試君,關于後面小程式測試架構的更新,我也會繼續,更多請繼續關注我,覺得對你有用,請星标即可,不用轉發!

小程式自動化測試神器【Minium】系列(一)環境搭建

繼續閱讀