小程序云测 小程序云测服务进阶使用—在自定义脚本中发送外网请求

微信小程序云测服务 · 2023年03月24日 · 4800 次阅读

背景

小程序云测 跑 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)

测试结果

需要帮助

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册