1. 程式人生 > >RobotFramework + Appium 移動自動化實現

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應用和混合應用,它允許測試人員使用同樣的介面、基於不同的平臺寫自動化測試程式碼,大大增加了測試套件間程式碼的複用性。

二、裝置選擇

  1. 直接連線真機: 開啟開發者選項 -> USB除錯。

         >>>  

  2. 或者使用模擬器: 因為Android AVD模擬器對PC硬體有要求,所以我推薦一個比較好用的模擬器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 ***
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)