使用python編寫appium用例

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-packageapp-activity(具體見下面)的話,那么就可以不指定app會與 browserName 沖突 比如/abs/path/to/my.apkhttp://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 truefalse

在這里需要注意的就是 appActivity,appPackage這兩個參數(shù),是安卓測試所必須的,這兩個參數(shù)的獲取方法在之前的adb命令介紹中有講到。

appium的測試用例支持多種語言,這里選用python進(jìn)行編寫。
首先需要在python中安裝appium python-client。

安裝 Appium Python client

這里介紹三種方法安裝appium python-client

  1. PyPi安裝
    'Appium-Python-Client'.

    pip install Appium-Python-Client
    
  2. 通過下載源碼安裝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
    
  3. 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)行測試腳本了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容