使用Airtest進行Android與iOS的微信小程序自動化測試
1. 簡介
隨着微信小程序的逐漸普及,針對微信小程序的測試需求也逐漸豐富起來了。現在針對小程序的自動化測試手段比較不完善,針對的平台比較具現化。
本文介紹一下使用Airtest測試框架進行微信小程序自動化測試的方法,並分別介紹在Android和iOS下對詳細的使用步驟。
2. 需求
這里我們以星巴克的小程序為例

我們需要
1.打開關閉小程序
2.查看咖啡信息並試圖購買
針對這幾個需求,我們使用Airtest對小程序進行測試
3.Airtest簡介
Airtest的簡要介紹可以看這里
https://www.oschina.net/p/airtest
這次我們使用Airtest-Ide,poco,iOS-Tagent,這幾個組件完成我們的任務,這些內容均可以在下面找到
https://github.com/AirtestProject
4.開始Android測試
這里使用系統WebView內核:
使用微信聊天框輸入此網址打開
或者掃描二維碼

選擇強制使用系統內核,然后重啟微信即可:

注意: Android版本的小程序的 使用的 騰訊TBS瀏覽器內核 暫時無法使用 我們的工具來訪問界面元素
現在我們可以使用系統內核進行工作!
不過我們即將有新的解決方案來支持TBS內核,敬請期待。
4.1 打開小程序任務
首先打開Airtest-ide

先進行Android設備的連接

選擇connect進行連接

在poco輔助窗這里選擇Android模式,即可看到原生的ui結構等信息
下面進行操作的錄制:

選擇poco錄制模式,進行操作的錄制:


接下來可以看到生成的代碼情況

略作調整,並執行代碼
# -*- encoding=utf8 -*- __author__ = "suyuchen" from airtest.core.api import * auto_setup(__file__) from poco.drivers.android.uiautomation import AndroidUiautomationPoco poco = AndroidUiautomationPoco() poco("android.support.v7.widget.RecyclerView").child("android.widget.RelativeLayout")[0].child("android.widget.FrameLayout").child("com.tencent.mm:id/gd").click() sleep(1) snapshot() poco("com.tencent.mm:id/l0").child("android.widget.ImageButton").click() snapshot()
可以看到執行效果非常不錯

4.2 查看咖啡信息並購買的腳本
# -*- encoding=utf8 -*- __author__ = "suyuchen" from airtest.core.api import * from poco.drivers.android.uiautomation import AndroidUiautomationPoco auto_setup(__file__) poco = AndroidUiautomationPoco() poco("android.support.v7.widget.RecyclerView").child("android.widget.RelativeLayout")[0].child("android.widget.FrameLayout").child("com.tencent.mm:id/gd").click() while not poco("有你真好").exists(): poco.scroll(direction='vertical', percent=0.3, duration=1.0) snapshot() poco("有你真好").click() poco("當季特飲").click() assert(poco("使用須知:").exists()) poco("android.view.ViewGroup").child("android.widget.FrameLayout").child("android.widget.FrameLayout")[1].child("").child("").child("")[3].child("")[1].click() poco("android.view.ViewGroup").child("android.widget.FrameLayout").child("android.widget.FrameLayout")[1].child("").child("")[2].child("")[1].click() poco("\r 購買\r").click()
執行效果不錯

5.開始iOS測試
Airtest 是跨平台的測試框架,當然是對iOS支持的,大體的代碼會是一樣的,但是iOS和Android的ui結構和名稱會有一些平台相關的不同,但是大部分會是相同的,下面展示使用iOS進行相同功能的測試步驟。
5.1 打開小程序任務
首先打開Airtest-ide

先進行iOS設備的連接,iOS的設備連接需要部署iOS-Tagent
https://github.com/AirtestProject/IOS-Tagent

選擇connect進行連接
在poco輔助窗這里選擇iOS模式,即可看到原生的ui結構等信息
下面進行操作的錄制:

選擇poco錄制模式,進行操作的錄制:
iOS上webView內的元素識別的不如Android准確,有時候需要借助圖像識別進行處理

運行結果:

效果不錯
5.2 查看並試圖購買咖啡功能
下面試着編寫更加復雜的功能

可以看到整體代碼幾乎都是相同的
下面看運行效果:

看到運行效果非常好!
6. 小結
本文介紹了使用Airtest測試小程序的方法,歡迎使用Airtest 進行微信小程序測試
