微信小程序UI自动化测试实践:Minium+PageObject

小程序架构上分为渲染层逻辑层,尽管各平台的运行环境十分相似,但是还是有些许的区别(如下图),比如说JavaScript 语法和 API 支持不一致,WXSS 渲染表现也有不同,所以不论是手工测试,还是UI自动化测试,都必须要在 iOS 和 Android 上分别检查小程序的真实表现。

由于生态方面的原因,目前可选择的小程序UI自动化框架较少。在框架选取过程中,我考察了Appium、Airtest和Minium三个框架,并将三者做了对比,形成了以下图表:

Appium实现微信小程序自动化测试的手段基本上还是套用针对 Hybrid App 的测试方案,通过定位H5 App资源控件,并结合屏幕坐标的方式来操控小程序的页面元素;网易推出的Airtest则是基于图像识别和Poco控件识别,之前也对此框架做过比较深入的了解,但是和Appium一样,对于小程序自动化测试来说,以上两者无法深入小程序逻辑层,只能作用于渲染层,从另外一个角度来说,这两个框架还属于黑盒自动化测试的范畴。

01

Minium

接下来再介绍一下今天的主角:Minium。它是微信小程序官方推出自动化框架,提供了 Python3 和 JavaScript 版本(后者目前已停止维护,后文中的minium单指Python版本),目前最新的版本为1.0.0b2。minium不仅限于 UI 自动化,它还提供了很多有用的特性,比如说支持调用和 Mock 部分 wx 对象上的接口,支持获取和设置小程序页面数据,支持直接触发小程序元素绑定事件等等。

另外,minium提供一个基于unittest封装好的测试框架,利用这个简单的框架对小程序测试也可以起到事半功倍的效果。有了以上功能,不但可以简化用例的一些前期准备工作,更可以对小程序做更针对和更全面的测试。

minium的下载安装和官方文档,可以在代码库查看。官方文档写的还算较为清晰,除此之外,以下网站在学习过程中也有帮助:

  • 微信开放社区: 一些minium使用方面的问题,可以在右上角搜索 "minium" 寻找答案或发起提问;
  • 微信开发者工具: minium与微信开发者工具强关联,开发调试脚本都需要使用微信开发者工具;</
### 微信小程序UI自动化测试的方法和工具 #### Minium框架的应用 对于微信小程序UI自动化测试Minium是一个被广泛采用的解决方案[^2]。该框架由腾讯推出,专门用于解决微信小程序自动化测试难题。不同于传统的Hybrid App测试方案或是依赖图像识别的技术路径,Minium可以直接访问并控制小程序内部组件,从而实现了更深层次的功能覆盖。 ```javascript // 使用minium初始化driver实例 const minium = require('minium'); let driver = await minium(); await driver.init(); // 访问指定的小程序页面 await driver.navigateTo('/pages/index/index'); // 获取页面上的某个元素,并执行点击动作 let element = await driver.$('.some-class-name'); await element.click(); ``` #### Page Object模式集成 为了提高代码可读性和维护效率,在实际项目中推荐结合Page Object设计模式来编写测试案例[^3]。这种方式可以有效分离业务逻辑与界面交互细节,使得当UI发生变化时只需修改少量代码即可完成更新工作。 ```typescript class IndexPage { private readonly _elementLocator: string; constructor() { this._elementLocator = '.specific-element'; } public async getElementText(): Promise<string> { const el = await global.driver.$(this._elementLocator); return await el.text(); } } ``` #### 解决ADB连接问题 如果遇到`adb devices`命令未能检测到设备的情况,则需确认手机端是否已经开启开发者选项中的USB调试功能[^4]。此外还需确保电脑上安装了正确的驱动程序以及正确配置环境变量以便顺利建立通信链路。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值