下載及安裝
下載地址:
https://github.com/appium/appium-desktop/releases
下載對應系統的 Appium 版本,安裝完成之后,點擊 “Start Server”,就啟動了 Appium Server,
在啟動成功頁面點擊右上角的放大鏡,進入到創建 Session 頁面,配置好 desirecapability 資訊之后,點擊“Start Session”啟動會話就展示出下面的頁面,Appium Inspector 元素定位頁面:
左側為螢屏快照:可以在左側使用滑鼠選擇 UI 元素,會看到它們高亮顯示,
中間為頁面 DOM 樹結構:在應用層次結構中會直接將元素的屬性值標記在樹上,這對于 Appium 定位元素很方便,
右側為元素的詳細資訊:當元素被選中,右側會展示出元素的詳細屬性資訊串列,這些屬性將決定 Appium 定位元素的策略,
另外 Appium Inspector 還提供了頁面重繪,頁面操作,錄制,元素的點擊、輸入等功能,
Appium自動化用例錄制
Appium Inspect 提供了定位元素與錄制用例的功能,使用 Appium Inspect 可以查看移動設備的 UI 布局結構,方便腳本的撰寫和生成,下面以 Android 系統為例,在 Android 模擬器上安裝 ApiDemos-debug.apk 應用,
測驗應用下載地址:
https://github.com/appium/sample-code/raw/master/sample-code/apps/ApiDemos/bin/ApiDemos-debug.apk
下載該 apk 并安裝到測驗設備,之后會基于該 app 進行自動化測驗,
在錄制腳本前啟動測驗設備,并且通過命令列查看該設備已連接成功,使用下面的命令查看設備是否連接,展示出下面的內容,即說明設備已連接,
$ adb devices
List of devices attached
emulator-5554 device
上面的結果中,“emulator-5554” 代表設備的名稱,“device” 代表設備的狀態,說明設備已連接,如果是其它狀態,需要重新連接設備,或者在設備上檢查是否開啟開發者模式,以及打開 USB 除錯模式,
獲取應用包名和頁面名稱
移動端的包名(也就是 Package)作為每個 app 的唯一標識,每個 APP 都有自己的 Package Name,且每個設備上相同的包名的 APP,只允許安裝一個,
頁面(也就是 Activity)是 Android 組件中最基本,也是常見的四大組件之一,可以理解為一個頁面就是一個 Activity,移動端打開一個 app 的頁面,在操作頁面的時候會發生頁面的跳轉,也就是 Activity 之間發生了切換,在撰寫測驗腳本之前,首先要獲取應用的包名以及啟動頁的 Activity 名字,
獲取包名,終端進入 aapt 工具所在目錄(Android SDK 的 build-tools 目錄下),輸入:
aapt dump badging [app名稱].apk
運行結果:
圖中“package:name”對應的結果是包名,“Lauchable-activity:name”對應的結果是“包名+頁面名”,但是有些不符合規范的應用,通過 aapt 命令無法獲取到 “Lauchable-activity:name” 這部分內容,
針對上面的問題,就需要在測驗設備上啟動 APP,然后在終端輸入如下命令(Mac OS / Linux 系統):
adb logcat | grep ActivityManager
運行結果如下圖:
Appium-desktop自動化用例錄制
1. 啟動 Appium Server
使用 Appium Inspector 錄制測驗腳本,首先需要啟動 Appium-desktop,點擊“Start Server”,如下圖:
2. 打開 Appium Inspect 工具
點擊右上角“Start inspector Session”按鈕,打開 inspector 工具,圖形頁面如下:
Inspector 就是探測器,給它相應的引數,啟動 app 幫你分析移動端 APP 的 UI 界面,還可以使用它錄制腳本,支持匯出多種語言的測驗腳本,
3. 配置 Desired Capabilities 資訊
-
platfromName:使用哪個移動作業系統平臺,這里可以填 Android、iOS
-
deviceName:設備名稱,可以隨便填,但必須得有此項
-
appPackage:要啟動的 android 應用程式包(“io.appium.android.apis”)
-
appActivity:App 啟動的首頁 Activity(“.ApiDemos”或者“io.appium.android.apis/.ApiDemos”)
4. 啟動 Session
點擊 “Start Session”,錄制腳本,
對于 Appium 的初學者,可以通過錄制功能,了解撰寫用例的時候需要使用哪些 API,有哪些撰寫規范等,可以作為一個很好的參考,
點擊“開始錄制”按鈕(小眼睛圖示):
左側選擇要操作的頁面元素,在右側選擇要做的操作:
Tap 為點擊元素 Send keys 為文本框錄入 Clear 為清空文本框
利用上圖 1,2 步組合,就可以實作對 app 的操作,比如在截取的頁面中滑鼠點擊“Views”->點擊 Tap,再點擊“Buttons”->點擊 Tap,每操作一步,都會自動生成腳本,如圖:
默認生成的語言為 Java-unit,如果想生成其他語言,只要點擊下拉欄選擇相應選項即可,這里切換成 Python 語言,
把代碼復制粘貼到編輯器中,就可以運行,代碼如下:
from appium import webdriver
caps = {}
caps["platformName"] = "android"
caps["deviceName"] = "demo"
caps["appPackage"] = "io.appium.android.apis"
caps["appActivity"] = ".ApiDemos"
caps["autoGrantPermissions"] = "true"
driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
el2 = driver.find_element_by_id("tv.danmaku.bili:id/expand_search")
el2.click()
el3 = driver.find_element_by_accessibility_id("搜索查詢")
el3.send_keys("霍格沃茲測驗學院")
driver.quit()
上面是錄制出來的代碼,錄制生成的代碼需要手動優化,添加需要的單元測驗框架(比如 Pytest,Unittest)使代碼更優雅,代碼錄制對剛入門的人來說還是比較實用的,它的缺點也是很明顯:
-
所有的代碼都會在一個檔案里,顯得代碼非常的冗余
-
不能解決作業中大部分的場景
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/489785.html
標籤:其他
