本次我們移動自動化實現路線大致是這樣的: 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應用和混合應用,它允許測試人員使用同樣的接口、基於不同的平台寫自動化測試代碼,大大增加了測試套件間代碼的復用性。
詳情參考筆者另外兩篇博文: 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. 編輯打開應用關鍵字(可參考 RobotFramework - AppiumLibrary 之關鍵字Open Application使用)
*** Settings *** Library AppiumLibrary *** Keywords *** 打開應用 Open Application http://localhost:4723/wd/hub platformName=Android platformVersion=5.1.0 deviceName=192.168.186.101:5555 app=${CURDIR}/球酷.apk appPackage=com.datamatch.coolball ... appActivity=com.jdd.datapredict.StartupActivity unicodeKeyboard=True resetKeyboard=True
4. 在測試套件上導入Resource,並加入Suite Setup
5. 查看控件元素,編輯測試用例
*** Settings *** Suite Setup 打開應用 Resource 系統關鍵字.txt *** Test Cases *** 正常登錄 Wait Until Element Is Visible com.datamatch.coolball:id/tabs 30 #等待菜單欄顯示 Click Element name=我的 #點擊-我的 Click Element name=登錄/注冊 #點擊-登錄 Clear Text com.datamatch.coolball:id/userName #清空用戶名輸入框 Input Text com.datamatch.coolball:id/userName 18851507044 #輸入用戶名 Input Password com.datamatch.coolball:id/password Leo5208. #輸入密碼 Click Element name=立即登錄 #點擊-立即登錄 Element Should Be Visible com.datamatch.coolball:id/iv_userLevel #檢查等級標簽是否顯示 ${text} Get Text com.datamatch.coolball:id/userName #獲取用戶昵稱 Should Be Equal As Strings ${text} Leoo #檢查用戶昵稱是否正確 清空消息 Wait Until Element Is Visible com.datamatch.coolball:id/iv_message 30 Click Element name=清空 Click Element com.datamatch.coolball:id/tv_msg_clear ${text} Get Text com.datamatch.coolball:id/empty_text Should Be Equal As Strings ${text} 抱歉,暫無數據 Click Element accessibility_id=Navigate up 退出登錄 Wait Until Element Is Visible com.datamatch.coolball:id/userName 30 Click Element com.datamatch.coolball:id/userName Click Element name=退出登錄 Element Text Should Be com.datamatch.coolball:id/userName 登錄/注冊
6. 測試用例實現流程圖
六、執行測試
1. 打開appium客戶端並啟動(或者命令行輸入appium啟動)
2. 啟動模擬器(或者連接真機)
3. 切回RIDE點擊運行(或者快捷鍵F8)
七、分析結果
查看報告或日志(或者快捷鍵Ctrl+R/L)