robot framework rf自動化測試例項(第二篇:處理開機/使用者引導頁--滑動swipe以及click方法)
阿新 • • 發佈:2019-02-14
前言:
- 現在越來越多的應用,在首次安裝或者更新之後都會有一個引導頁,上一節我們講解了如何啟動一個應用,接下來我們講解如何操作引導頁順利進入首頁
- 每篇文章都是使用例項, 大家可以一起做,但是練習的時候要多想想,這種操作在哪些地方還有可能用到,該怎麼去用
使用工具:
- adb安裝路徑tools資料夾下:uiautomatorviewer.bat
- appium
- rf編輯器ride
- 58速運安卓端安裝包(下載地址:https://pan.baidu.com/s/1eSiYkEm)
備註:
課程開始之前,我們先來看一下今天我們示例用的應用開機引導頁的應用58速運安卓端安裝包(下載地址:https://pan.baidu.com/s/1eSiYkEm),啟動之後出現開機引導頁進入主頁有以下兩種方式:
- 點選引導頁中的跳過按鈕
- 滑動到第三張引導頁,點選立即體驗按鈕
課程步驟:
- 啟動ride
- 新建工程
- 新建測試集,且在測試集中匯入我們測試所需庫AppiumLibrary
- 新建測試用例名為“跳過進入首頁”
- 手機用USB連線電腦,cmd執行adb devices獲取手機的裝置名
- 啟動appium,依次點選:android settings-->勾選application path-->choose(選擇58速運安卓端安裝包的路徑)如下圖:
7. 選擇之後,再次點選:android settings。 可以檢視到該應用的包名以及啟動activity,如下圖:
8. 注意---消appium中勾選的application path,然後點選啟動。
9. ride中剛新建的測試用例中開始寫程式碼了(整個寫完的用例下載地址:https://pan.baidu.com/s/1eSiYkEm 。下載了程式碼之後,ride直接開啟你下載的資料夾)
我們上圖寫完的最簡單的達到我們目的的用例:
- 第一行:Open Application http://localhost:4723/wd/hub platformName=Android platformVersion=4.2.2 deviceName=KZNJIRLZGIIRKFT4 app=D:/installer/com.wuba.huoyun.apk appPackage=com.wuba.huoyun appActivity=.activity.WelcomeActivity unicodeKeyboard=True
resetKeyboard=True 這行程式碼我們再上一篇文章中就有介紹,開啟應用,如果未安裝應用,則安裝之後開啟應用。最後兩個unicodeKeyboard=True resetKeyboard=True,在我們F5搜尋關鍵字的示例中沒有涉及。那這個是幹什麼用的呢?輸入中文用的,如果不設定這兩個,你如果想要在應用裡輸入中文,是沒法輸入的
- 第二行:sleep 10 ,休息10秒,不做任何動作。 應用啟動需要一段時間之後才會出現引導頁,所以我們這行的意義在於等待引導頁的出現(下節我們練習怎麼動態的等待,斷言引導頁的出現)
- 第三行:swipe 滑動,從第一頁滑動至第二頁。我們所用給的應用有三個引導頁,是用滑動的手勢去切換至下一頁 swipe的用法是(startX,startY,stopX,stopY).如何獲取這個值?可以開啟手機開發者模式中的指標位置,然後手指停留的地方會顯示x和y值
- 第四行:從第二頁,滑動至第三頁。
- 第五行:點選事件,點選開機引導頁第三頁的“立即體驗”。 步驟:手機安裝應用,啟動應用,滑動至引導頁第三頁(確保手機usb連線電腦成功);雙擊啟動adb安裝路徑tools資料夾下:uiautomatorviewer.bat,點選device screenshot按鈕; 滑鼠點選頁面中的立即體驗,然後拷貝右側資料中的 resource-id值,如圖:
10. 執行測試用例,簡單點一個從引導頁到首頁的用例就講解完成了。
今天我們講解的知識點有以下幾個:
- 使用appium獲取安裝包的包名, activity名
- 滑動方法:swipe
- 使用uiautomatorviewer.bat獲取頁面中元素的資訊
- 點選事件:click element (使用id)
- 等待事件:sleep
今天用例的不足:
- 滑動事件:swipe,每個手機的螢幕大小不一樣,這樣的固定的指標位置,可能不適應其他手機(但是我們不可能每個手機都修改一次這個位置)
- 等待事件:sleep, 應用載入較快的時候,10秒鐘我們可能真的只需要等待三秒,浪費了事件,網速不好的時候可能10秒載入不出來,這樣我們的用例就會失敗
- 滑動事件:寫了兩個重複的滑動事件,這裡只需要滑動兩次,但是如果我們需要滑動5次、10次呢?
下一篇我們講解怎麼優化現有的用例:robot framework 移動端自動化(第三篇:動態獲取座標,動態等待,迴圈語句)