目录
前言:
微信小程序自动化测试是保障小程序质量的重要手段,Minium是一个可为微信小程序编写自定义测试的自动化测试框架。它能够自动化执行各种测试用例,同时也支持自定义测试脚本和断言。此外,他还支持并封装了所有的原生操作都进行了封装,屏蔽了iOS/Android底层差异,实现了一套脚本在三端同时运行。
用户写好的Minium脚本,可以再本地执行,也可以直接上传到微信小程序云测服务执行,无需准备和维护真机环境。下面本文介绍自定义测试的流程
一、 编写用例
编写小程序自动化测试脚本,常见操作包括:
-
基本操作:如页面跳转,元素定位及相关操作;
-
处理小程序API;
-
处理小程序的原生控件,如处理授权弹窗;
-
支持数据驱动测试。
基本操作
对小程序页面元素定位,元素操作,或页面跳转等。简单的UI测试,例如以下用例
class FirstTest(minium.MiniTest):
def test_network(self):
# 页面跳转
self.app.navigate_to("/packageAPI/pages/get-network-type/get-network-type")
# 元素定位
ele = self.page.get_element("button", inner_text="获取手机网络状态")
# 元素点击
ele.click()
# 打印元素文本
self.logger.info(self.page.get_element("/page/view/view[2]/view/view[1]/text").inner_text)
处理小程序API
Minium框架提供处理小程序开放API方法,根据需求选择相应方法,例如:
mock_wx_method() — mock掉小程序API的调用
hook_wx_method() — hook小程序API的调用
call_wx_method() — 调用小程序的API
…
调用小程序API获取回调信息用例,例如
class FirstTest(minium.MiniTest):
def test_call_wx_method(self):
"""
调用小程序API,获取回调对象
:return:
"""
sys_info = self.app.call_wx_method("getSystemInfo").get("result", {}).get("result")
self.assertIsInstance(sys_info, dict, "is dict")
self.assertTrue(True if sys_info else False, "not empty")
处理小程序原生控件
Minium提供了针对小程序内涉及原生控件(授权弹窗、弹窗、地图、分享小程序等)的操作封装
注意:部分封装的接口暂不支持IDE平台调用。若跑测平台是IDE,则需要在config.json中配置mock_native_modal配置项,后通过mock的方式实现
处理模态弹窗用例示例如下
<