Airtest-UI 自動化集大成者

前言

Airtest是由網易研發的一款基於Python的、跨平臺的UI自動化測試框架,基於圖像識別原理,適用於遊戲和App。該項目目前已在Github上面開源: https://github.com/AirtestProject/Airtest
官網地址:
http://airtest.netease.com/
官方文檔手冊很是詳細,建議你們入門能夠先去看下相關的文檔說明。python

爲何須要Airtest?

衆所周知,UI層測試按照平臺種類劃分有Windows、Linux、Android、Web、小程序等
針對於移動端Android & IOS平臺,有最火的Appium測試框架 http://appium.io/
Web端有selenium測試框架 http://seleniumhq.org/
windows應用平臺有AutoIT、Pywinauto
而業界針對遊戲類的應用並無比較好的解決方案,而Airtest測試框架應運而生,基於底層的Airtest和poco:android

  • Airtest:基於Python的、跨平臺的UI自動化測試框架,基於圖像識別原理,適用於遊戲和App。
  • Poco:基於UI控件搜索的自動化測試框架,其核心優點是除了對Android、IOS以外,對遊戲也是支持的,同時也支持微信小程序、微信小遊戲和H5應用。

Airtest還很是貼心的配備了Airtest IDE,不須要寫一行腳本,便可完成腳本的錄製。git

Airtest IDE錄製

錄製Android平臺自動化腳本

step1 檢測設備連接狀態

本地安裝的雷電模擬器github

C:\Users\Administrator>adb devices
List of devices attached
emulator-5554   device
step2 Airtest IDE鏈接設備

能夠看到Airtest能夠直接將設備畫面進行映射,同Appium的inspector或者UIAutomatorViewer.bat工具不同shell

step3 錄製腳本

點擊錄製便可開啓錄製功能,而且提供了不少不一樣的元素操做,如:點擊、等待、滑動、斷言等等 小程序

這裏以檸檬班App爲例,錄製登陸測試用例 windows

錄製回放 微信小程序

Airtest採起圖像識別方式,這種方式比較適合遊戲自動化 可是在腳本的兼容性方面存在一些問題(屏幕的分辨率、圖標大小等)。官方也給了幾個小的技巧:設計模式

  • 一、提高截圖技巧-儘可能截圖完整圖片
  • 二、調整圖像識別閾值
  • 三、利用灰度圖像識別

這些方式只能儘可能優化,並不能根本上解決,因此官方最終建議是儘可能使用poco:經過UI元素屬性信息定位微信

poco

Airtest提供另一種更加穩健的元素操做方式-基於UI控件搜索框架poco

# -*- encoding=utf8 -*-
__author__ = "Administrator"

from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

poco("檸檬班").click()
poco("com.lemon.lemonban:id/navigation_my").click()
poco("com.lemon.lemonban:id/fragment_my_lemon_avatar_title").click()
poco("com.lemon.lemonban:id/et_mobile").set_text(18588220152)
poco("com.lemon.lemonban:id/et_password").set_text(123456)
poco("com.lemon.lemonban:id/btn_login").click()

能夠看到 poco這種模式更加適合公司項目,若是你本身會Python,還能夠在腳本的基礎上繼續拓展,好比:應用PO設計模式 分層設計 等等。

相關文章
相關標籤/搜索