微信小程序接口自动化的实现方案

▌?背景

在TesterHome社区看到有人问微信小程序如何自动化界面,所以想分享一下如何自动化微信小程序界面。


▌?微信小程序接口自动化问题

微信小程序登录流程:

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html

小程序登录需要调用 wx.login() 拿到 的方法code,然后去请求服务获取 token,请求后续接口。因此,接口自动化的问题在于如何获得 code 去获取 token。


▌?环境准备

  1. 一台 windows 或者 mac 电脑
  2. 微信开发者工具
  3. 微信号和小程序开发者权限
  4. 小程序代码


▌?原理

  • Python 使用minium,JS 使用miniprogram-automator,这是微信官方提供的 UI 自动化测试工具的原理是调动微信开发者工具,然后提供自动化测试端口,然后提供 API 应与此端口通信。
  • 我是用的 miniprogram-automator,以下是 miniprogram-automator 解释,然后使用 miniProgram.callWxMethod调用 的方法wx.login() 这种方法获取 code,这就是获取 code 的方法。

▌?实现

  • 我写了一个服务,暴露了一个接口,http://127.0.0.1:3000/wxlogin?appid=xxxxxxxxxxxx,接口需要传输一个参数是小程序 appid,然后是 config.js 去配置 appid 和小程序的绝对项目路径(注意:一个小程序获取的 code 不能在另一个小程序上登录,code 应该是和 appid 是有关联的);
  • 通过该 appid 找到小程序项目的路径,调用 automator.launch() 方法,启动微信开发者工具,然后调用 miniProgram.callWxMethod() 调用 wx.login() 这种方法获取 code,最后把 code 从我提供的接口返回;
  • 每个小程序在要求任何接口时都需要调用我提供的接口来获取 code 登录后进行后续请求操作。


▌?注意点

  • 不要并发要求自己提供的界面!不要并发要求自己提供的界面!不要并发要求自己提供的界面!因为这个方案需要调动微信开发人员工具,如果并发调动,微信开发人员工具就会崩溃。一开始,我同时调用了10个 以上的小程序,然后崩溃了微信开发人员工具,所以我串行要求微信小程序的界面用例;
  • http://127.0.0.1:3000/wxlogin?appid=xxxxxxxxxxxx?这个接口需要调用微信开发者工具才能获得 code,所以响应速度会比较慢;
  • 需要提前登录微信开发者工具;
  • 无法在 linux 部署,因为微信开发者工具没有 linux 版本。


▌?总结

该方法已在公司实施,并实现了 10 多个微信小程序的生产检查。维护工作是注意微信开发人员工具账户需要保持登录,如果自动退出,可以扫描代码登录。
▼?相关阅读AI小程序生态质量保证方向技术的实施


推荐行业活动


第十届MTSC会议 上海站1主会场 12大专场,精英齐聚一堂// 专场包括 //知乎、鸿蒙、开源、游戏、酷家乐、音视频、客户服务、数字经济、效率提升、质量保证、智能测试

↙↙阅读原文与作者交流,可查看相关链接

微信小程序接口自动化的实现方案

返回列表

相关文章

相关案例