微信小程序接口自動化的(de)實現方案 - 新聞資訊 - 雲南小程序開發|雲南軟件開發|雲南網站建設-昆明融晨信息技術有限公司

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不(bù)管是(shì)網站,軟件還是(shì)小程序,都要(yào / yāo)直接或間接能爲(wéi / wèi)您産生價值,我們在(zài)追求其視覺表現的(de)同時(shí),更側重于(yú)功能的(de)便捷,營銷的(de)便利,運營的(de)高效,讓網站成爲(wéi / wèi)營銷工具,讓軟件能切實提升企業内部管理水平和(hé / huò)效率。優秀的(de)程序爲(wéi / wèi)後期升級提供便捷的(de)支持!

您當前位置>首頁 » 新聞資訊 » 小程序相關 >

微信小程序接口自動化的(de)實現方案

發表時(shí)間:2021-4-22

發布人(rén):融晨科技

浏覽次數:65

背景

前幾天在(zài)社區看到(dào)有人(rén)問微信小程序怎麽進行接口自動化https://testerhome.com/topics/28217,所以(yǐ)想把自己如何進行微信小程序接口自動化的(de)方法分享下。

微信小程序接口自動化的(de)問題

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html這(zhè)是(shì)微信小程序的(de)登陸流程,小程序登陸需要(yào / yāo)在(zài)小程序内部調用wx.login()的(de)方法拿到(dào)code,然後去請求服務獲取到(dào)token,後續的(de)接口才能請求。所以(yǐ)接口自動化的(de)問題在(zài)于(yú)如何獲取code去進行去獲取token。

環境準備

  1. 一台windows或者mac電腦

  2. 微信開發者工具

  3. 一個(gè)微信号以(yǐ)及小程序開發者權限

  4. 小程序的(de)代碼

原理

  • Python使用minium,JS使用miniprogram-automator,這(zhè)是(shì)微信官方提供的(de)UI自動化測試的(de)工具,它們的(de)原理都是(shì)調起微信開發者工具,然後會對外提供了(le/liǎo)一個(gè)自動化測試的(de)端口,然後它們的(de)API應該都是(shì)和(hé / huò)這(zhè)個(gè)端口進行通信。

  • 我是(shì)用的(de)miniprogram-automator,以(yǐ)下都是(shì)以(yǐ)miniprogram-automator進行說(shuō)明,然後就(jiù)可以(yǐ)使用miniProgram.callWxMethod的(de)方法調用wx.login()這(zhè)個(gè)方法獲取到(dào)code,這(zhè)就(jiù)是(shì)獲取code的(de)方法

實現

  • 我是(shì)寫了(le/liǎo)一個(gè)服務,對外暴露了(le/liǎo)一個(gè)接口,http://127.0.0.1:3000/wxlogin?appid=xxxxxxxxxxxx, 該接口需要(yào / yāo)傳一個(gè)參數是(shì)小程序的(de)appid,然後有一個(gè)config.js 去配置appid和(hé / huò)小程序的(de)絕對項目路徑(注意:一個(gè)小程序獲取的(de)code是(shì)無法在(zài)另一個(gè)小程序去進行登陸的(de),code應該是(shì)和(hé / huò)appid是(shì)有關聯的(de))

  • 通過該appid找到(dào)小程序項目路徑,調用automator.launch()方法,啓動微信開發者工具,然後調用 miniProgram.callWxMethod()去調用wx.login()這(zhè)個(gè)方法獲取到(dào)code,最後把code從我提供的(de)接口返回

  • 每個(gè)小程序要(yào / yāo)請求任意接口時(shí)候都需要(yào / yāo)先調用我提供的(de)接口獲取code登陸後再進行後續的(de)請求操作

注意點

  • 不(bù)要(yào / yāo)并發請求自己提供的(de)接口!不(bù)要(yào / yāo)并發請求自己提供的(de)接口!不(bù)要(yào / yāo)并發請求自己提供的(de)接口!因爲(wéi / wèi)這(zhè)個(gè)方案是(shì)需要(yào / yāo)調起微信開發者工具,所以(yǐ)如果并發調起的(de)話,會把微信開發者工具搞奔潰,我一開始就(jiù)是(shì)10多個(gè)小程序同時(shí)調用自己的(de)接口,然後把微信開發者工具弄崩了(le/liǎo),所以(yǐ)關于(yú)微信小程序的(de)接口用例我都是(shì)串行請求的(de)

  • http://127.0.0.1:3000/wxlogin?appid=xxxxxxxxxxxx 這(zhè)個(gè)接口因爲(wéi / wèi)需要(yào / yāo)調用微信開發者工具,然後再獲取code,所以(yǐ)響應速度會比較慢

  • 微信開發者工具需要(yào / yāo)提前登陸

  • 無法在(zài)linux部署,因爲(wéi / wèi)微信開發者工具沒有linux版本

總結

該方法已經在(zài)公司落地(dì / de),并且已實現了(le/liǎo)10多個(gè)微信小程序的(de)生産巡檢工作。維護工作就(jiù)是(shì)需要(yào / yāo)注意微信開發者工具的(de)賬号需要(yào / yāo)保持登陸,如果自動退出(chū)了(le/liǎo),就(jiù)掃碼登陸下就(jiù)可以(yǐ)。

相關案例查看更多