Appium的安裝及簡單的使用介紹

本文首發於:行者AI

Appium是一個自動化開源工具,支持iOS、Android和Windows桌面平臺上的原生、移動Web和混合應用的自動化。Appium是跨平臺的:它允許你用同樣的API對多平臺(iOS、Android、Windows)寫測試。做到在iOS、Android和Windows測試套件之間複用代碼。

1. 下載安裝及環境配置

1.1 安裝python安裝Appium-Python-Client庫

可以使用pip命令進行安裝pip install Appium-Python-Client,安裝完成後在python中運行此段代碼from appium import webdriver校驗是否安裝成功 。

1.2 安裝Android SDK

(1)在官網上下載Android Studio,其中包含了Android SDK,網頁下拉到底部的Command line tools only,下載其中的windows版本,下載完成後解壓,CMD命令行中cd到bin目錄下,輸入sdkmanager "platfrom-tools" "platforms;android-28" "build-tools;28.0.3"執行安裝組件,過程中彈出Accept?(y/N),輸入y回車即可。

Appium的安裝及簡單的使用介紹

(2)組件安裝完成之後,執行以下步驟將Android SDK加入到環境變量中。

  • 在系統環境變量中創建ANDROID_HOME變量,值爲SDK安裝的根目錄路徑,例如:E:\android_sdk
  • 將%ANDROID_HOME%\platform-tools加入到環境變量Path中
  • 驗證設置成功否:CMD命令行下輸入adb version回車,可以看到當前adb的版本信息,說明Android SDK已經安裝並配置成功

1.3 安裝JDK

(1)在oracle官網下載安裝JDK,安裝JDK8及以上的版本。

(2)安裝完成後,設置JDK的環境變量。

  • 在系統環境變量中創建JAVA_HOME變量,值爲JDK安裝的跟目錄路徑,例如:C:\Program Files\Java\jdk1.8.0_231
  • 在系統環境變量中創建CLASSPATH變量,值爲 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
  • 在Path變量中添加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
  • 驗證JDK環境配置是否成功,CMD命令行下輸入java -version回車,可以看到當前JDK的版本信息,說明JDK已經安裝並配置成功

1.4 安裝appium server

(1)在appium官網上下載Appium Desktop進行安裝,找到與自己使用的系統對應的版本,本次所有操作都是在windows上進行的。

Appium的安裝及簡單的使用介紹

(2)安裝完成後,啓動appium,host和port默認即可,在Edit Configuration中將Android SDK和Java JDK加到環境變量中。

Appium的安裝及簡單的使用介紹

(3)設置好後保存並重啓Appium,然後啓動服務,出現以下畫面,說明你的appium server已經正常啓動了,可以開始真機測試了。

Appium的安裝及簡單的使用介紹

2. 真機測試

2.1 真機設置

USB連接手機,打開手機開發者模式,打開開發者選項中的USB調試、USB安裝,小米手機還需要打開USB調試(安全設置),然後在CMD命令行輸入adb devices回車,如果出現了手機的設備號,說明連接成功。

Appium的安裝及簡單的使用介紹

2.2 設置Appium

(1)點擊Start Inspector Session對進行Desired Capabilities的配置,在JSON Representation中輸入以下json數據點擊保存進行快速的配置,也可以在左邊一項一項的添加。platformName、platformVersion、deviceName、appPackage、appActivity這五個參數是必填項

Appium的安裝及簡單的使用介紹

Appium的安裝及簡單的使用介紹

{
"platformName": "Android", # 聲明是ios還是Android系統
"platformVersion": "8.1.0", # Android內核版本號
"deviceName": "MI_5X", # 連接的設備名稱
"appPackage": "com.tencent.qqmusic", # apk的包名
"appActivity": ".activity.AppStarterActivity", # apk的launcherActivity
"resetKeyboard": True,
"noReset": True # 在開始會話之前不要重置應用程序狀態
}

以上數據通過adb命令獲取,獲取appPackage與appActivity時需要將app啓動,獲取命令如下:

Appium的安裝及簡單的使用介紹

(2)配置好Desired Capabilities後,點擊Start Session,app啓動運行之後可以在界面上點擊選擇查看當前頁面所有元素控件的詳細信息,右側Selected Element下方有三個按鈕。

  • Tap:執行選中元素的點擊操作
  • Send Keys:爲文本框等input對象傳值
  • Clear:清除輸入框中的文本

Appium的安裝及簡單的使用介紹

2.3 編寫自動化腳本

啓動session成功運行app之後,點擊你想要操作的元素,在右邊可以看到這個元素的相關信息,這裏我們可以通過id對該元素進行操作,在python中使用find_element_by_id()方法定位該元素,還有很多方法可以定位元素。

如:find_element_by_xpath()、driver.find_element_by_name()、driver.find_element_by_partial_link_text()等,使用click()方法對元素進行點擊操作,使用swip()方法對屏幕進行滑動操作。

Appium的安裝及簡單的使用介紹

下面是python實現操作的源碼展示,運行之後可以看到手機自動完成了啓動app、點擊、滑動和退出的操作後,說明python腳本運行成功。需要注意的是在完成上一步操作之後由於手機性能的差異,app的響應速度不同,建議等待幾秒後再進行下一步操作。

import time
from appium import webdriver

caps = {
"platformName": "Android", # 聲明是ios還是Android系統
"platformVersion": "8.1.0", # Android內核版本號
"deviceName": "MI_5X", # 連接的設備名稱
"appPackage": "com.tencent.qqmusic", # apk的包名
"appActivity": ".activity.AppStarterActivity", # apk的launcherActivity
"resetKeyboard": True,
"noReset": True # 在開始會話之前不要重置應用程序狀態
}
driver = webdriver.Remote("http://localhost:4723/wd/hub", caps) # 啓動app
time.sleep(15)
el1 = driver.find_element_by_id("com.tencent.qqmusic:id/clt") # 定位<分類歌單>元素
el1.click() # 點擊
time.sleep(5)
driver.swipe(500, 1550, 500, 800) # 從(500, 1500)滑動到(500, 800)
driver.quit() # 退出

3. 總結

Appium是目前比較成熟的自動化測試工具,使用了系統自帶的自動化框架,不需要把Appium特定的或者第三方的代碼編譯進你的應用,這樣就可以使用正式發佈的包進行測試,不用擔心測試包與正式包存在區別。同時可以結合python已有的測試框架,例如:pytest、unittest,編寫測試用例,執行自動化測試。Appium還有很多很有趣的功能沒有介紹到,歡迎有疑問或者建議的朋友與我們一起探討。


PS:更多技術乾貨,快關注【公衆號 | xingzhe_ai】,與行者一起討論吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章