一、什么是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即可查看报告。

写在最后

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

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

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

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

腾讯出品小程序自动化测试框架【Minium】系列(一)环境搭建之第一个测试程序的更多相关文章

  1. 小程序第三方框架对比 ( wepy / mpvue / taro )(转)

    文章转自  https://www.cnblogs.com/Smiled/p/9806781.html 众所周知如今市面上端的形态多种多样,手机Web.ReactNative.微信小程序, 支付宝小程 ...

  2. 小程序第三方框架对比 ( wepy / mpvue / taro )

      众所周知如今市面上端的形态多种多样,手机Web.ReactNative.微信小程序, 支付宝小程序, 快应用等,每一端都是巨大的流量入口,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端 ...

  3. 微信小程序自动化测试最佳实践(附 Python 源码)

    本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版. 随着微信小程序的功能和生态日益完善,很多公司的产品业务形态逐渐从 App 延升到微信小程序.微信公众号等.小程 ...

  4. minium-微信小程序自动化框架-python,官方文档

    minium文档 个人将其部署到了自己的服务器上,如有需要可以访问共同学习这个minium 用python来实现小程序自动化测试... 文档地址 http://49.232.203.244:3000/ ...

  5. 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

    微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...

  6. appium+java(五)微信小程序自动化测试实践

    前言: 上一篇<appium+java(四)微信公众号自动化测试实践>中,尝试使用appium实现微信公众号自动化测试,接着尝试小程序自动化,以学院小程序为例 准备工作 1.java-cl ...

  7. [微信小程序] 微信小程序获取用户定位信息并加载对应城市信息,wx.getLocation,腾讯地图小程序api,微信小程序经纬度逆解析地理信息

    因为需要在小程序加个定位并加载对应城市信息 然而小程序自带api目前只能获取经纬度不能逆解析,虽然自己解析方式,但是同时也要调用地图,难道用户每次进小程序还要强行打开地图选择地址才定位吗?多麻烦也不利 ...

  8. (转)快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

    微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...

  9. 微信小程序 wafer2框架摘要

    微信小程序 wafer2框架摘要 帮助文档:https://github.com/tencentyun/wafer2-startup/wiki 使用了knex.js进行数据库交互,使用了koa.js进 ...

  10. 基于 Autojs 的 APP、小程序自动化测试 SDK

    原文:https://blog.csdn.net/laobingm/article/details/98317394 autojs sdk基于 Autojs 的 APP.小程序自动化测试 SDK,支持 ...

随机推荐

  1. VS Code For Web 深入浅出 -- 进程间通信篇

    在上一篇中,我们一起分析了 VS Code 整体的代码架构,了解了 VS Code 是由前后端分离的方式开发的.且无论前端是基于 electron 还是 web,后端是本地还是云端,其调用方式并无不同 ...

  2. PHP cURL抓取网上图片

    cURL的底层是由一个命令行工具实现的,用于获取远程文件或传输文件,更多的情况是用来模拟get/post表单提交.也可以用户文件上传,爬取文件,支持FTP/FTPS,HTTP/HTTPS等协议,通俗来 ...

  3. 学习ASP.NET Core Blazor编程系列八——数据校验

    学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...

  4. 来啦来啦|开源 * 安全 * 赋能 - .NET Conf China 2022

    大会介绍 .NET Conf China 2022 是面向开发人员的社区峰会,延续 .NET Conf 2022 的活动,庆祝 .NET 7 的发布和回顾过去一年来 .NET 在中国的发展成果,它是由 ...

  5. jmeter——JSON提取器(从上一个请求的响应结果提取参数传给下一个请求)

    记录一个参数提取过程,可供后续参考. 1. 查看响应报文的结构 将上一个请求的响应报文复制到Notepad++编辑器 JSON Viewer是Notepad++的JSON插件, Notepad++的P ...

  6. Dockerfile 使用 SSH docker build

    如果在书写 Dockerfile 时,有些命令需要使用到 SSH 连接,比如从私有仓库下载文件等,那么我们应该怎么做呢? Dockerfile 文件配置 为了使得 Dockerfile 文件中的命令可 ...

  7. ubuntu 下安装串口终端

    查看串口设备 # Ubuntu 22.04自动卸载CH341串口 sudo apt remove brltty ls -l /dev/ttyUSB0 # 查看串口设备添加信息 sudo dmesg | ...

  8. Aspose.Cells设置单元格背景色不生效

    Style.BackgroundColor property 获取或设置样式的背景颜色.public Color BackgroundColor { get; set; } 评论 如果要设置单元格的颜 ...

  9. JavaSE -进阶基础---反射技术

    反射常见用法: Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的所有属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法.这种在运行时动态的获取信息以及动态调用对象的方法的 ...

  10. 【ASP.NET Core】MVC控制器的各种自定义:特性化的路由规则

    MVC的路由规则配置方式比较多,咱们用得最多的是两种: A.全局规则.就是我们熟悉的"{controller}/{action}". app.MapControllerRoute( ...