超详细讲解:微信开发者工具UI自动化测试(工具录制+Minium)
一、介绍
本文将介绍微信开发者工具中自动化测试模块以及在云测平台的使用,一共介绍两种测试用例模式:
①手动录制测试用例②minium测试用例.
二、环境安装
1.python>=3.8.0
2.安装minium插件
pip install minium
3.检查环境安装是否正确
minitest -v
4.微信开发者工具自动化能力检查
"path/to/cli" auto --project "path/to/project" --auto-port 9420 #注意:path/to/cli 替换成自己安装cli.bat的系统路径 path/to/project 替换成自己项目的路径 #端口号 替换成自己微信开发者工具的端口号,端口号查询路径:微信开发者工具顶部-设置-安全设置,找到端口号
5.尝试调用minium依赖自动启动微信开发者工具
import minium
mini = minium.Minium({"project_path": "path/to/project", # 替换成你的【小程序项目目录地址】 "dev_tool_path": "path/to/cli",
# 替换成你的【开发者工具cli地址】,macOS: <安装路径>/Contents/MacOS/cli, Windows: <安装路径>/cli.bat}) print(mini.get_system_info())
输出以下内容代表环境配置成功:
{'model': 'iPhone 5', 'pixelRatio': 2, 'windowWidth': 320, 'windowHeight': 456, 'system': 'iOS 10.0.1', 'language': 'zh_CN', 'version': '8.0.5', 'screenWidth': 320, 'screenHeight': 568, 'SDKVersion': '2.16.0', 'brand': 'devtools', 'fontSizeSetting': 16, 'benchmarkLevel': 1, 'batteryLevel': 71, 'statusBarHeight': 20, 'safeArea': {'top': 20, 'left': 0, 'right': 320, 'bottom': 568, 'width': 320, 'height': 548}, 'deviceOrientation': 'portrait', 'platform': 'devtools', 'enableDebug': False, 'devicePixelRatio': 2}
三、测试用例
手动录制测试用例:
1.通过微信开发者工具录制用例
1.1进入自动化测试页面:
点击导航栏工具——>自动化测试
1.2开始录制用例
点击"开始录制"按钮

字段介绍:
用例名:用例名称
mock:支持记录操作过程中的api

最长等待时间:两个操作步骤之间的等待时间
忽略选择器:可以选择忽略哪些css样式
作用:
1. 减少不必要的样式渲染
在某些情况下,页面中的某些元素可能需要动态渲染或不渲染。通过忽略选择器,可以在特定条件下跳过这些元素的样式计算和渲染,从而减少页面渲染的开销。
2. 提高性能
对于一些复杂的页面或频繁更新的元素,忽略选择器可以显著减少渲染时间,优化页面性能。
3. 避免样式冲突
在某些场景下,某些元素可能需要根据条件动态应用或取消样式。通过忽略选择器,可以更灵活地控制样式的应用。
清除缓存:用来清除程序中因缓存出现的问题;例如:授权过后,无法再次拉起授权页面。

聚合touch:开启后,减少touchmove、touchStart和 touchend事件,减少步骤之间的卡顿。
回放时截图:可选择执行用例后是否截图

1.2.1开始录制
通过点击左侧小程序,会自动录制步骤。
增加页面断言:点击用例详情右侧图标。
Data快照:实时查看当前页面的 Page Data。
WXML快照:实时查看当前页面的wxml,类似于 HTML,检查页面结构是否正常渲染。
检查元素:断言当前页面元素及样式。
检查页面路径:断言当前小程序访问路径,检查页面跳转逻辑。
截屏:截取当前屏幕,对比当前页面。

1.2.2停止录制
再次点击停止录制按钮

1.2.3回放用例
选中用例,支持回放单个or全部

1.2.4录制基础模块
所谓基础模块,可以通俗理解为python中的函数,把一些常用的行为,录制成一个模块,在测试步骤之间直接添加,省去繁琐重复的操作步骤

添加基础模块,可根据配置,选择添加的位置。

2.minium脚本
目录结构
.
├── outputs
├── test
│ └── first_test.py
└── init__.py
│
└── config.json
└── suits.json
简单例子:
首页点击寄快递-点击收件地址簿,选择第一个收件信息,点击确定
first_test.py
#!/usr/bin/env python3
import unittest
from operator import index
import minium
from minium.utils import timeout
class FirstTest(minium.MiniTest):
def test_go_to_jkd(self):
#跳转寄快递
self.page.wait_for(9)
self.page.get_element("text",inner_text="""寄快递""").tap()
#增加页面等待时间
self.page.wait_for(9)
res_ele=self.page.get_element("button",inner_text="""立即下单""")
#断言页面元素是否存在
self.assertTrue(res_ele,"元素未找到")
#点击收件簿
address_list=self.page.get_elements('view.text-28rpx',index=2)
res=address_list[1]
res.click()
self.page.wait_for(3)
#点击收件地址
name_list=self.page.get_elements("view.text-36rpx",index=1)
res=name_list[0]
res.click()
self.page.wait_for(3)
#点击确认按钮
self.page.get_element("view",inner_text="确认(1)").tap()
self.page.wait_for(10)
config.json
{
"project_path": "D:/Work/wechat-tools/dist/mp-weixin/mp-weixin",
"dev_tool_path": "D:/WeChat/微信web开发者工具/cli.bat",
"debug_mode": "debug"
}
suite.json
{
"pkg_list": [
{
"case_list": [
"test_*"
],
"pkg": "test.*_test"
}
]
}
进入项目根目录的命令行运行
minitest -m test.first_test -c config.json -g
查看报告


运行命令
python -m http.server 12345 -d outputs
python -m http.server 12345 -d outputs
浏览器访问:http://loaclhost:12345

四、云测平台集成
以上两种用例,都可以继承到云测平台中,提供定时执行,一键执行的简单操作
1.下载插件


2.进入云测平台
下载好插件后,点击"云测"按钮,进入云测平台


3.导入用例
可将录制的用例或本地的minum脚本上传同步


4.制定测试计划
选择测试用例属于的类型:

5.新建测试任务

6.查看测试报告

6.1点击"详情"查看

6.2发送结果至手机短信
需要在云测绑定手机号即可

更多推荐



所有评论(0)