python+appium+真機測試


appium環境搭建

  • 操作系統: Windows 10
  • 被測平台: Android真機
  • appium服務器: appium Desktop
  • appium客戶端: python-client
  • 測試的APP:小米計算器

安裝Android SDK

在安裝Android開發環境之前,需要先安裝JAVA的開發環境!

Android SDK已經不再提供完整的獨立下載,需要通過Android Studio安裝:

Android Studio下載地址:https://developer.android.google.cn/studio

這里以windows版本為例,下載好了打開安裝程序,記得勾選Android Virtual Device,然后選擇安裝路徑並安裝

首次啟動Android Studio會彈出提示框,如圖所示:

提示Android Studio沒有檢查到Android SDK,因為我們沒有單獨安裝和配置Android SDK,所以單擊“Cancel”按鈕,繼續安裝。

勾選【Android SDK】 和【Android SDK Platform】選項,並通過【Android SDK Location】選擇SDK的安裝路徑。

之后點擊【Finish】開始下載安裝SDK,整個過程比較漫長,需要等待一段時間。

安裝完成后,就可以創建Android項目,因為用真機,所以在這就不講模擬器的設置了。

配置Android 環境變量

在我的電腦右鍵菜單中選擇【屬性】→【高級系統設置】→【高級】→【環境變量】→【系統變量】下的【新建】按鈕,添加ANDROID_HOME:

變量名: ANDROID_HOME

變量值: D:\Android\SDK # SDK的安裝位置

單擊【path】變量名,點擊【編輯】按鈕,追加如下配置:

%ANDROID_HOME%\platform-tools

%ANDROID_HOME%\tools

%ANDROID_HOME%\build-tools\29.0.3 # 后面的版本自己去目錄看下,不要照抄

配置完成后在命令行輸入命令adb,能正常執行就好了

安裝appium Desktop

appium為c/s架構,Server主要用來監聽我們的移動設備,接收Client(客戶端)發來的JSON請求,解析后驅動移動設備運行測試腳本。

Github下載地址:https://github.com/appium/appium-desktop

進入網站后,找到標題Download Appium Desktop下,點擊Release鏈接就可以看到各個版本的安裝包了。

下載完了后進行傻瓜式安裝就好了。

安裝python的appium測試庫

appium client支持多種編程語言,這里以python為例,通過pip命令安裝:

pip install Appium-Python-Client

至此自動化測試環境就完成了。

測試准備和編寫腳本

開發者模式

首先USB手機連接電腦,手機進入開發者模式(不同品牌手機操作方法不同),在開發者選項中開啟USB調試。

在windows命令行中使用adb devices 查看設備連接情況,在List of devices attached下能看到一個實例ID說明監聽成功:

此時windows命令行輸入adb install D:\com.miui.calculator.apk可以安裝小米計算器APP

注意APK的所在路徑和文件名

appium Desktop

打開appium客戶端,點擊【start server】啟動appium server:

菜單欄選擇【File】下的【New Session Window】進行配置:

如何獲取app的appPackage名和appActivity名?
打開windows命令行,輸入命令aapt dump badging D:/com.miui.calculator.apk可以獲取到,如下圖所示

JSON配置信息:

{
  "platformName": "Android",	# 測試的平台,安卓或者ios
  "platformVersion": "10",		# 系統版本,此處代表安卓10
  "deviceName": "OnePlus 7 pro",	# 設備名稱,填手機型號就行,隨便填也可
  "app": "D:/com.miui.calculator.apk",	# app的安裝包的位置
  "appPackage": "com.miui.calculator",	# app的包名
  "appActivity": "com.miui.calculator.cal.CalculatorActivity"	# app的activity名
}

簡單配置完成后,點擊右下角的【start session】

可以看到測試機打開了小米計算器

元素定位

如圖,可以看到進入小米計算器的APP畫面,並且出現了權限設置的問題。

這些權限按鈕什么的都是可以定位到的,現在在appium手機畫面預覽中點擊【同意】按鈕,右邊會出現元素的各種屬性。

可以看到id和xpath定位等,這個操作跟selenium定位一樣,優先使用id就好,沒有id就使用其他定位方式。

這時候在測試機上點擊【同意】按鈕,測試機進入了小米計算器,此時appium的畫面還沒有變,因為需要點擊上面的【refresh】按鈕來實時獲取手機的畫面,然后根據需求找出各個按鈕的定位就可以編寫測試腳本了。

編寫腳本

現在來寫一個簡單的腳本操作一下小米計算器,計算5×9=45是否正確:

from appium import webdriver
from time import sleep

# 配置信息,字典類型,直接復用上面的json就好
desired_caps = {
    "platformName": "Android",
    "platformVersion": "10",
    "deviceName": "OnePlus 7 pro",
    "app": "D:/com.miui.calculator.apk",
    "appPackage": "com.miui.calculator",
    "appActivity": "com.miui.calculator.cal.CalculatorActivity"
}
# 傳入appium server的host+path,還有配置信息
driver = webdriver.Remote(command_executor='http://localhost:4723/wd/hub',
                          desired_capabilities=desired_caps)
sleep(3)
# 同意讀取手機狀態和身份
driver.find_element_by_id('android:id/button1').click()
# 同意獲取電話權限
driver.find_element_by_id('com.android.permissioncontroller:id/permission_allow_button').click()
# 點擊5
driver.find_element_by_id('com.miui.calculator:id/btn_5_s').click()
# 點擊乘號
driver.find_element_by_id('com.miui.calculator:id/btn_mul_s').click()
# 點擊9
driver.find_element_by_id('com.miui.calculator:id/btn_9_s').click()
# 點擊等號
driver.find_element_by_id('com.miui.calculator:id/btn_equal_s').click()
# 判斷結果是否等於45
result = driver.find_element_by_id('com.miui.calculator:id/result').text
if result == '= 45':
    print('正確')
else:
    print('錯誤')

sleep(3)
# 退出測試
driver.quit()

運行腳本的效果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM