小程序自动化测试神器Minium系列(一)环境搭建
一、什么是Minium?
minium 是为小程序专门开发的自动化框架,使用minium 可以进行小程序UI 自动化测试。 当然,它的能力不仅仅局限于UI 自动化, 比如: 使用 minium 来进行函数的mock 可以直接跳转到小程序某个页面 设置页面数据, 做针对性的全面测试
这些能力是其他的一些工具所不具备的,不仅如此,它还有许多其他特性,也是很吸引人的: 支持一套脚本, iOS &Android & 模拟器,三端运行 提供丰富的页面跳转方式,看不到也能去得到 可以获取和设置小程序页面数据,让测试不止点点点 可以直接触发小程序元素绑定事件 支持往 AppSerive 注入代码片段执行 可以调用部分 wx 对象上的接口 支持 Mock wx 对象上的接口 支持 Hook wx 对象上的接口 通过 suite 方式管理用例,config 管理运行设备 ... 二、环境搭建1、准备工作Python 3.8及以上 选择稳定版下载 微信开发者工具 微信 >= 7.0.7 2、自动安装
pip3 install minium 或者 pip3 install https://minitest.weixin.qq.com/minium/Python/dist/minium-latest.zip
3、手动安装
下载minium安装包, 解压后进入文件夹, 运行
python3 setup.py install 4、设置微信开发者工具
5、找开发要源代码
这里我们以官方示例小程序项目作为演示,使用 git 直接clone :
git clone https://github.com/wechat-miniprogram/miniprogram-demo.git
下载到本地之后,先 cd 到miniprogram-demo 中,然后cnpm i 。接着再cd 到miniprogram 中,再次cnpm i 。(npm 真不好使)
安装、依赖、编译成功,就可以看到如下小程序:
6、环境确认
「minium安装完成后,可执行以下命令查看版本:」
输入 minitest -v
出现如下表示安装成功
「开发者工具自动化能力检查」
path/to/cli" auto --project "path/to/project" --auto-port 9420
「路径说明:」 path/to/project : 指代填写存放小程序源码的目录地址,文件夹中需要包含有project.config.json 文件 path/to/cli : 指代开发者工具cli 命令路径。macOS : <安装路径>/Contents/MacOS/cli , Windows : <安装路径>/cli.bat 有类似以下 log 并且开发者工具上有以下提示的则通过,否则根据提示和开发者工具文档调试解决
举个栗子:
以我 win10 系统为例,输入如下命令: "E:Program Files (x86)Tencent微信web开发者工具cli.bat" auto --project "D:pyworkspaceminiprogram-demo" --auto-port 9420
看到如下显示,证明安装成功且小程序也会被启动!
三、编写测试脚本1、项目结构
简单创建一个python项目即可,如下所示:
2、添加配置文件
在项目目录添加 suite.json ,示例如下: { "pkg_list": [ { "case_list": [ "test_*" ], "pkg": "test_case.*_test" } ] }
在项目目录添加 config.json ,这里替换上你自己本地环境的对应路径。示例如下: { "project_path": "D:pyworkspaceminiprogram-demo", "dev_tool_path": "E:Program Files (x86)Tencent微信web开发者工具cli.bat", "debug_mode": "warn" } 3、编写测试代码
示例代码如下: # -*- coding: utf-8 -*- """ @Time : 2022/12/30 15:48 @Auth : longrong.lang @File :my_test.py.py @IDE :PyCharm @Motto:ABC(Always Be Coding) """ import minium class ComponentTest(minium.MiniTest): def test_ui_op(self): self.page.get_element("view", inner_text="视图容器").click() self.page.get_element("navigator", inner_text="swiper").click() self.page.get_elements("switch")[0].click() self.page.get_elements("switch")[1].click() print("执行测试结束!") 4、执行测试脚本
「选中测试类执行」
运行结果如下:
「命令行形式」
minitest -m test_case.first_test -c config.json -g -s suite.json
运行结果如下:
「效果」
四、生成测试报告
输入如下命令,可生成一份美丽的测试报告
python -m http.server 12345 -d outputs
打开浏览器,访问http://localhost:12345即可查看报告。
五、写在最后
写这篇文章,算是技痒吧,在微信群看到某位同学分享的名字,我顺腾摸瓜花了一小时就有了它。
「学习的意义,不在于一定要用上,而在于要用的时候可以轻松无缝衔接,而不是不会憋得一脑袋汗!」
到此,小程序的入门分享完毕,感兴趣的同学可以查看官方文档。
我是测试君,关于后面小程序测试框架的更新,我也会继续,更多请继续关注我,觉得对你有用,请星标即可,不用转发!
中山医学院与南方医科大学,哪个就业比较好?中山医学院前身是中山医科大学,是卫生部直属的11所医科大学之一,在2001年与中山大学合并,现为中山大学的一个院系。中山大学是华南地区影响力最大的985,211,双一流高校。中山医
孩子上大学家长要不要送?如果学校比较远,而且又没有和自己一样被录取同一所学校的同学的话,建议还是家长送比较好的,尤其是孩子独自第一次出远门。一个人去一个陌生的地方的话,可能连语言说话的方式都会和别人有所差
河南蒙古族自治县你们知道吗?河南蒙古族自治县简称河南县是青海省唯一的蒙古族自治县,俗称河南蒙旗,是中国蒙古族人口比例最高的县。地处青海省东南部,东临甘肃省甘南藏族自治州夏河县碌曲县,南接甘肃省甘南藏族自治州玛
你认为中国十大必去的旅游城市是哪几个?1古都西安去西安可以看大雁塔可以看古城墙钟鼓楼,最精彩的是骊山秦始皇陵兵马俑华清池了,西安的羊肉泡西凤酒,然后西安的人文气氛汉唐风情都是绝无仅有的都是最好的历史遗存了2首都北京北京
你有做梦梦见彩票号码的经历吗?前几天就梦到一组彩票号码3611121928321梦醒之后记得特别清楚,于是赶紧记下号码,穿着睡衣就去打了十倍。彩票店才刚开门,我连忙让老板给打了票。票拿到手之后特别激动,好像这次
事业单位的女职工,工人身份,但一直在财务工作,人社部门如何认定退休年龄?退休年龄是由你的身份决定的。一退休年龄的认定。正常情况下,男性不管什么身份,都是60岁退休。女职工是50岁退休,女干部是55岁退休。现在也存在着女性60岁退休的情况,一是至少是管理
你或身边人赌博造成过什么严重的后果?我们公司的真实案例,就发生在2019年的年末,我们公司的财务总监,因为网络赌博,挪用了我们公司账上的350万现金,造成了我们公司现金流断链,没钱进货和付供货商的款项,公司差点倒闭。
35岁的人感觉没有清晰的职业方向,除了有几个资格证书,觉得很失败,怎么办?追求职业方向,这本身就是死胡同。拆迁炒房,这才是方向。说的就是我啊,我也迷茫。我也35,注册土木,注册造价,注册建造师,注册咨询师,工作能力是可以的,独立做过很多私活。最近面试了央
职场现象现在老板开会讲完后,问大家还有什么问题。很少有人发言。什么情况?这是领导说话的套路,你还真的有话要说啊?那你就入套了。你要真是真开口了,估计领导就在心里骂你没眼力劲,不识相!很少有人发言,这就对了,说明这些人是聪明人。在开会这样的场合,如果你不
沈阳为什么不成立盛京大学?作为一个辽宁人,我不知道,提问者为什么这么问。只是因为盛京这个名称好听?亦或是能让人唤起逝去的辉煌?据我所知世界范围大学多以地名命名,并且多一直沿用,因为大学不同于其他机构,校名不
华南理工大学分数线为何这么高?这个问题应该从以下几个方面来进行回答首先是华南理工大学的地遇优势。他南理工大学位于我国一线城市广州,具有经济发达,社会文明,思想理念更新比较快的优势,所以有不少学生选择华南理工大学