RobotFramework + Appium 移動自動化實現
本次我們移動自動化實現路線大致是這樣的: Python語言基礎 —> Robot Framework測試框架 —> Android SDK和Genymotion模擬器 —> Appium API —> 開發移動自動化專案
一、環境搭建
1.首先我們選擇Python語言,我相信很多人都有這個疑問,為什麼選擇Python而不是Java?
因為RF核心框架使用Python實現的,雖然也可以在Jython(JVM)和 IronPython(.NET)上執行,但是Python運用更佳。
2.再者我們選擇RIDE編輯器;
雖然RIDE是“填表格”形式,看似有點low,但是卻擁有非常豐富的庫,也可以像程式設計一樣寫測試用例,也支援開發系統關鍵字。對於開發技術薄弱的測試人員來說也可以上手,使用比較簡單。
3.接著我們需要Android SDK;
因為需要用到Android SDK中的 uiautomatorviewer工具,它可以通過截圖並分析XML佈局檔案的方式,為使用者提供控制元件資訊檢視服務。
4.最後我們需要Appium服務。
因為Appium支援ios和android平臺上的移動原生應用、移動Web應用和混合應用,它允許測試人員使用同樣的介面、基於不同的平臺寫自動化測試程式碼,大大增加了測試套件間程式碼的複用性。
詳情參考筆者另外兩篇博文: ofollow,noindex" target="_blank">Python + Robot Framework 環境搭建 Android SDK + Appium 環境搭建
二、裝置選擇
1. 直接連線真機: 開啟開發者選項 -> USB除錯。
>>>
2. 或者使用模擬器: 因為Android AVD模擬器對PC硬體有要求,所以我推薦一個比較好用的模擬器Genymotion。
連結: https://pan.baidu.com/s/1iSAWPnnFSOCFVVsPtgHA4g 提取碼: qdi9
安裝:直接雙擊下一步即可。
使用: 開啟虛擬機器,選擇一個模擬器下載即可使用。
詳情參考另外一篇博文: Android模擬器Genymotion使用詳解
三、控制元件檢視
1. 開啟uiautomatorviewer工具,點選獲取佈局,檢視控制元件資訊。
四、專案建立
1. 開啟RIDE -> File
2. 建立專案 New Project(型別選擇Directory,用於建立測試套件)
3. 建立測試套件 New Suite(右擊專案新建,型別選擇File,用於建立測試用例)
4.建立測試用例
5. 建立資源 New Resource(右擊專案新建,用於建立關鍵字)
6. 建立關鍵字(右擊資源新建)
7. 至此,一個簡單的測試框架搭建好了
>>>
五、編寫用例
1. 在系統關鍵字上匯入AppiumLibrary庫
2. 按F5檢視AppiumLibrary各種方法
3. 編輯開啟應用關鍵字
*** Settings *** LibraryAppiumLibrary *** Keywords *** 開啟應用 Open Applicationhttp://localhost:4723/wd/hubplatformName=AndroidplatformVersion=5.1.0deviceName=192.168.186.101:5555app=${CURDIR}/球酷.apkappPackage=com.datamatch.coolball ...appActivity=com.jdd.datapredict.StartupActivityunicodeKeyboard=TrueresetKeyboard=True
4. 在測試套件上匯入Resource,並加入Suite Setup
5. 檢視控制元件元素,編輯測試用例
*** Settings *** Suite Setup開啟應用 Resource系統關鍵字.txt *** Test Cases *** 正常登入 Wait Until Element Is Visiblecom.datamatch.coolball:id/tabs30#等待選單欄顯示 Click Elementname=我的#點選-我的 Click Elementname=登入/註冊#點選-登入 Clear Textcom.datamatch.coolball:id/userName#清空使用者名稱輸入框 Input Textcom.datamatch.coolball:id/userName18851507044#輸入使用者名稱 Input Passwordcom.datamatch.coolball:id/passwordLeo5208.#輸入密碼 Click Elementname=立即登入#點選-立即登入 Element Should Be Visiblecom.datamatch.coolball:id/iv_userLevel#檢查等級標籤是否顯示 ${text}Get Textcom.datamatch.coolball:id/userName#獲取使用者暱稱 Should Be Equal As Strings${text}Leoo#檢查使用者暱稱是否正確 清空訊息 Wait Until Element Is Visiblecom.datamatch.coolball:id/iv_message30 Click Elementname=清空 Click Elementcom.datamatch.coolball:id/tv_msg_clear ${text}Get Textcom.datamatch.coolball:id/empty_text Should Be Equal As Strings${text}抱歉,暫無資料 Click Elementaccessibility_id=Navigate up 退出登入 Wait Until Element Is Visiblecom.datamatch.coolball:id/userName30 Click Elementcom.datamatch.coolball:id/userName Click Elementname=退出登入 Element Text Should Becom.datamatch.coolball:id/userName登入/註冊
6. 測試用例實現流程圖
六、執行測試
1. 開啟appium客戶端並啟動(或者命令列輸入appium啟動)
2. 啟動模擬器(或者連線真機)
3. 切回RIDE點選執行(或者快捷鍵F8)
七、分析結果
檢視報告或日誌(或者快捷鍵Ctrl+R/L)