這些都不是重點---一切都可以參考蟲師
Appium移動自動化測試(一)--安裝Appium
1.ADB的安裝:ADB(ANDROID DEBUG BRIDGE)
應用場景:
針對移動端 Android 的測試, adb 命令是很重要的一個點,常用的 adb 命令, 將會為 Android 測試帶來很大的方便,其
中很多命令將會用於自動化測試的腳本當中
環境搭建:
解壓:platform-tools_r28.0.0-windows.zip(adb)和sdk-tools-windows-4333796.zip (tools-UIAutomator)將解壓后的路徑放置path環境變量
命令⾏輸⼊:
adb devices:查看已連接的設備 adb shell wm size
adb kill-server , adb start-server , 結束 adb 服務, 啟動 adb 服務,通常兩個命令一起用
adb shell pm list package:列出所有的應用的包名
-s:列出系統應用
-3:列出第三方應用
-f:列出應用包名及其安裝來源
打開應用查看包名和activity名稱:adb shell dumpsys activity top | head -n 10 mac使用命令
2.移動端自動化測試:APPIUM
環境搭建:
1.安裝node.js node-v6..zip 將解壓后的件添加至path環境變量
2.安裝appium。 將 C:\Program Files (x86)\Appium\node_modules\.bin添加至環境變量
或者 :npm install -g appium
淘寶源鏡像:npm install -g cnpm --registry=https://registry.npm.taobao.org #Windows
3.配置JAVA_HOME :就是JDK路徑
ANDROID_HOME:安卓sdk路徑
輸入:appium-doctor
All Checks were successful ,說明環境成功
DESIRED CAPABILITIES
Desired Capabilities在啟動session的時候是必須提供的。
本質上是key value的對象,它告訴appium server這樣一些事情:
1. ▪ 本次測試是啟動瀏覽器還是啟動移動設備?
2. ▪ 是啟動andorid還是啟動ios?
3. ▪ 啟動android時,app的package是什么?
4. ▪ 啟動android時,app的activity是什么?
C:\Users\ASUS-PC>adb shell
jason:/ $ dumpsys activity | grep mFocusedActivity #Windows查看package和activity----當然還有很多其他方法(百度)
1.導入appium:from appium import webdriver
定義一個字典:desired_cap={
'platformName': 'Android',
'deviceName': ‘8BN0218309004925',
'appPackage': 'com.ximalaya.ting.android',
'appActivity': '.host.activity.MainActivity',
'noReset': 'true', #密碼相關,(微信為例)注釋掉該段代碼,需要輸入登錄密碼,反正不需要登錄
'unicodeKeyboard': 'True',
'resetKeyboard': 'True',
}
然后實例化對象:driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_cap)
webdriver.Remote實際上就是原⽣webdriver的子類,第⼀個參數中需要顯⽰指定appium server監聽的端口
APPIUM定位元素:UIAUTOMATORVIEWER
1. 連接真機或模擬器
2.打開/Users/hejianhao/Library/Android/sdk/tools/bin/uiautomatorviewer
元素定位選擇器:
第⼀是ID,
第⼆是class,如果class沒有重復
第三是by uiautomator
第四,可能就是xpath
APPIUM定位元素:UIAUTOMATORVIEWER
1. 連接真機或模擬器
2.打開/Users/hejianhao/Library/Android/sdk/tools/bin/uiautomatorviewer
id:
driver.find_element_by_accessibility_id(‘Animation’)
加個s返回list:driver.find_elements_by_accessibility_id(‘Animation’)
description
:driver.find_element_by_android_uiautomator('new UiSelector().description(“Animation")')
Xpath:
://android.widget.TextView[@text=‘經典必聽’]
Tag_name
:driver.find_element_by_tag_name('button')