微信小程序接口自动化实践

微信小程序接自动化实践

最近突然来了任务 说要做小程序接口自动化;原本以为和平时做的接口一样能够很顺利的搞定,结果在登录态token上花了很多时间。。。这篇文章主要就是记录下怎么解决这个问题的。

  • 首先看下微信小程序登录流程
    -微信小程序接口自动化实践_第1张图片

通过上图可以看到第一步需要调用wx.login()方法获取code,然后通过这个code在获取token;然而难点就在这个code的获取上,因为这个是依赖微信开发这工具的。

后面参考了以下文章得到了解决思路:
https://blog.csdn.net/qq_42434318/article/details/114929791

  • 以下为解决方法
  1. 下载微信开发者工具:

https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
下载后需要先使用小程序appid(问开发要)进行创建小程序,并执行:设置-安全设置-开启服务端口

  1. 安装miniprogram-automator自动化工具:

https://developers.weixin.qq.com/miniprogram/dev/devtools/auto/quick-start.html

  1. 通过miniprogram-automator启动开发者工具
const automator = require('miniprogram-automator')
automator.launch({
  cliPath: 'D:\\Tencent\\微信web开发者工具\\cli.bat',  // 开发者工具的路径
  projectPath: 'C:\\Users\\chen\\WeChatProjects\\miniprogram-2',  // 小程序的路径
}).then(async miniProgram => {
  const page = await miniProgram.reLaunch('/pages/index/index')
  await page.waitFor(500)
})
})
  1. 调用wx.login()方法获取code
  const promise = await miniProgram.callWxMethod('login')
  console.log(promise.code)
  await miniProgram.close()
  1. 起一个服务:获取code
@app.route('/get_wx_code')
def get_wx_code():
    code = os.popen('node js_path').read() # 会读取console.log打印的日志
    return json.dumps({'code': res_code})

以上就是获取动态code的方法,通过code再去获取token就可以正常进行接口测试了。但是存在一个问题就是请求这个code会比较慢,要个十几秒。如果有更好的办法希望可以告之,谢谢!

你可能感兴趣的:(微信小程序,自动化,小程序)