微信小程序自动化测试框架 Minium——快速开始

Minium 是微信测试团队为小程序专门开发的自动化框架。它实现了miniprogram-automator 中小程序自动化能力。使用 Minium 可以进行小程序 UI 自动化测试,但是 minium 的功能不止于仅仅是 UI 自动化,甚至可以使用 Minium 来进行函数的 Mock,可以直接跳转到小程序某个页面并设置页面数据,做针对性的全面测试,这些都得益于我们开放了部分小程序 API 的能力。此外,还支持并封装了所有的原生操作都进行了封装,屏蔽了iOS/Android底层差异,实现了一套脚本在三端同时运行

下面重点介绍Minium的安装和使用,以及可能遇到的问题和解决方案

安装Minium框架

  • 自动安装(推荐)

pip安装,拉取最新版本minium

pip3 install https://minitest.weixin.qq.com/minium/Python/dist/minium-latest.zip

  • 手动安装

下载minium安装包,解压后进入文件夹,python安装

python3 setup.py install

环境检查

  • minium安装完成后,可执行以下命令查看版本:

minitest -v

例如输出以下信息

{'version': '1.2.8', 'revision': 'd9e296d820fc572ce7a36bef23f16294e8dbaf46', 'branch': 'master', 'update_at': '2022-07-01 14:30:51'}
  • 开发者工具自动化能力检查

"path/to/cli" auto --project "path/to/project" --auto-port 9420

在这里插入图片描述

可能遇到的问题

  • 端口被占用

Error: Port 9420 is in use (code 10)

关闭项目,杀掉端口进程,重新执行,或者使用其他端口号

  • 连接超时问题

receive from remote timeout, id:xxxxxxxxxxx

一般是因为ide的通道被远程调试占用了,请检查ide是否有打开。建议关闭工具,重新执行,防止端口被占用。或者网络环境等原因引起

在这里插入图片描述

  • 报错traceback中有出现 _miniClassSetUp 的调用

确认下开发者工具上选用的基础库是最新的:开发者工具项目窗口右上角 -> 详情 -> 本地设置 -> 调试基础库

注意

  • 微信开发者工具需保持登录状态
  • 登录账号需有该小程序的开发者权限

PyCharm + 虚拟环境 配置开发环境

PyCharm工具编写用例脚本,使用Minium框架,配置虚拟环境,具体操作如下

  • Python Interpreter
    打开设置窗口,进入Python Interpreter
    [Settings -> Project: xxx -> Python Interpreter ]

  • Add Python Interpreter
    点击设置按钮,点击 Add Python Interpreter

  • 配置虚拟环境
    配置 Virtualenv Enviroment,选择 Existing enviromentinterpreter 选择python安装路径
    (注意:需python3.8及以上,若有多个python环境,选择3.8及以上即可)

  • 验证
    配置好环境后,会加载多个package,包括minium包。
    若没有,可能是由于配置的python环境没有安装minium包,可重新选择python环境(配置虚拟环境)
    或 安装minium框架(执行 pip3 install https://minitest.weixin.qq.com/minium/Python/dist/minium-latest.zip

PyCharm + 虚拟环境 配置开发环境

PyCharm工具编写用例脚本,使用Minium框架,配置虚拟环境,具体操作如下

  • Python Interpreter
    打开设置窗口,进入Python Interpreter
    [Settings -> Project: xxx -> Python Interpreter ]

  • Add Python Interpreter
    点击设置按钮,点击 Add Python Interpreter

  • 配置虚拟环境
    配置 Virtualenv Enviroment,选择 Existing enviromentinterpreter 选择python安装路径
    (注意:需python3.8及以上,若有多个python环境,选择3.8及以上即可)

  • 验证
    配置好环境后,会加载多个package,包括minium包。
    若没有,可能是由于配置的python环境没有安装minium包,可重新选择python环境(配置虚拟环境)
    或 安装minium框架(执行 pip3 install https://minitest.weixin.qq.com/minium/Python/dist/minium-latest.zip

在这里插入图片描述

简单例子

小程序demo参考 miniprogram-demo

简单UI页面操作
class FirstTest(minium.MiniTest):
        def test_ui_op(self):
            # 页面跳转
            self.app.switch_tab("/pages/index/index")
            # 元素定位
            ele = self.page.get_element("/page/view/navigator[3]/button")
            # 元素点击
            ele.click()
            # 判断元素是否存在
            self.assertTrue(self.page.element_is_exists("/page/view[9]/mytest//view", max_timeout=5))
            # 打印元素文本
            inner = self.page.get_element("/page/view[9]/mytest//view").inner_text
            self.logger.info("UI Case %s", inner)
config.json 配置
{
  "project_path":"xxx",     // 小程序项目路径
  "dev_tool_path":"xxx",  // 微信开发者工具安装路径
  "platform": "ide"
}
运行case

minitest -m test.first_test -c config.json -g

运行结果

在这里插入图片描述

查看结果

测试结果默认存储在outputs文件下,运行命令 python3 -m http.server 12345 -d outputs 然后在浏览器上访问 http://localhost:12345 即可查看报告,如图:

在这里插入图片描述

<think>好的,我需要帮用户解答如何构建小程序自动化测试框架的问题。首先,用户提到了站内引用,里面有几个相关资源,我需要结合这些信息来组织答案。 引用[2]提到了腾讯的minitest框架,引用[4]提到了微信开发者工具和Python。引用[3]则讨论了MySQL的测试框架和Python+Pytest的组合。另外,引用[1]讲的是测试框架的分层和模块化管理,这些都可以作为参考。 首先,应该分步骤介绍构建方法。可能包括工具选择、框架分层、用例管理、持续集成等方面。然后,结合用户提供的引用,比如minitest作为专用工具,Appium用于跨平台,Python和Pytest作为技术栈。还需要提到持续集成工具如Jenkins,以及如何利用TestNG的参数化测试。 可能需要列出常用工具,比如minitest、Appium、Selenium、Pytest、Jenkins等,并说明各自的适用场景。然后分步骤详细说明每个阶段要做的事情,比如环境搭建、框架设计、用例编写、集成与报告等。 要确保回答结构清晰,每个部分都有对应的引用支持。例如,在讲模块化管理时引用[1],在讲minitest时引用[2]和[4],在讲Python和Pytest时引用[3]。 还要注意用户的问题是关于小程序自动化测试,所以需要突出小程序专用的工具,如minitest和微信开发者工具,同时也可以提到通用工具如Appium的适用性。 最后,生成相关问题,可能涉及工具对比、优化方法、持续集成配置等。</think>### 构建小程序自动化测试框架的方法和工具 #### 一、核心工具选择 1. **专用工具**:腾讯开发的 **minitest** 是专为微信小程序设计的自动化测试框架,支持UI操作模拟(如点击、输入)和断言验证,集成于微信开发者工具中[^2][^4]。 2. **通用工具**: - **Appium**:适用于跨平台(iOS/Android)的小程序测试,支持与Python结合实现脚本编写[^1]。 - **Selenium**:若小程序运行在Web端,可通过Selenium实现浏览器自动化。 3. **编程语言**:推荐 **Python** + **Pytest** 组合,语法简洁且支持参数化测试和结果分析[^3]。 #### 二、框架设计步骤 1. **环境搭建** - 安装 **Python 3.8** 和 **微信开发者工具**(需开启自动化测试端口)[^4]。 - 配置 **minitest** 或 **Appium** 依赖库,例如通过 `pip install minium` 安装腾讯测试框架。 2. **框架分层(参考MVC模式)** - **驱动层**:封装小程序操作(如页面跳转、元素定位),例如: ```python from minium import MiniTest class WXApp(MiniTest): def click_button(self, selector): self.page.get_element(selector).click() ``` - **用例层**:使用 **Pytest** 编写测试用例,支持数据驱动: ```python import pytest @pytest.mark.parametrize("input, expected", [("test1", "success"), ("test2", "fail")]) def test_login(input, expected): assert wxapp.login(input) == expected ``` - **数据层**:通过YAML/Excel管理测试数据,实现数据与脚本分离[^1]。 3. **持续集成(CI/CD)** - 使用 **Jenkins** 定期执行测试任务,生成可视化报告[^1]。 - 集成代码仓库(如Git),触发自动化测试流程。 #### 三、优化与扩展 - **性能监控**:在测试脚本中添加内存/CPU占用率采集,例如通过 `psutil` 库。 - **多端覆盖**:结合 **Appium** 实现iOS/Android原生环境测试。 - **异常处理**:通过 `try-except` 捕获元素未找到等异常,增强脚本健壮性。 --- ### 相关工具对比表 | 工具 | 适用场景 | 优点 | 缺点 | |------------|---------------------------|-------------------------------|---------------------| | minitest | 微信小程序 | 官方支持,深度集成 | 仅限微信生态 | | Appium | 跨平台(iOS/Android/Web) | 社区活跃,扩展性强 | 配置复杂 | | Pytest | 测试用例管理 | 参数化测试,插件丰富 | 需结合其他工具使用 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值