入門示例
通過上一篇博客APP自動化測試介紹-CSDN博客的學習,相信大家對APP自動化測試已經有了一定的了解,下面演示一下入門示例
1. 配置Appium
1.1. 點擊Appium圖標,打開服務器:
1.2. 點擊Edit Configurations,進入配置頁面,配置ANDROID_HOME和JAVA_HOME
1.2.1. 如何查看ANDROID_HOME
-
-
- 打開Android Studio進入任一項目頁面后,進入設置頁
-
- 點擊SDK Manager - Android SDK:
-
- 復制圖中Android SDK Location 填入即可
-
1.2.2. 如何查看JAVA_HOME
-
-
- Windows 系統:
-
-
-
-
- 在控制面板中打開「系統」,然后點擊「高級系統設置」。
- 在「系統屬性」對話框中,點擊「環境變量」按鈕。
- 在「環境變量」對話框中,找到「系統變量」下的「JAVA_HOME」變量,并查看其值。
-
-
-
-
- Mac 電腦,可以使用終端命令來查看Java Home的位置:
-
-
-
-
- 打開終端應用程序,然后執行以下命令:/usr/libexec/java_home
- 該命令會返回Java Home的路徑,示例如下:
-
-
-
1.3. 配置好ANDROID_HOME和JAVA_HOME后:
1.3.1. 如果是本地調試,在Host中輸入127.0.0.1;Port默認4723,點擊Start Server v.1.x.xx,啟動Appium
2. 配置手機/模擬器
2.1. 連接手機/模擬器
- 真機需要數據線與電腦進行連接
- 模擬器使用adb connect xxx 命令 連接設備
2.2. 打開手機/模擬器,打開開發者模式
- 設置-關于手機(關于平板電腦)-版本號-連續點擊五次開啟開發者模式
- 允許usb調試:開發者選項--usb調試開關打開
3. 配置Appium inspector
3.1. 打開Appium inspector,輸入正確的Host、Port、Path
3.2. 填寫初始化APP的必填參數
3.2.1. 方式一:左側單個輸入
3.2.2. 方式二:右側直接json輸入
3.2.3. 點擊Start Session
3.2.4. 連接成功
入門代碼示例
1. 示例一
import timefrom appium import webdriver# 定義desired_caps 字典,初始化app的配置信息
desired_caps = {"platformName": "android", # 表示的是android 或者IOS系統"platformVersion": "10", # 表示的是設備系統的版本號"deviceName": "DWV6R19A10002101", # 表示的是設備的ID名稱(如果只有一個設備可以用****來替代)"appPackage": "com.android.settings", # 表示的是app的包名"appActivity": ".HWSettings" # 表示的是app的界面名
}# 創建 Appium 驅動對象
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)# 等待 APP 初始化完成
driver.implicitly_wait(10)# 執行具體的操作,例如點擊、輸入等
time.sleep(5)# 關閉 APP
driver.quit()
在上面的示例中,首先定義了desired_caps字典,其中包括了平臺名稱、設備版本號、設備名稱、APP 包名和主 Activity 等信息。然后,通過Remote方法創建了Appium驅動對象,并使用implicitly_wait方法等待 APP 初始化完成。
其后,可以根據具體的需求在...部分添加各種操作,例如點擊按鈕、輸入文本、滑動屏幕等。
最后,使用driver.quit()方法關閉Appium會話。
2. 異常報錯處理
注意如果是使用pip命令安裝appium-python-client、selenium時默認安裝了最新版本,最新版本是不兼容的,這是他們的版本兼容性列表:
報錯信息:AttributeError: 'NoneType' object has no attribute 'to_capabilities'版本不兼容
2.1. 解決辦法:
2.1.1. 方式一:回退版本
- 打開pycharm中
-
- 在Pycherm打開settings
- 選擇"project- interpreter"
-
- 雙擊appium-python-client進入,選擇Specify version,可以勾選不同版本
-
- 點擊Install package
- selenium安裝時,與上述方法一致
2.1.2. 方式二:更改代碼(不兼容是因為新版本更改了部分屬性內容,可自行百度)
代碼如下:
3. 示例二
import time
from appium import webdriver
from appium.options.android import UiAutomator2Options# 定義desired_caps 字典,初始化app的配置信息
desired_caps = {"platformName": "android", # 表示的是android 或者IOS系統"platformVersion": "10", # 表示的是設備系統的版本號"deviceName": "DWV6R19A10002101", # 表示的是設備的ID名稱(如果只有一個設備可以用****來替代)"appPackage": "com.android.settings", # 表示的是app的包名"appActivity": ".HWSettings" # 表示的是app的界面名
}# 創建 Appium 驅動對象
options = UiAutomator2Options().load_capabilities(desired_caps)
driver = webdriver.Remote("http://localhost:4723/wd/hub", options=options)# 等待 APP 初始化完成
driver.implicitly_wait(10)# 執行具體的操作,例如點擊、輸入等
time.sleep(5) # 加了time.sleep(5)可能會報錯,大家注意調試# 關閉 APP
driver.quit()
上述代碼通過引入UiAutomator2Options,完美解決問題,我目前使用是appium-python-client:3.2.1、selenium:4.18.1,以上代碼可以正常運行。