腾讯出品小程序自动化测试框架【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:\pyworkspace\miniprogram-demo" --auto-port 9420
看到如下显示,证明安装成功且小程序也会被启动!
编写测试脚本
1、项目结构
简单创建一个python项目即可,如下所示:
2、添加配置文件
在项目目录添加suite.json
,示例如下:
{
"pkg_list": [
{
"case_list": [
"test_*"
],
"pkg": "test_case.*_test"
}
]
}
在项目目录添加config.json
,这里替换上你自己本地环境的对应路径。示例如下:
{
"project_path": "D:\\pyworkspace\\miniprogram-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即可查看报告。
写在最后
写这篇文章,算是技痒吧,在微信群看到某位同学分享的名字,我顺腾摸瓜花了一小时就有了它。
学习的意义,不在于一定要用上,而在于要用的时候可以轻松无缝衔接,而不是不会憋得一脑袋汗!
到此,小程序的入门分享完毕,感兴趣的同学可以查看官方文档。
我是测试君,关于后面小程序测试框架的更新,我也会继续,更多请继续关注我,觉得对你有用,请星标即可,不用转发!
腾讯出品小程序自动化测试框架【Minium】系列(一)环境搭建之第一个测试程序的更多相关文章
- 小程序第三方框架对比 ( wepy / mpvue / taro )(转)
文章转自 https://www.cnblogs.com/Smiled/p/9806781.html 众所周知如今市面上端的形态多种多样,手机Web.ReactNative.微信小程序, 支付宝小程 ...
- 小程序第三方框架对比 ( wepy / mpvue / taro )
众所周知如今市面上端的形态多种多样,手机Web.ReactNative.微信小程序, 支付宝小程序, 快应用等,每一端都是巨大的流量入口,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端 ...
- 微信小程序自动化测试最佳实践(附 Python 源码)
本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版. 随着微信小程序的功能和生态日益完善,很多公司的产品业务形态逐渐从 App 延升到微信小程序.微信公众号等.小程 ...
- minium-微信小程序自动化框架-python,官方文档
minium文档 个人将其部署到了自己的服务器上,如有需要可以访问共同学习这个minium 用python来实现小程序自动化测试... 文档地址 http://49.232.203.244:3000/ ...
- 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app
微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...
- appium+java(五)微信小程序自动化测试实践
前言: 上一篇<appium+java(四)微信公众号自动化测试实践>中,尝试使用appium实现微信公众号自动化测试,接着尝试小程序自动化,以学院小程序为例 准备工作 1.java-cl ...
- [微信小程序] 微信小程序获取用户定位信息并加载对应城市信息,wx.getLocation,腾讯地图小程序api,微信小程序经纬度逆解析地理信息
因为需要在小程序加个定位并加载对应城市信息 然而小程序自带api目前只能获取经纬度不能逆解析,虽然自己解析方式,但是同时也要调用地图,难道用户每次进小程序还要强行打开地图选择地址才定位吗?多麻烦也不利 ...
- (转)快速了解微信小程序的使用,一个根据小程序的框架开发的todos app
微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...
- 微信小程序 wafer2框架摘要
微信小程序 wafer2框架摘要 帮助文档:https://github.com/tencentyun/wafer2-startup/wiki 使用了knex.js进行数据库交互,使用了koa.js进 ...
- 基于 Autojs 的 APP、小程序自动化测试 SDK
原文:https://blog.csdn.net/laobingm/article/details/98317394 autojs sdk基于 Autojs 的 APP.小程序自动化测试 SDK,支持 ...
随机推荐
- redis 分布式锁 PHP
redis分布式 1.redis是单线程操作 2.分布式会出现的问题,死锁 3.redis分布式(集群).多台服务器里面都有多个单机redis.然后这些redis之间相互链接.还有查看各个单台服务器之 ...
- 关于 Vue 中 h() 函数的一些东西
最近在项目上需要一个信息弹窗,来显示信息.一开始只让它弹出了文字,而且只有一条信息.而给我的需求是多条文字和图片,而后我使用了element ui中的 Notification 通知组件来显示.当然, ...
- 1.httprunner3入门
一.httprunner3 httprunner是一款面向HTTP(S)协议的通用开源测试框架 支持三种格式的用例:YAML/JSON/Pytest,httprunner3以前不支持pytest用例 ...
- 【原创】在RT1050 LittleVgl GUI中嵌入中文输入法框架
时隔一年多终于又冒泡了,哎,随着工作越来越忙,自己踏实坐下来写点东西真是越来越费劲,这篇文章也是准备了好久好久才打算发表出来(不瞒大家,东西做完好久了,文章憋了一年了,当真"高产" ...
- VB6查看桌面分辨率和工作区大小 2022.08.22 name.vt
VB6查看桌面分辨率和工作区大小 2022.08.22 name.vt Form1 内代码如下: ' 2022年8月22日 15时15分 ' 作者:name.vt Private Sub cmdCle ...
- Linux下MMDetection环境配置
1. 准备工作 Linux发行版. Pop!_OS 22.04 LTS (NVIDIA) (Ubuntu衍生) 对Linux进行配置,更改国内镜像源. 安装conda环境. 官网下载安装脚本(bash ...
- Oracle数据泵导入dmp文件,报UDI-12154、ORA-12154错误解决办法
1. 数据泵导入dmp文件,报UDI-12154.ORA-12154 1.1 导入命令 impdp cwy_init/init@orcl directory=DATA_PUMP_DIR dumpfil ...
- 孙荣辛|大数据穿针引线进阶必看——Google经典大数据知识
大数据技术的发展是一个非常典型的技术工程的发展过程,荣辛通过对于谷歌经典论文的盘点,希望可以帮助工程师们看到技术的探索.选择过程,以及最终历史告诉我们什么是正确的选择. 何为大数据 "大 ...
- docker+nginx 安装部署修改资源目录配置文件和容器端口信息
查看docker镜像 可以先查看docker下是否存在nginx镜像,使用如下这些命令查看: docker images: 列出所有镜像. docker images nginx: 列出所有nginx ...
- 8 STL-stack
重新系统学习c++语言,并将学习过程中的知识在这里抄录.总结.沉淀.同时希望对刷到的朋友有所帮助,一起加油哦! 生命就像一朵花,要拼尽全力绽放!死磕自个儿,身心愉悦! 写在前面,本篇章主要介绍S ...