Appium+RobotFrameWork測試環境搭建

前提:搭建好robotframework環境node

RF基於python2.7的版本實現的一套開源自動化測試框架python

推薦使用Appium Desktop,android

搭建Appium環境:app

1. 搭建JDK框架

2. 搭建SDK環境;SDK:software development kit  軟件包,經常使用的軟件是UIAutomatorViewer,進行移動端應用的元素定位python2.7

3. 鏈接的移動端設備,安卓真機或者模擬器(夜神)函數

PS:安裝完模擬器以後,將sdk中的adb.exe文件複製到夜神的安裝路徑下的nox_adb.exe,並重命名爲nox_adb.exe測試

4. 安裝Appium desktop,直接下載安裝便可。 若是安裝的是Appium server,須要配置node.js,Appium server路徑到環境系統變量中ui

5. 在RobotFrameWork中導入Appium的包,實現對移動端App的自動化測試spa

啓動conmand命令窗口,輸入pip install robotframework-appiumlibrary

6. 啓動RobotFrameWork,導入AppiumLibrary,導包時,包名大小寫敏感

導入AppiumLibrary後,可能會報錯,提示six not found的error,啓動conmand窗口,輸入 pip install six,而後重啓RobotFrameWork

 

RobotFrameWork的工程結構:

新建Project,選擇type爲directory——新建Suite,選擇type爲file——在Suite中導入library——新建Case

RF自己是一個關鍵字驅動的方式來實現自動化的。

騰訊QQ的登陸demo:

1.RF鏈接模擬器,啓動騰訊QQ

Open Application參數解析:

1.Appium服務端,鏈接固定

2.配置Appium的Capabilities:

deviceName 設備名稱  能夠經過conmand窗口輸入 adb devices獲取到

platformName 操做系統  Android

platformVersion 系統版本 4.4.2

appPackage 被測包名

com.lixin.yezonghui

appActivity 被測應用的主入口

.splash.SplashActivity

2. 進入QQ登陸界面

要獲取元素的定位,而後基於已定位的元素進行相對於的操做。

 

 

Appium1.6.3(客戶端版)解決每次運行都須要安裝Unlock以及AppiumSetting的問題

文件1地址:/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-android-driver/lib/android-helpers.js

註釋掉:await helpers.pushSettingsApp(adb);

註釋掉:await helpers.pushUnlock(adb);

文件2地址:

/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-android-driver/build/lib/android-helpers.js

 

註釋掉:return _regeneratorRuntime.awrap(helpers.pushSettingsApp(adb));

新增:return context$1$0.abrupt('return', defaultIME);

註釋掉:return _regeneratorRuntime.awrap(helpers.pushUnlock(adb));

新增:return context$1$0.abrupt('return', defaultIME);

重啓appium

Appium Setting和Unlock在測試過程當中不要輕易去掉。

雖然AppiumSetting不知道作什麼用的,可是Unlock在手機鎖屏的狀況下會有解鎖的效果。若是沒有Unlock,鎖屏狀態下client會啓動失敗,而有Unlock時會自動解鎖,而後執行下一步

 

若是有誰知道Appium Setting是作什麼的,但願你們給科普一下~

AppiumLibrary經常使用關鍵字

關鍵字

含義

實例

備註

Click button

點擊按鈕

Click button 登陸

這裏的登陸是class屬性,必須是button

Click element

點擊元素

Click element [locator]

Locator能夠是resource-id,也能夠是xpath,但必須是當前頁面惟一存在的,通常用該關鍵字能夠完成全部元素點擊

Click text

點擊文字

Click text 個人

個人須要是當前頁面惟一存在的

Input text

在指定元素中輸入文本

Input text [locator] 111

Locator能夠是resource-id,也能夠是xpath

Swipe

滑動屏幕

Swipe 1000 1800 100 1800

 

 

Get Text

獲取某標籤內容

${account}   Get Text  [locator] 

獲取內容後存儲到指定變量中,從而在後續腳本中調用該內容

2、校驗函數

關鍵字

含義

實例

備註

Element Name Should Be

檢查元素的name屬性

Element Name Should Be  [locator]  登陸

locator能夠是resource-id,也能夠是xpath

Element Should Be Enabled

檢查元素是否可用/可見

Element Should Be Enabled  [locator]

 

Page Should Contain Element

檢查界面包含某些元素

Page Should Contain Element   [locator]

 

Page Should Contain Text

檢查界面包含某些文字信息

Page Should Contain Text  預定掛號

 

Page Should Not Contain Element

檢查界面不包含某些元素

Page Should Not Contain Element  [locator]

 

Page Should Not Contain Text

檢查界面不包含某些文字信息

Page Should Not Contain Text  預定掛號

 

 

3、等待函數

關鍵字

含義

實例

備註

Wait Until Page Contains

等待直到界面中包含某些文字,才進行下一步

Wait Until Page Contains  預定掛號

默認等待時間爲5s

Wait Until Page Contains Element

等待直到界面中包含某些元素,才進行下一步

Wait Until Page Contains Element   [locator]

locator能夠是resource-id,也能夠是xpath

Wait Until Page Does Not Contain

等待直到界面中不包含某些文字,才進行下一步

Wait Until Page Does Not Contain  預定掛號

 

Wait Until Page Does Not Contain Element

等待直到界面中不包含某些元素,才進行下一步

Wait Until Page Does Not Contain Element  [locator]

相關文章
相關標籤/搜索