使用Robot Framework+Appium進(jìn)行移動(dòng)端UI自動(dòng)化
最近項(xiàng)目需要做移動(dòng)端自動(dòng)化,找到Appium,在網(wǎng)上搜了一大堆教程,很多都寫的很亂,自己摸索了一陣給弄出來(lái)了,所以想寫個(gè)教程記錄一下。
本人是使用mac做的,使用win的朋友可以參考一下,大體差不多。
先說(shuō)一下需要準(zhǔn)備的東西,因?yàn)槭腔赗obot Framework框架的,所以robot需要的東西都要裝上,robot第一個(gè)示例這里可以參考一下蟲師的博客:
- JDK
- SDK
- Python(mac自帶2.7)
- Robot framework
- wxPython
- Robot framework-ride
- Robot framework-selenium2library
- Appium-Python-Client
- robotframework-appiumlibrary
- Appium
- 模擬器
聲明
這里只說(shuō)到如何通過(guò)Appium實(shí)現(xiàn)UI自動(dòng)化的一個(gè)demo,進(jìn)階內(nèi)容下一期再說(shuō),需要安裝的內(nèi)容這里默認(rèn)已經(jīng)安裝好,安裝教程百度,這些比較容易查到
環(huán)境檢查準(zhǔn)備
打開命令行窗口,輸入adb,如果提示'command not found',需要設(shè)置adb環(huán)境變量
cd到user文件夾下,運(yùn)行
touch .bash_profile
open -e .bash_profile
在打開的窗口中加入
export PATH=$PATH:/xxx/sdk/platform-tools
關(guān)閉窗口,運(yùn)行命令
source .bash_profile
這時(shí)候再運(yùn)行adb -version就可以看到adb版本了
這時(shí)候運(yùn)行adb devices查看鏈接的移動(dòng)設(shè)備,如果是使用模擬器會(huì)發(fā)現(xiàn)列表中沒(méi)有模擬器的設(shè)備信息,以本人使用的夜神模擬器為例,運(yùn)行如下命令即可
1.先到模擬器中打開開發(fā)者模式( 夜神模擬器:設(shè)置->關(guān)于平板電腦->點(diǎn)擊5次版本號(hào) 進(jìn)入開發(fā)者模式 )
2.右鍵點(diǎn)擊夜神模擬器的app,選擇顯示包內(nèi)容,進(jìn)入到MacOS文件夾中
命令行cd到MacOS文件夾下,運(yùn)行命令
adb connect 127.0.0.1:62001
現(xiàn)在再運(yùn)行adb devices命令就能看到設(shè)備信息了,顯示如下:
接下來(lái)看看Appium
打開我們下載的Appium,點(diǎn)開設(shè)置按鈕
Server Address設(shè)置為本地ip,端口號(hào)不變
Override Existing Sessions勾選上
點(diǎn)開安卓小人,App Path設(shè)置為你需要測(cè)試的app在本機(jī)的地址
安卓版本選擇模擬器對(duì)應(yīng)的安卓版本
點(diǎn)擊Launch,出現(xiàn)下圖我們就可以進(jìn)行下一步了:
另外點(diǎn)擊上面聽診器按鈕可以進(jìn)行自檢,缺少組件會(huì)提示
Demo示例
在命令行運(yùn)行ride.py打開RIDE,像創(chuàng)建web測(cè)試項(xiàng)目一樣,我們創(chuàng)建一個(gè)android測(cè)試項(xiàng)目
注意在測(cè)試套件里面導(dǎo)入AppiumLibrary包
如果導(dǎo)入沒(méi)有問(wèn)題AppiumLibrary顯示為黑色
接下來(lái)寫第一條測(cè)試用例
偽代碼為:
Open Application http://127.0.0.1:4723/wd/hub platformName=Android platformVersion=4.4.2 deviceName=127.0.0.1:62001 app=/Users/moooke/Desktop/bosch-debug.apk
其中幾個(gè)參數(shù)說(shuō)明一下
Open Application : 關(guān)鍵字
http://127.0.0.1:4723/wd/hub :/wd/hub為固定格式,前面我是指向本機(jī)地址
platformName : 平臺(tái)名稱
platformVersion : 平臺(tái)版本
deviceName : 設(shè)備名稱
app : 指向待測(cè)試app的路徑
之后還有兩個(gè)參數(shù):包名、Activity名字,可以省略
接下來(lái)我們先把a(bǔ)pk安裝到模擬器中,讓Appium跑起來(lái),然后跑我們剛才寫的這個(gè)用例
可以看到模擬器已經(jīng)把我安裝的apk啟動(dòng)起來(lái)了。
這個(gè)時(shí)候可能會(huì)遇到問(wèn)題,ride提示應(yīng)用沒(méi)有啟動(dòng)成功,Appium中報(bào)錯(cuò):
這是因?yàn)榄h(huán)境變量沒(méi)有設(shè)置完成,找到我們之前的 .bash_profile文件夾
open -e .bash_profile
在打開的文件中寫入
export PATH=$PATH:/xxx/sdk/tools
export ANDROID_HOME=/xxx/sdk/
這時(shí)候再通過(guò)ride運(yùn)行我們的測(cè)試用例就可以成功打開應(yīng)用了。
兩點(diǎn)補(bǔ)充
第一次運(yùn)行robot framework進(jìn)行web-ui自動(dòng)化的時(shí)候可能會(huì)提示瀏覽器打開錯(cuò)誤,如果大家用的是chrome,一般來(lái)說(shuō)是因?yàn)閷?duì)應(yīng)的驅(qū)動(dòng)有問(wèn)題,大家可以先查看自己的chrome版本,然后去網(wǎng)上搜對(duì)應(yīng)的chrome的驅(qū)動(dòng),下載好之后,同樣在剛才的 .bash_profile 文件中添加上
export PATH=$PATH:/xxx/chromedriver #指向自己下載的chormedriver就可以正常啟動(dòng)chrome了
在sdk-tools文件夾下可以找到uiautomatorviewer文件
雙擊打開,點(diǎn)擊設(shè)備按鈕
我們就可以看到如圖所示的界面,通過(guò)右邊的標(biāo)簽我們就可以很輕松定位到我們所需要的元素信息了
更多的API信息和操作會(huì)持續(xù)分享