Appium+RobotFrameWork测试环境搭建
前提:搭建好robotframework環(huán)境
RF基于python2.7的版本實(shí)現(xiàn)的一套開(kāi)源自動(dòng)化測(cè)試框架
推薦使用Appium Desktop,
搭建Appium環(huán)境:
1. 搭建JDK
2. 搭建SDK環(huán)境;SDK:software development kit? 軟件包,常用的軟件是UIAutomatorViewer,進(jìn)行移動(dòng)端應(yīng)用的元素定位
3. 連接的移動(dòng)端設(shè)備,安卓真機(jī)或者模擬器(夜神)
PS:安裝完模擬器之后,將sdk中的adb.exe文件復(fù)制到夜神的安裝路徑下的nox_adb.exe,并重命名為nox_adb.exe
4. 安裝Appium desktop,直接下載安裝即可。 如果安裝的是Appium server,需要配置node.js,Appium server路徑到環(huán)境系統(tǒng)變量中
5. 在RobotFrameWork中導(dǎo)入Appium的包,實(shí)現(xiàn)對(duì)移動(dòng)端App的自動(dòng)化測(cè)試
啟動(dòng)conmand命令窗口,輸入pip install robotframework-appiumlibrary
6. 啟動(dòng)RobotFrameWork,導(dǎo)入AppiumLibrary,導(dǎo)包時(shí),包名大小寫(xiě)敏感
導(dǎo)入AppiumLibrary后,可能會(huì)報(bào)錯(cuò),提示six not found的error,啟動(dòng)conmand窗口,輸入 pip install six,然后重啟RobotFrameWork
?
RobotFrameWork的工程結(jié)構(gòu):
新建Project,選擇type為directory——新建Suite,選擇type為file——在Suite中導(dǎo)入library——新建Case
RF本身是一個(gè)關(guān)鍵字驅(qū)動(dòng)的方式來(lái)實(shí)現(xiàn)自動(dòng)化的。
騰訊QQ的登錄demo:
1.RF連接模擬器,啟動(dòng)騰訊QQ
Open Application參數(shù)解析:
1.Appium服務(wù)端,連接固定
2.配置Appium的Capabilities:
deviceName 設(shè)備名稱? 可以通過(guò)conmand窗口輸入 adb devices獲取到
platformName 操作系統(tǒng)? Android
platformVersion 系統(tǒng)版本 4.4.2
appPackage 被測(cè)包名
com.lixin.yezonghui
appActivity 被測(cè)應(yīng)用的主入口
.splash.SplashActivity
2. 進(jìn)入QQ登錄界面
要獲取元素的定位,然后基于已定位的元素進(jìn)行相對(duì)于的操作。
?
?
Appium1.6.3(客戶端版)解決每次運(yùn)行都需要安裝Unlock以及AppiumSetting的問(wèn)題
文件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在測(cè)試過(guò)程中不要輕易去掉。
雖然AppiumSetting不知道做什么用的,但是Unlock在手機(jī)鎖屏的情況下會(huì)有解鎖的效果。如果沒(méi)有Unlock,鎖屏狀態(tài)下client會(huì)啟動(dòng)失敗,而有Unlock時(shí)會(huì)自動(dòng)解鎖,然后執(zhí)行下一步
?
如果有誰(shuí)知道Appium Setting是做什么的,希望大家給科普一下~
AppiumLibrary常用關(guān)鍵字
| 關(guān)鍵字 | 含義 | 實(shí)例 | 備注 |
| Click button | 點(diǎn)擊按鈕 | Click button 登錄 | 這里的登錄是class屬性,必須是button |
| Click element | 點(diǎn)擊元素 | Click element [locator] | Locator可以是resource-id,也可以是xpath,但必須是當(dāng)前頁(yè)面唯一存在的,一般用該關(guān)鍵字可以完成所有元素點(diǎn)擊 |
| Click text | 點(diǎn)擊文字 | Click text 我的 | 我的需要是當(dāng)前頁(yè)面唯一存在的 |
| Input text | 在指定元素中輸入文本 | Input text [locator] 111 | Locator可以是resource-id,也可以是xpath |
| Swipe | 滑動(dòng)屏幕 | Swipe 1000 1800 100 1800 ? | ? |
| Get Text | 獲取某標(biāo)簽內(nèi)容 | ${account} ??Get Text ?[locator]? | 獲取內(nèi)容后存儲(chǔ)到指定變量中,從而在后續(xù)腳本中調(diào)用該內(nèi)容 |
二、校驗(yàn)函數(shù)
| 關(guān)鍵字 | 含義 | 實(shí)例 | 備注 |
| Element Name Should Be | 檢查元素的name屬性 | Element Name Should Be? [locator]? 登錄 | locator可以是resource-id,也可以是xpath |
| Element Should Be Enabled | 檢查元素是否可用/可見(jiàn) | Element Should Be Enabled? [locator] | ? |
| Page Should Contain Element | 檢查界面包含某些元素 | Page Should Contain Element?? [locator] | ? |
| Page Should Contain Text | 檢查界面包含某些文字信息 | Page Should Contain Text? 預(yù)約掛號(hào) | ? |
| Page Should Not Contain Element | 檢查界面不包含某些元素 | Page Should Not Contain Element? [locator] | ? |
| Page Should Not Contain Text | 檢查界面不包含某些文字信息 | Page Should Not Contain Text? 預(yù)約掛號(hào) | ? |
?
三、等待函數(shù)
| 關(guān)鍵字 | 含義 | 實(shí)例 | 備注 |
| Wait Until Page Contains | 等待直到界面中包含某些文字,才進(jìn)行下一步 | Wait Until Page Contains? 預(yù)約掛號(hào) | 默認(rèn)等待時(shí)間為5s |
| Wait Until Page Contains Element | 等待直到界面中包含某些元素,才進(jìn)行下一步 | Wait Until Page Contains Element?? [locator] | locator可以是resource-id,也可以是xpath |
| Wait Until Page Does Not Contain | 等待直到界面中不包含某些文字,才進(jìn)行下一步 | Wait Until Page Does Not Contain? 預(yù)約掛號(hào) | ? |
| Wait Until Page Does Not Contain Element | 等待直到界面中不包含某些元素,才進(jìn)行下一步 | Wait Until Page Does Not Contain Element? [locator] | ? |
轉(zhuǎn)載于:https://www.cnblogs.com/ainihaozhen/p/9546944.html
總結(jié)
以上是生活随笔為你收集整理的Appium+RobotFrameWork测试环境搭建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 查询数据库游标使用情况以及sql
- 下一篇: 上证50ETF申赎清单