微信小程序和小游戲自動化測試


版權聲明:允許轉載,但轉載必須保留原鏈接;請勿用作商業或者非法用途

Airtest Project自動化測試方案除了支持原生應用,游戲,Web之外,也支持了最新推出的微信小程序和小游戲平台。下面我們分別來看下如何利用Airtest Project進行小程序和小游戲的自動化測試:

小程序

對於微信小程序,我們可以直接利用原生平台的Poco進行控件識別。微信小程序目前采用的內核信息可以參考官方文檔。我們用最新版(V7.0.4)的微信測試,可以直接用Android或者iOS poco模式對相應平台的小程序進行控件識別。如果無法使用,可能是由於部分Android設備的Webview內核設置問題,請參考文檔進行修改。

下面來分別看下Android和iOS上的效果:

Android小程序

連接Android手機,並打開微信小程序,以星巴克小程序為例,在Airtest IDE中選擇Android模式,可以對頁面進行控件識別:

iOS小程序

連接iOS手機,並打開微信小程序,以星巴克小程序為例,在Airtest IDE中選擇iOS模式,可以對頁面進行控件識別:

如下示例代碼可以實現在iOS上點擊對應卡面的操作:

from airtest.core.api import *

auto_setup(__file__)


from poco.drivers.ios import iosPoco
poco = iosPoco()


while not poco("感恩有你").exists():
    poco.scroll(direction='vertical', percent=0.3, duration=1.0)
    snapshot()

poco("感恩有你").click()

 

小游戲

Airtest 可以使用基於圖像識別的方式對小游戲進行自動化測試,此外,Poco UI控件檢索也對使用白鷺引擎開發的小游戲進行了支持。Poco的接入需要在源代碼中接入poco-sdk,具體接入指引如下:

環境配置

  • 首先下載 poco-sdk
  • 然后在egretProperties.json中修改modules屬性,添加紅框內相應字段,其中name屬性必須為poco
  • 路徑可以是相對路徑也可以是絕對路徑,具體可以參考白鷺引擎說明文檔中有關於 modules字段的說明

添加和修改modules屬性

  • 然后通過快捷鍵 ctrl+` 呼出終端 在終端中執行命令egret build -e

  • 在入口文件main.ts的rungame函數中新建類型為PocoManager的對象,並且傳入this.stage

  • 運行代碼,啟動游戲
  • 最后在在終端中輸入python -m poco.utils.net.stdbroker ws://*:5003 tcp://*:15004 ,打開代理服務器broker
  • 其中websocket端口默認為5003,如果有更改的需要,可以在新建pocomanager的時候傳入端口參數

使用AirtestIDE連接

連接手機瀏覽器

AirtestIDE支持Android和iOS手機連接,可以在手機上打開Egret頁面(或者微信小程序/游戲),然后通過AirtestIDE進行連接,Windows和MacOS版本IDE都可以使用。連接基本原理為:

image

具體步驟如下:

  1. 通過usb連接Android手機,確認adb devices連接ok,在電腦上執行如下命令,將手機的5003端口映射到電腦的5003端口
adb reverse tcp:5003 tcp:5003
  1. 在電腦上啟動broker:
python -m poco.utils.net.stdbroker "ws://*:5003" "tcp://*:15004"

啟動broker之后,在手機上訪問Egret的頁面(需要使用全屏模式保證坐標准確)。訪問的時候,broker會打印手機連接上的log,如下:

~ python -m poco.utils.net.stdbroker "ws://*:5003" "tcp://*:15004"
server listens on ("0.0.0.0", 5003) transport websocket
server listens on ("0.0.0.0", 15004) transport socket
StdBroker on.
server on accept. <poco.utils.net.transport.ws.MyWsApp object at 0x1100620d0>
  1. 打開AirtestIDE連接手機,選擇poco Std-broker模式,即可以看到UI層級結構。同時broker會打印連接日志:
server on accept. <poco.utils.net.transport.ws.MyWsApp object at 0x10d03d2d0>
accept from: ('127.0.0.1', 56872)
received_message from ('127.0.0.1', 56323) {"id":"2a0ce828-132e-4d15-a645-55493d7eaf4b","jsonrpc":"2.0","result":{"children"

AirtestIDE界面如下:

image

在AirtestIDE里編寫腳本並運行,還可以查看報告

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM