測試環(huán)境
Win 10 64bit
Python 3.7
Appium 1.10
Andriod 5.1.1 模擬器
測試App:考研幫Android版
測試場景
自動安裝考研幫App,然后啟動App
測試步驟
獲取待測試app的packageName和Activity
配置Capability
連接設(shè)備
編輯腳本并運(yùn)行
查看結(jié)果
運(yùn)行前檢查事項(xiàng)
1. 檢查設(shè)備是否連接
2. 檢查Appium server是否啟動
3. 檢查Capability配置信息是否正確
測試腳本
test_kyb.py
from appium import webdriver
desired_caps={}
desired_caps['platformName']='Android'
#模擬器設(shè)備
desired_caps['platformVersion']='5.1.1'
desired_caps['deviceName']='127.0.0.1:62025'
#mx4真機(jī)
# desired_caps['platformVersion']='5.1'
# desired_caps['deviceName']='MX4'
# desired_caps['udid']='750BBKL22GDN'
desired_caps['app']=r'C:\Users\Administrator\Desktop\kaoyan3.1.0.apk'
desired_caps['appPackage']='com.tal.kaoyan'
desired_caps['appActivity']='com.tal.kaoyan.ui.activity.SplashActivity'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
pycharm常用快捷鍵
復(fù)制粘貼當(dāng)前行Ctrl+D
注釋Ctrl+/
運(yùn)行當(dāng)前腳本Ctrl+shift+F10
折疊展開代碼Ctrl + Numpad + /-
方法定義跳轉(zhuǎn)Ctrl+B
1.首次啟動Appium會在設(shè)備上安裝2個(gè)守護(hù)app,Appium Settings和Unlock 部分設(shè)備系統(tǒng)由于權(quán)限的問題(如:三星S6 edge+)需要用戶手動確認(rèn)安裝,否則不安裝守護(hù)App會導(dǎo)致腳本運(yùn)行失敗,安裝好后不要隨意卸載這兩個(gè)App。
Unlock :用于解鎖手機(jī)彈窗提示
Appium Setting:Appium守護(hù)app
2. from appium import webdriver 中的webdriber模塊和selenium中的webdriver模塊不一樣!
webdriver模塊源碼路徑:
{python安裝路徑}}\Lib\site-packages\appium\webdriver
Appium報(bào)錯(cuò)&解決方案
Appium服務(wù)未啟動
urllib.error.URLError: <urlopen error [WinError 10061] 由于目標(biāo)計(jì)算機(jī)積極拒絕,無法連接。
【解決方案】點(diǎn)擊啟動Appium按鈕后,出現(xiàn)[Appium] Welcome to Appium v1.7.2提示后再運(yùn)行腳本
會話沖突
error: Failed to start an Appium session, err was: Error: Requested a new session but one was in progress
【報(bào)錯(cuò)分析】之前的會話沒有關(guān)閉,然后你又運(yùn)行了測試實(shí)例,也沒有設(shè)置覆蓋.
【解決方案】重新停止appium服務(wù),開啟Appium服務(wù) 在AdVance界面勾選Allow Session Override選項(xiàng),重啟Appium 測試結(jié)束在AfterClass加driver.quit()
未安裝java環(huán)境
selenium.common.exceptions.WebDriverException: Message: A new session could not be created. (Original error: 'java -version' failed. Error: Command failed: C:\WINDOWS\system32\cmd.exe /s /c "java -version"
設(shè)備未連接
selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Could not find a connected Android device.
【解決方案】由于設(shè)備未連接,或者連接后未開啟USB Debug。需要重新連接設(shè)備即可。
更換手機(jī)設(shè)備后如下對應(yīng)的屬性要記得更新,否則無法正常運(yùn)行腳本。
desired_caps['platformVersion'] = 'XXX'
desired_caps['deviceName'] = 'Galaxy S6 edge+'
launchable activity 值寫錯(cuò)
Activity used to start app doesn't exist or cannot be launched! Make sure it exists and is a launchable activity
【解決方案】
launchable activity 寫錯(cuò)更正即可。
如果是存在此activity,則一定是AndroidMainfest.xml.xml中,當(dāng)前activity設(shè)置的屬性exported=false,表示當(dāng)前activity無法被外部程序喚醒。(appium無法喚醒此類)需要研發(fā)人員去修改參數(shù)。
系統(tǒng)權(quán)限問題
Failure [INSTALL_FAILED_USER_RESTRICTED])
【解決方案】
1. USB安裝管理權(quán)限限制,關(guān)閉即可。
2. 開啟安裝允許未知來源app選項(xiàng)
服務(wù)異常
An unknown server-side error occurred while processing the command” while opening the App
【解決方案】重新啟動Appium服務(wù)