一、什么是Minium?

minium是为小程序专门开发的自动化框架,使用minium可以进行小程序UI自动化测试。 当然,它的能力不仅仅局限于UI自动化, 比如:

  • 使用minium来进行函数的mock
  • 可以直接跳转到小程序某个页面
  • 设置页面数据, 做针对性的全面测试

这些能力是其他的一些工具所不具备的,不仅如此,它还有许多其他特性,也是很吸引人的:

  • 支持一套脚本,iOS &Android& 模拟器,三端运行
  • 提供丰富的页面跳转方式,看不到也能去得到
  • 可以获取和设置小程序页面数据,让测试不止点点点
  • 可以直接触发小程序元素绑定事件
  • 支持往AppSerive注入代码片段执行
  • 可以调用部分wx对象上的接口
  • 支持Mock wx对象上的接口
  • 支持Hook wx对象上的接口
  • 通过suite方式管理用例,config管理运行设备
  • ...

二、环境搭建

1、准备工作

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

下载到本地之后,先cdminiprogram-demo中,然后cnpm i。接着再cdminiprogram中,再次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/cliWindows: <安装路径>/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即可查看报告。

写在最后

写这篇文章,算是技痒吧,在微信群看到某位同学分享的名字,我顺腾摸瓜花了一小时就有了它。

学习的意义,不在于一定要用上,而在于要用的时候可以轻松无缝衔接,而不是不会憋得一脑袋汗!

到此,小程序的入门分享完毕,感兴趣的同学可以查看官方文档

我是测试君,关于后面小程序测试框架的更新,我也会继续,更多请继续关注我,觉得对你有用,请星标即可,不用转发!

最新文章

  1. Codeforces Round #388 (Div. 2) A,B,C,D
  2. oracle 临时表学习
  3. 在windows下的mysql使用
  4. Selenium - WebDriver 小结(1)
  5. Deep Learning 学习随记(七)Convolution and Pooling --卷积和池化
  6. 引用 exit、return、_exit、_Exit这几个函数的区别
  7. C语言函数可变参数列表
  8. 转]python 结巴分词(jieba)学习
  9. 【BBED】BBED模拟并修复ORA-08102错误
  10. 让js调试更简单—console
  11. 设计模式总结篇系列:适配器模式(Adapter)
  12. Appium-desktop安装启用Inspector一直报错An unknown server-side error occurred...
  13. LGP2801 教主的魔法
  14. 愛拼才會贏--IPA--闽南语
  15. js模态框实现原理
  16. UNIGUI换版本注意事项
  17. 【LOJ】 #2308. 「APIO2017」商旅
  18. centos 6.6编译安装nginx
  19. Linux环境安装xmapp(PHP-Mysql集成环境)
  20. Crystal Reports for Visual Studio 2015 安装

热门文章

  1. 一篇文章带你了解网页框架——Vue简单入门
  2. 在Centos7上安装JDK1.8和tomcat8.5的步骤和过程(亲测可用)
  3. .Net Core redis 调用报错 &#39;6000 Redis requests per hour&#39; 解决 6000 此调用限制
  4. SQL---ltrim()和rtrim()函数的使用
  5. HTML躬行记(3)——WebRTC视频通话
  6. 构建LNP镜像
  7. Java多线程(7):JUC(上)
  8. vue 祖先组件操作后代组件方法
  9. 二、.Net Core搭建Ocelot
  10. Java多线程-ThreadPool线程池-2(四)