Appium+RobotFrameWork测试环境搭建
前提:搭建好robotframework環境
RF基于python2.7的版本實現的一套開源自動化測試框架
推薦使用Appium Desktop,
搭建Appium環境:
1. 搭建JDK
2. 搭建SDK環境;SDK:software development kit? 軟件包,常用的軟件是UIAutomatorViewer,進行移動端應用的元素定位
3. 連接的移動端設備,安卓真機或者模擬器(夜神)
PS:安裝完模擬器之后,將sdk中的adb.exe文件復制到夜神的安裝路徑下的nox_adb.exe,并重命名為nox_adb.exe
4. 安裝Appium desktop,直接下載安裝即可。 如果安裝的是Appium server,需要配置node.js,Appium server路徑到環境系統變量中
5. 在RobotFrameWork中導入Appium的包,實現對移動端App的自動化測試
啟動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]? | 獲取內容后存儲到指定變量中,從而在后續腳本中調用該內容 |
二、校驗函數
| 關鍵字 | 含義 | 實例 | 備注 |
| 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? 預約掛號 | ? |
?
三、等待函數
| 關鍵字 | 含義 | 實例 | 備注 |
| 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] | ? |
轉載于:https://www.cnblogs.com/ainihaozhen/p/9546944.html
總結
以上是生活随笔為你收集整理的Appium+RobotFrameWork测试环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查询数据库游标使用情况以及sql
- 下一篇: javascript篇-知道value值