minium - 小程序自动化简单实践

Minium是一个针对小程序的自动化测试框架,支持UI自动化、函数mock、页面数据操作等功能,弥补了现有工具在平台覆盖、兼容性和逻辑层测试的不足。它提供一套脚本在iOS、Android和模拟器上运行,具备丰富的页面操作和数据交互能力。安装包括Python环境、Minium库和微信开发者工具,并设置相应配置。一个简单的测试用例展示了如何在小程序中进行元素断言。
摘要由CSDN通过智能技术生成

一、minium简介

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

二、minium 环境搭建

  1. 安装python环境:Python 3.8及以上
  2. 安装官方文档或直接访问官方文档
    安装步骤:
    (1)下载文档源码(需要先设置用户名和密码):官方地址
    git clone https://git.weixin.qq.com/minitest/minium-doc.git
    
    (2)安装 docsify
    npm i docsify-cli -g
    
    (3)进入目录中使用npm进行构建
    cd minium-doc
    npm install
    
    (4)本地部署
    docsify serve .
    
    (5)通过http://localhost:3000进行访问
  3. 安装最新的minium库,可以先下载后在使用pip进行安装
    pip install https://minitest.weixin.qq.com/minium/Python/dist/minium-latest.zip
    # 安装完成后使用以下命令进行检查
    minitest -v
    
  4. 安装微信开发者工具

    需要在开发者工具-设置-安全设置中开放端口
    在这里插入图片描述

  5. 检查是否能够自动打开微信开发这工具
    # "path/to/cli" 微信开发这工具目录
    # "path/to/project" 小程序项目目录
    # 若配置成功 输出结果前面都会带√
    "path/to/cli" auto --project "path/to/project" --auto-port 9420
    
  6. 设置开发这工具调试基础库

    如果基础库版本过低,会出现错误
    开发者工具点击右上角详情-本地设置-调试基础库在这里插入图片描述

三、简单实例

  1. 在小程序中创建一个Hello World实例

    image.png

  2. pycharm创建一个项目 目录结构如下

    .
    ├── minitest
    │   └── __init__.py
    │   └── testcase
    │       └── __init__.py
    │       └── test01.py
    │   └── config.json
    
    
  3. 实例代码

    import minium
    
    class FirstTest(minium.MiniTest):
        def test01(self):
            # 获取元素 并进行断言
            self.assertEqual(self.page.get_element(".user-motto").inner_text, "Hello World","判断文本是否正确")
    
  4. 配置文件,配置信息详情可参考:官方文档

    {
      "platform": "ide",
      "project_path": "/Users/chnjx/WeChatProjects/miniprogram-1",
      "dev_tool_path": "/Applications/wechatwebdevtools.app/Contents/MacOS/cli"
    }
    
  5. 执行命令运行用例

    # -c 后面接json配置文件  -m 接测试用例包名 -g表示生成测试报告
    minitest -c config.json -m testcase.test01 -g
    
  6. 查看测试报告,output目录下的index.html使用浏览器进行打开

    image.png

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值