微信小程序自动化测试框架 微信小程序自动化测试框架 Minium —— 测试进阶

微信小程序云测服务 · 2022年08月15日 · 7920 次阅读

前文 微信小程序自动化测试框架 Minium——快速开始 主要介绍了 Minium 的安装和使用,以及可能遇到的问题和解决方案。本文主要介绍使用 Minium 框架测试进阶,测试计划的配置及执行、真机调试。小程序 demo 参考 miniprogram-demo

测试计划

配置测试计划

测试计划用例名和包名需要配置在 suit.json

{
  "pkg_list": [
    {
      "case_list": [
        "test_*"
      ],
      "pkg": "test.*_test"
    }
  ]
}

基础配置

config.json 配置部分基础信息,如小程序运行的平台、小程序代码的项目路径、微信开发者工具安装路径

{
  "project_path":"xxx",     // 小程序项目路径
  "dev_tool_path":"xxx",  // 微信开发者工具安装路径
  "platform": "ide"
}

测试用例

# `first_test.py`
class FirstTest(minium.MiniTest):
    def test_get_system_info(self):
        sys_info = self.mini.get_system_info()
        self.assertIn("SDKVersion", sys_info)

    def test_ui_op(self):
        # 页面跳转
        self.app.switch_tab("/pages/index/index")
        # 元素定位
        ele = self.page.get_element("/page/view/navigator[3]/button")
        # 元素点击
        ele.click()
        time.sleep(3)
        # 判断元素是否存在
        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)


# `second_test.py`
class SecondTest(minium.MiniTest):
    def test_log(self):
        self.logger.info("【info级别日志】")
        self.logger.debug("【debug级别日志】")
        self.logger.warn("【warn级别日志】")

执行测试计划

在项目路径下执行以下命令

minitest -s suite.json -c config.json -g

在项目目录下运行命令 python3 -m http.server 12345 -d outputs,在浏览器上访问 http://localhost:12345,查看测试报告

常见问题
  • 出现新执行的测试结果没有更新问题

由于本地浏览器有缓存问题,Chrome 浏览器打开控制台 F12,点击 设置,在 偏好设置网络 中勾选 停用缓存(在开发者工具已打开时)

真机调试

真机调试需 IDE 依赖,支持 USB 真机调试。Android 调试首先需安装安装 ADB 工具(Android 调试桥),获取安卓设备信息。iOS 需安装 libmobiledevice,配置 WebDriverAgent,获取设备信息。

安卓真机调试,ADB 工具(Android 调试桥)可以直接操作管理 android 模拟器或者真实的 android 设备
执行 adb devices,获取设备序列号

config.json 配置设备信息,如果只有一台手机在线,那么只需要把 platform 配置成 Android 即可, 而如果多台设备连接到手机,配置文件需要制定设备的序列号,如:

{
  "project_path":"xxx",     // 小程序项目路径
  "dev_tool_path":"xxx",  // 微信开发者工具安装路径
  "platform": "android",
  "device_desire": {
    "serial": "xxx"
   }

iOS 设备信息配置详情可参考 真机测试配置

常见问题

  1. 配置了真机环境但无法拉起真机上的小程序,请排查是否使用了真机调试 2.0(暂不支持自动化),如果是,切换回真机调试 1.0

Can’t wait until App.initialized

  • minium 发起了远程调试,但手机没有正常启动小程序/白屏
    • 可以尝试手动切换成 二维码真机调试 后再切换 自动真机调试
    • 若还是不行,请先确认 远程调试 功能正常
  • minium 发起了远程调试,远程调试窗口已经弹出,但手机端没有打开小程序
    • 请手动确认是否使用了真机调试 2.0

测试结果

在项目目录下运行命令 python3 -m http.server 12345 -d outputs,在浏览器上访问 http://localhost:12345

建议

建议开发者在云测上服务执行用例,可以将本地调试好的用例上传至云测,新建测试计划,新建 Minium 任务,可选择多平台真机,且支持多平台同时运行,无需用户部署和维护真机环境

测试结束后,云测服务提供详细的测试报告,包括运行截图、日志信息,网络请求分析,性能分析等。当用例执行失败时,会提供错误日志及错误行代码,方便用户排查错误原因。具体操作可参考云测官方文档 自定义测试

本地执行与云测服务执行用例对比
能力 本地执行 云测服务执行
测试账号 可以用自己的微信账号 只支持使用虚拟账号测试
真机部署 需要自己部署真机,安装 wda 或者 adb 环境 无需准备真机环境,直接提测
环境维护 需要自己维护开发者工具登录态 不依赖开发者工具,无需用户维护
查看报告 需要自己搭建报告查看环境 提供详细的测试报告,并支持分享报告 https 链接
性能数据 需要手动调用接口获取 支持查看用例性能数据,如 CPU,内存占用等,可以开启体验评分,进一步查看运行时性能数据
Devops 需要自己实现 提供第三方 https 接口提交任务,获取结果,详情参考 打通 devops 流程

需要帮助

如果在微信小程序自动化测试过程中遇到任何问题,欢迎在 微信小程序云测服务 专区发帖反馈

也可以微信扫描二维码加入云测官方企业微信群,联系 MiniTest 小助手反馈

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册