在公司的小程序自动化过程中遇到很多问题,感谢微信群的大佬热心解答,终于落地完成,也想记录下来,如有问题,请不吝赐教。
以下介绍的小程序名称以MP来代替,均来自项目实践过程中遇到的问题总结,比较接地气。
一、准备工作:
参考:https://minitest.weixin.qq.com/#/minium/Python/introduction/quick_start
python>=3.8
微信开发者工具
小程序源码
成为小程序对应的appid的开发者
准备ngnix环境(查阅测试报告时需要)
jenkins环境(集成构建时需要)
二、MP小程序自动化框架介绍
框架整体思路采用page object模式,将元素操作和测试用例分离:
basepage完成控件操作封装,元素查找,等待,输入,页面跳转,mock,hook, 截图,等封装
pages包含所有页面的操作,继承basepage
basecase是基础用例,其中setup负责登录操作
testcases包含所有用例,每个用例继承basecase
Config.json 开发者工具路径,小程序源码路径等配置
Suite.json配置需要运行的用例
Run.py运行脚本
三、特殊场景操作
3.1 toast获取
toast需要使用hook wx.showToast方法,来监听toast弹出
3.2 模态弹框操作
模态弹框,属于native控件,无法直接定位操作,需要用到 native方法
3.3 文件上传, 需要使用mock模拟上传
3.4 滚动选择器picker操作
小程序中时间控件,省市区控件一般选择使用picker控件,自动化测试中先定位到picker元素,再调用picker的trigger触发选择操作。
时间控件和省市区有点区别:
时间控件trigger参数为时间戳,2023-06-30 08:52对应的时间戳1682873520000
单列和多列滚动器,主要在value值不一样
3.5 input控件失去焦点触发事件
有些输入框,输入完了,再移除焦点的时候有事件触发,例如
3.6 条件等待,等待属性出现
例如在上传图片页面,需要等待上传完了,才有一个‘提交’按钮,
那么就需要等待,判断按钮的 @aria-disabled='false'属性才可以点击。
3.7 手机号快捷登录
3.8 模拟扫描二维码
查看小程序源码:使用的wx.scanCode方法进行扫描二维码
在做自动化的时候,就需要使用Mock方法模拟扫描。
3.9 相机授权
进件上传图片的地方需要调用mock方法进行相机授权
三、本地运行与日志查看
1.运行suit.json: minitest -c config.json -g -s suite.json
2.查看报告: python -m http.server 8089 -d outputs(使用该命令生成的报告,命令行退出,报告就查看不到,以下介绍ngnix部署报告)
配置ngnix作为web容器
1. 下载nginx-1.24.,解压
2. 修改\nginx-1.24.0\conf\nginx.conf配置文件
3. root处修改成自己的outputs目录
4.启动nginx start nginx,就可以查看到报告了
光是搞minium乱七八糟的配置都搞了好久,在你这又看到了还需要ngnix的环境,真的头大了 不知道从哪里搞起
想问下 ,怎么可以获取到 测试结果数据呢,本次用例数和失败数这些。
怎么部署到服务器上跑起来
写的很详细,但有个问题想请教下,随着生成的报告越来越多,如果想定期删除的话该怎么做呢?
关注。
关注。
很赞呀,示例代码可以放在 https://git.weixin.qq.com/ 上,方便大家一起学习