▌?背景
在TesterHome社區(qū)看到有人問微信小程序如何自動(dòng)化界面,所以想分享一下如何自動(dòng)化微信小程序界面。
▌?微信小程序接口自動(dòng)化問題
微信小程序登錄流程:
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html
小程序登錄需要調(diào)用 wx.login() 拿到 的方法code,然后去請求服務(wù)獲取 token,請求后續(xù)接口。因此,接口自動(dòng)化的問題在于如何獲得 code 去獲取 token。
▌?環(huán)境準(zhǔn)備
- 一臺(tái) windows 或者 mac 電腦
- 微信開發(fā)者工具
- 微信號和小程序開發(fā)者權(quán)限
- 小程序代碼
▌?原理
- Python 使用minium,JS 使用miniprogram-automator,這是微信官方提供的 UI 自動(dòng)化測試工具的原理是調(diào)動(dòng)微信開發(fā)者工具,然后提供自動(dòng)化測試端口,然后提供 API 應(yīng)與此端口通信。
- 我是用的 miniprogram-automator,以下是 miniprogram-automator 解釋,然后使用 miniProgram.callWxMethod調(diào)用 的方法wx.login() 這種方法獲取 code,這就是獲取 code 的方法。
▌?實(shí)現(xiàn)
- 我寫了一個(gè)服務(wù),暴露了一個(gè)接口,http://127.0.0.1:3000/wxlogin?appid=xxxxxxxxxxxx,接口需要傳輸一個(gè)參數(shù)是小程序 appid,然后是 config.js 去配置 appid 和小程序的絕對項(xiàng)目路徑(注意:一個(gè)小程序獲取的 code 不能在另一個(gè)小程序上登錄,code 應(yīng)該是和 appid 是有關(guān)聯(lián)的);
- 通過該 appid 找到小程序項(xiàng)目的路徑,調(diào)用 automator.launch() 方法,啟動(dòng)微信開發(fā)者工具,然后調(diào)用 miniProgram.callWxMethod() 調(diào)用 wx.login() 這種方法獲取 code,最后把 code 從我提供的接口返回;
- 每個(gè)小程序在要求任何接口時(shí)都需要調(diào)用我提供的接口來獲取 code 登錄后進(jìn)行后續(xù)請求操作。
▌?注意點(diǎn)
- 不要并發(fā)要求自己提供的界面!不要并發(fā)要求自己提供的界面!不要并發(fā)要求自己提供的界面!因?yàn)檫@個(gè)方案需要調(diào)動(dòng)微信開發(fā)人員工具,如果并發(fā)調(diào)動(dòng),微信開發(fā)人員工具就會(huì)崩潰。一開始,我同時(shí)調(diào)用了10個(gè) 以上的小程序,然后崩潰了微信開發(fā)人員工具,所以我串行要求微信小程序的界面用例;
- http://127.0.0.1:3000/wxlogin?appid=xxxxxxxxxxxx?這個(gè)接口需要調(diào)用微信開發(fā)者工具才能獲得 code,所以響應(yīng)速度會(huì)比較慢;
- 需要提前登錄微信開發(fā)者工具;
- 無法在 linux 部署,因?yàn)槲⑿砰_發(fā)者工具沒有 linux 版本。
▌?總結(jié)
該方法已在公司實(shí)施,并實(shí)現(xiàn)了 10 多個(gè)微信小程序的生產(chǎn)檢查。維護(hù)工作是注意微信開發(fā)人員工具賬戶需要保持登錄,如果自動(dòng)退出,可以掃描代碼登錄。▼?相關(guān)閱讀AI小程序生態(tài)質(zhì)量保證方向技術(shù)的實(shí)施
推薦行業(yè)活動(dòng)
第十屆MTSC會(huì)議 上海站1主會(huì)場 12大專場,精英齊聚一堂// 專場包括 //知乎、鴻蒙、開源、游戲、酷家樂、音視頻、客戶服務(wù)、數(shù)字經(jīng)濟(jì)、效率提升、質(zhì)量保證、智能測試↙↙閱讀原文與作者交流,可查看相關(guān)鏈接
上一篇: 投票抽獎(jiǎng)小程序盈利模式介紹
下一篇: 小程序代理商靠譜嗎?