日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

兩分鐘搞懂UiAutomator 1 VS 2測試框架

 測試開發(fā)技術 2022-06-18 發(fā)布于廣東

優(yōu)質文章,第一時間送達!

1. UiAutomator簡介

UiAutomator是谷歌在Android4.1版本發(fā)布時推出的一款用Java編寫的UI測試框架,基于Accessibility服務。其最大的特點就是可以跨進程操作,可以使用UiAutomator框架提供的一些方便的API來對安卓應用進行一系列的自動化測試操作,如點擊、滑動、鍵盤輸入、長按以及常用的斷言方法等。

要使用該工具,需要滿足如下條件:

  • Android SDK Tools, Revision 21 or higher

  • Android SDK Platform, API 18 or higher

  在Android SDK 4.3中提供了如下工具來支持UI自動化測試:

  • uiautomatorviewer – 一個圖形界面工具來掃描和分析應用的UI控件。存放在tools目錄。

  • uiautomator – 一個測試的Java庫,包含了創(chuàng)建UI測試的各種API和執(zhí)行自動化測試的引擎。

雖然利用Google提供的uiautomator庫可以獲取屏幕上任意一個APP的任意一個控件屬性(NAF Nodes節(jié)點除外),并對其進行任意自動化操作,但卻存在兩個缺點:

1、測試腳本只能使用Java語言。
2、測試腳本必須每次被上傳到設備上運行。 

2. UiAutomator2由來

我們從上述可以知道uiautomator庫,只能使用Java語言,并且測試腳本需要打包成Jar包上傳到設備上才能運行。

但是我們希望測試能夠用一個更腳本化的語言,例如Python編寫,同時可以每次所見即所得地修改測試、運行測試或者是說能夠在電腦上運行就能控制手機。因此基于這種需求背景之下,誕生出來的uiautomator2。

早期,它是由一個名為Xiaocong He的大牛將這個想法實現(xiàn)了出來,實現(xiàn)原理是在手機上運行了一個http rpc服務,將uiautomator中的功能開放出來,然后再將這些http接口封裝成Python庫。 

GitHub項目地址:

https://github.com/xiaocong/uiautomator.git

但由于xiaocong/uiautomator這個庫,已經(jīng)很久不見更新。因此在這個庫的基礎上,又重新誕生了另外一個加強版本,為了方便做區(qū)分原作者在后面加了個2 名為:openatx/uiautomator2

GitHub項目地址:

https://github.com/openatx/uiautomator2.git

該項目除了對原有的庫的bug進行了修復外,還增加了很多新的Feature。主要有以下部分:

  • 設備和開發(fā)機可以脫離數(shù)據(jù)線,通過WiFi互聯(lián)(基于atx-agent)

  • 集成了openstf/minicap達到實時屏幕投頻,以及實時截圖

  • 集成了openstf/minitouch達到精確實時控制設備

  • 修復了xiaocong/uiautomator經(jīng)常性退出的問題

  • 代碼進行了重構和精簡,方便維護

  • 實現(xiàn)了一個設備管理平臺(也支持iOS) atxserver2

  • 擴充了toast獲取和展示的功能

PS: 目前市面上,常提及的uiautomator2測試框架,大部分指的是openatx/uiautomator2這個了,該框架更詳細的介紹,可查閱項目文檔。

3. 牛刀小試

1、先準備一臺開啟了開發(fā)者選項的安卓手機,連接上電腦,此處直接打開夜神安卓模擬器。

2、確保執(zhí)行adb devices可以看到連接上的設備。

3、運行pip3 install -U uiautomator2 安裝uiautomator2。

4、運行python3 -m uiautomator2 init安裝包含httprpc服務的apk到手機

上述初始化命令會自動安裝本庫所需要的設備端程序:uiautomator-server、atx-agent、openstf/minicap、openstf/minitouch,并且在被測手機終端上會安裝一個名為ATX的代理程序。

按照項目文檔中的介紹,在之前的版本中,初始化這一步是必須執(zhí)行的,但是從1.3.0之后的版本,當運行python代碼u2.connect()時就會自動推送這些依賴文件了。

5、接下來在做自動化測試之前,需要先查看獲取到被測應用控件信息,一般來說,可以借助Android SDK自帶的uiautomatorviewer來查看元素,但這要求手機必須以USB的方式連接PC,但openatx項目中提供了另外一個工具weditor 來解決這個問題。

6、安裝weditor在線元素查看器。

pip3 install --pre -U weditor

安裝好之后,就可以在命令行運行weditor --help 確認是否安裝成功了。

7、命令行直接輸入 weditor 會自動打開瀏覽器(http://localhost:17310/),輸入設備的ip或者序列號,點擊Connect即可。

8、編寫自動化測試腳本,在下述腳本中,通過connect方法連接到指定設備,再通過app_start方法啟動被測應用(腳本示例中,打開的是酷狗音樂App),再依次點擊登錄按鈕,以及判斷點擊登錄按鈕后,賬號登錄頁面是否顯示,最后關閉酷狗音樂。

import uiautomator2 as u2d = u2.connect('127.0.0.1:62001')print(d.info)d.app_start("com.kugou.android", ".app.splash.SplashActivity")d(text="登錄").click()d(text="賬號登錄").wait(timeout=10.0)d.app_stop("com.kugou.android")

如果你覺得文章還不錯,請大家點贊分享下。你的肯定是我最大的鼓勵和支持。





今日留言主題

說說你從新書前兩章內容的學習收獲?

PS: 被挑選為走心留言的讀者,請及時聯(lián)系筆者,贈書。

    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多