原文由 Wxh 发表于 TesterHome 社区,点击原文链接可与作者间接交换。
背景
前几天在社区看到有人问微信小程序怎么进行接口自动化,所以想把本人如何进行微信小程序接口自动化的办法分享下。
微信小程序接口自动化的问题
https://developers.weixin.qq…. 这是微信小程序的登陆流程,小程序登陆须要在小程序外部调用 wx.login()的办法拿到 code,而后去申请服务获取到 token,后续的接口能力申请。所以接口自动化的问题在于如何获取 code 去进行去获取 token。
环境筹备
- 一台 windows 或者 mac 电脑
- 微信开发者工具
- 一个微信号以及小程序开发者权限
- 小程序的代码
原理
- 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,而后有一个 config.js 去配置 appid 和小程序的相对我的项目门路(留神:一个小程序获取的 code 是无奈在另一个小程序去进行登陆的,code 应该是和 appid 是有关联的)
- 通过该 appid 找到小程序我的项目门路,调用 automator.launch()办法,启动微信开发者工具,而后调用 miniProgram.callWxMethod()去调用 wx.login()这个办法获取到 code,最初把 code 从我提供的接口返回
- 每个小程序要申请任意接口时候都须要先调用我提供的接口获取 code 登陆后再进行后续的申请操作
留神点
- 不要并发申请本人提供的接口!不要并发申请本人提供的接口!不要并发申请本人提供的接口!因为这个计划是须要调起微信开发者工具,所以如果并发调起的话,会把微信开发者工具搞奔溃,我一开始就是 10 多个小程序同时调用本人的接口,而后把微信开发者工具弄崩了,所以对于微信小程序的接口用例我都是串行申请的
- http://127.0.0.1:3000/wxlogin… 这个接口因为须要调用微信开发者工具,而后再获取 code,所以响应速度会比较慢
- 微信开发者工具须要提前登陆
- 无奈在 linux 部署,因为微信开发者工具没有 linux 版本
总结
该办法曾经在公司落地,并且已实现了 10 多个微信小程序的生产巡检工作。保护工作就是须要留神微信开发者工具的账号须要放弃登陆,如果主动退出了,就扫码登陆下就能够。
原文由 Wxh 发表于 TesterHome 社区,点击原文链接可与作者间接交换。
今日份的常识已摄入~
想理解更多前沿测试开发技术:欢送关注「第十届 MTSC 大会·上海」>>>
1 个主会场 +12 大专场,大咖星散精英齐聚
12 个专场包含:
知乎、OpenHarmony、开源、游戏、酷家乐、音视频、客户端、服务端、数字经济、效力晋升、品质保障、智能化测试