Appium 服務(wù)關(guān)鍵字
| 關(guān)鍵字 | 描述 | 實(shí)例 |
|---|---|---|
automationName |
你想使用的自動化測試引擎 |
Appium (默認(rèn)) 或 Selendroid
|
platformName |
你要測試的手機(jī)操作系統(tǒng) |
iOS, Android, 或 FirefoxOS
|
platformVersion |
手機(jī)操作系統(tǒng)版本 | 例如: 7.1, 4.4
|
deviceName |
使用的手機(jī)類型或模擬器類型 |
iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, 等。在 iOS 上,這個關(guān)鍵字的值必須是使用 instruments -s devices 得到的可使用的設(shè)備名稱之一。在 Android 上,這個關(guān)鍵字目前不起作用。 |
app |
.ipa or .apk文件所在的本地絕對路徑或者遠(yuǎn)程路徑,也可以是一個包括兩者之一的.zip。 Appium會先嘗試安裝路徑對應(yīng)的應(yīng)用在適當(dāng)?shù)恼鏅C(jī)或模擬器上。針對Android系統(tǒng),如果你指定app-package和app-activity(具體見下面)的話,那么就可以不指定app。 會與 browserName 沖突
|
比如/abs/path/to/my.apk或http://myapp.com/app.ipa
|
browserName |
需要進(jìn)行自動化測試的手機(jī) web 瀏覽器名稱。如果是對應(yīng)用進(jìn)行自動化測試,這個關(guān)鍵字的值應(yīng)為空。 | iOS 系統(tǒng)上可以用 'Safari' ,Android 系統(tǒng)上可以用 'Chrome', 'Chromium', 或 'Browser'。 |
newCommandTimeout |
設(shè)置命令超時時間,單位:秒。達(dá)到超時時間仍未接收到新的命令時 Appium 會假設(shè)客戶端退出然后自動結(jié)束會話。 | 比如 60
|
autoLaunch |
Appium是否需要自動安裝和啟動應(yīng)用。默認(rèn)值true
|
true, false
|
language |
(Sim/Emu-only) 設(shè)定模擬器 ( simulator / emulator ) 的語言。 | 如: fr
|
locale |
(Sim/Emu-only) 設(shè)定模擬器 ( simulator / emulator ) 的區(qū)域設(shè)置。 | 如: fr_CA
|
udid |
連接的物理設(shè)備的唯一設(shè)備標(biāo)識 | 如: 1ae203187fc012g
|
orientation |
(Sim/Emu-only) 在一個設(shè)定的方向模式中開始測試 |
LANDSCAPE (橫向) 或 PORTRAIT (縱向) |
autoWebview |
直接轉(zhuǎn)換到 WebView 上下文。 默認(rèn)值 false、 |
true, false
|
noReset |
不要在會話前重置應(yīng)用狀態(tài)。默認(rèn)值false。 |
true, false
|
fullReset |
(iOS) 刪除整個模擬器目錄。(Android) 通過卸載——而不是清空數(shù)據(jù)——來重置應(yīng)用狀態(tài)。在 Android 上,這也會在會話結(jié)束后自動清除被測應(yīng)用。默認(rèn)值 false
|
true, false
|
Android特有
| 關(guān)鍵字 | 描述 | 實(shí)例 |
|---|---|---|
appActivity |
你要從你的應(yīng)用包中啟動的 Android Activity 名稱。它通常需要在前面添加 . (如:使用.MainActivity 而不是 MainActivity) |
MainActivity, .Settings
|
appPackage |
你想運(yùn)行的Android應(yīng)用的包名 | 比如com.example.android.myApp, com.android.settings
|
appWaitActivity |
你想要等待啟動的 Android Activity 名稱 | SplashActivity |
deviceReadyTimeout |
設(shè)置等待一個模擬器或真機(jī)準(zhǔn)備就緒的超時時間 | 5 |
enablePerformanceLogging |
(僅適用于 Chrome 和 webview) 開啟 Chromedriver 的性能日志。 (默認(rèn) false) |
true, false
|
androidDeviceReadyTimeout |
等待設(shè)備在啟動應(yīng)用后準(zhǔn)備就緒的超時時間。以秒為單位。 | 如 30
|
androidDeviceSocket |
開發(fā)工具的 socket 名稱。只有在被測應(yīng)用是一個使用 Chromium 內(nèi)核的瀏覽器時需要。 socket 會被瀏覽器打開,然后 Chromedriver 把它作為開發(fā)者工具來進(jìn)行連接。 | 如 chrome_devtools_remote
|
chromedriverExecutable |
webdriver 可執(zhí)行文件的絕對路徑 (如果 Chromium 核心提供了對應(yīng)的 webdriver, 應(yīng)該用它代替 Appium 自帶的 webdriver) | /abs/path/to/webdriver |
stopAppOnReset |
在使用 adb 啟動應(yīng)用前停止被測應(yīng)用的進(jìn)程 ( process ) 。如果被測應(yīng)用是被另一個應(yīng)用創(chuàng)建的,當(dāng)這個參數(shù)被設(shè)定為 false 時,允許另一個應(yīng)用的進(jìn)程在使用 adb 啟動被測應(yīng)用時繼續(xù)存活。默認(rèn)值 true
|
true 或 false
|
在這里需要注意的就是 appActivity,appPackage這兩個參數(shù),是安卓測試所必須的,這兩個參數(shù)的獲取方法在之前的adb命令介紹中有講到。
appium的測試用例支持多種語言,這里選用python進(jìn)行編寫。
首先需要在python中安裝appium python-client。
安裝 Appium Python client
這里介紹三種方法安裝appium python-client
-
從PyPi安裝
'Appium-Python-Client'.pip install Appium-Python-Client -
通過下載源碼安裝PyPi.'Appium-Python-Client',
download and unarchive the source tarball (Appium-Python-Client-X.X.tar.gz).tar -xvf Appium-Python-Client-X.X.tar.gz cd Appium-Python-Client-X.X python setup.py install -
從GitHub上下載安裝.
git clone git@github.com:appium/python-client.git cd python-client python setup.py install
使用pycharm新建一個工程后,輸入以下代碼
# -*- coding: utf-8 -*-
from appium import webdriver
from time import sleep
desired_caps = {}desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.4'
desired_caps['deviceName'] = 'galaxy s4'
desired_caps['appPackage'] = 'com.sina.weibog3'
desired_caps['appActivity'] = '.SwitchUser'
dr = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
sleep(3)
dr.find_element_by_id('com.sina.weibog3:id/etLoginUsername').send_keys('username')
dr.find_element_by_id('com.sina.weibog3:id/etPwd').send_keys('password')
dr.find_element_by_id('com.sina.weibog3:id/bnLogin').click()
sleep(15)
dr.quit()
保存后,接下來連接真機(jī)運(yùn)行一下demo
android手機(jī)需要打開usb調(diào)試
連接之后,打開命令行,輸入adb devices,查看是否連接成功,記錄下device name。
appium -a 127.0.0.1 -p 4723 –U 4ca1558c --no-reset

Paste_Image.png
當(dāng)程序輸出如上圖信息的時候,表示appium啟動成功,此時便可以運(yùn)行測試腳本了。