「原创声明:保留所有权利,禁止转载」
背景
因 小程序云测 跑 minium 用例脚本时,不支持访问外网,所以用例脚本中不支持给外网发送请求。
我们发现在实际使用中,部分业务需要在用例脚本中,通过调用后台接口方式,配合用例执行。例如某个医疗业务的实际场景如下:
医疗业务一般有医生端和患者端 2 个小程序,在测试患者端提交病情描述后,需要医生端生成处方,才能继续执行。
如果同时操作 2 个小程序测试,难度很大且需要小程序来回跳转,用例稳定性较差。比较好的做法是,在患者端小程序做 UI 自动化,提交病情后,通过调用后台接口让医生端生成处方,接口调用完成再继续在患者端小程序执行后续用例。
解决方案
我们虽然无法在 Case 中发送外网请求,但是可通过真机上的小程序端 利用 wx.request
发送外网请求。
那么如何在小程序端发送请求呢?此时可以利用 Minium 的 call_wx_method 方法实现。 具体实现步骤如下:
1、 配置白名单
小程序端发送请求,需要将请求的域名在微信公众平台上加入白名单才行。如果已经添加,可忽略。
加入白名单流程如下,更多信息也可以参考 官方文档
- 扫码登录 微信公众平台,
- 在 开发—开发管理—开发设置—服务器域名 中配置域名,本步骤需要小程序管理员授权。
2、 在 Case 中发送外网请求
示例代码如下:
def test_request(self):
# 发起request请求
# 响应信息req_info
req_info = self.app.call_wx_method(method="request",
args={
# 请求url
"url": "https://xxxx",
# 请求参数
"data": {"content": "111"},
# 请求方式
# "method": "POST"
}
).get("result", {}).get("result")
# 打印响应信息
self.logger.warn(req_info)
测试结果
需要帮助
TesterHome 为用户提供「保留所有权利,禁止转载」的选项。
除非获得原作者的单独授权,任何第三方不得转载标注了「原创声明:保留所有权利,禁止转载」的内容,否则均视为侵权。
具体请参见TesterHome 知识产权保护协议。
暂无回复。