• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

微信小程序自动化测试环境部署及应用(minium)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、简介(官方文档)

  • minium 是为小程序专门开发的自动化框架。使用 minium 可以进行小程序 UI 自动化测试, 但是 minium 的功能不止于仅仅是 UI 自动化, 甚至可以使用 minium 来进行函数的 mock, 可以直接跳转到小程序某个页面并设置页面数据, 做针对性的全面测试, 这些都得益于我们开放了部分小程序 API 的能力。除此之外,小程序有部分组件使用了系统原生的组件,对于这部分的组件,我们也基于 uiautomator 和 wda 做了补充。
    目前小程序的体量越来越大,相关的框架和组件库越来越多,对于测试能力要求也越来越高。业内同行基于Chrome DevTools Protocol开发了很多小程序相关的测试工具,这些工具都有以下缺点:
  1. 只能在Android端上运行。小程序实际是一个跨平台的产品(IDE,Android和IOS),测试的平台覆盖不足。
  2. 兼容性问题。小程序底层运行的内核多样化(x5,原生webview内核等等),对应的调试端口不一定能够打开。
  3. 只能做UI相关的测试。小程序架构上分为渲染层和逻辑层,这些框架对于逻辑层上面的测试限制较大。
    而 minium 除了以上缺点都没有之外,还支持以下更多特性:

二、特性

  • 支持一套脚本,iOS & Android & 模拟器,三端运行
  • 提供丰富的页面跳转方式,看不到也能去得到
  • 可以获取和设置小程序页面数据,让测试不止点点点
  • 可以直接触发小程序元素绑定事件
  • 支持往 AppSerive 注入代码片段执行
  • 可以调用部分 wx 对象上的接口
  • 支持 Mock wx 对象上的接口
  • 支持 Hook wx 对象上的接口
  • 通过 suite 方式管理用例,config 管理运行设备
  • ...

三、暂不支持

  • H5页面的调试
  • 真机调试2.0

四、环境准备

1. 运行环境

  • Python 3.8及以上
  • 微信开发者工具 (本文档中简称IDE)最新版本,并打开安全模式: 设置 -> 安全设置 -> 服务端口: 打开
  • 微信 >= 7.0.7 (确认微信公共库版本 >= 2.7.3即可)

2. 安装

3. 环境检查

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

minitest -v

出现如以下内容的构建信息则已安装成功
{\'version\': \'1.1.0\', \'revision\': \'2fac2e36c281213874110f2088bc08c570bc1a2d\', \'branch\': \'master\', \'update_at\': \'2021-08-05 21:17:09\'}

2. 开发者工具自动化能力检查

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

3. 路径说明
  • path/to/project: 指代填写存放小程序源码的目录地址,文件夹中需要包含有project.config.json文件
  • path/to/cli: 指代开发者工具cli命令路径。macOS: <安装路径>/Contents/MacOS/cli, Windows: <安装路径>/cli.bat
4. 有类似以下log并且开发者工具上有以下提示的则通过,否则根据提示和开发者工具文档调试解决


五、demo

1. 目录结构

按照以下结构新建目录及文件

2. 编写case

# -*- encoding: utf-8 -*-
"""
@File    : order_pay_test.py
@Time    : 2022/4/17 19:24
@Author  : simon
@Email   : [email protected]
@Software: PyCharm
"""
\'\'\'
模拟用户下单
\'\'\'

import minium


class PayOrderTest(minium.MiniTest):
    def test_get_pay_order(self):
        el = self.page.get_element(\'/page/view/view[1]/view[5]/view[1]\')
        el.click()
        el = self.page.get_element(\'/page/view/scroll-view/view/view[3]/view[7]/view[7]/view/view[4]/view[2]/label\')
        el.click()
        el = self.page.get_element(\'/page/view/cart//view/view[2]/view[2]/view[2]\')
        el.click()
        el = self.page.get_element(\'/page/view/view[4]/view[2]/view[2]/label[2]\')
        el.click()
        el = self.page.get_element(\'/page/view/view[6]/view[4]\')
        el.click()

3. 编写配置文件

编辑配置文件config.json

{
"project_path": "D:\微信小程序代码\o2o-wechat-miniprogram\dist\dev\mp-weixin",
"dev_tool_path": "E:\软件安装\微信web开发者工具\cli.bat",
"debug_mode": "debug"
}

  • 需要替换以上project_path和dev_tool_path为自己本地的路径

4. 运行case

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

Copy to clipboardErrorCopied
test.order_pay_test是python包名,不要跟path搞混
order_pay_test.py文件不可直接运行,需要使用runner驱动,参考MiniTest
更多命令行参数请参考命令行工具
运行结果如下:

5. 查看结果

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

六、更多扩展内容参考微信官方文档学习

https://minitest.weixin.qq.com/#/minium/Python/readme


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序-问题:不在以下合法域名列表中发布时间:2022-07-18
下一篇:
微信小程序跳H5页面发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap