Robotframework+Appinum+Python環境搭建與測試

這兩天把Appinum研究了下,在自己電腦上配置了下測試環境,這裏記錄下搭建過程。

1.JDK環境配置

之前做Java的時候下載安裝過jdk,但由於下載安裝的不是Oracle官網的jdk,導致下載android-sdk後運行SDK Manager.exe時就一閃而過,後來又重新下載了jdk配置環境後打開SDK Manager.exe才正常。

2.安裝配置Node.js

這裏可以百度Node.js的安裝過程,這裏用的是Desktop版的Appium-Server-GUI-windows。

 3.下載安卓android-sdk

地址:https://www.androiddevtools.cn/,然後需要配置系統變量ANDROID_HOME,再環境變量中添加兩個%ANDROID_HOME%\tools和%ANDROID_HOME%\platform-tools。

 

 

右鍵使用管理員打開SDK Manager.exe,然後選中下圖Installed的包並下載,這個耗時畢竟久需等待。

 

4.下載Appium-Server、Appium Inspector,下載地址https://github.com/appium

 5、下載安卓模擬器

這裏我用的夜神模擬器,安裝後在命令行輸入命令:adb devices,可以看到模擬器列表,如果出現下面的錯誤:list of devices attached時可以嘗試adb kill-server和adb start-server命令重啓下adb服務。

 剛開始是平板模式,可以通過設置選擇手機模式

 6、安裝appinum-doctor

使用命令行安裝appinum-doctor:npm -g install appium-doctor。

 安裝後執行appium-doctor檢測配置是否成功。warn警告沒問題,error的需要注意。

 7.啓動Appium Server

因爲需要在測試用例中執行adb shell命令,所有需要勾選Relaxed Security。

8.啓動模擬器

執行adb devices查看模擬器。

9.啓動Appium Inspector

Remote Path中輸入/wd/hub,然後設置Capability,platformVersion是模擬器版本。這裏appPackage設置的通訊錄的,至於怎麼獲取appPackage和appActivity,可以在模擬器中打開應用,然後使用命令:adb shell dumpsys window windows查看。

{
  "platformName": "Android",
  "appium:platformVersion": "7.1.2",
  "appium:deviceName": "127.0.0.1:62001",
  "appium:appPackage": "com.android.contacts",
  "appium:appActivity": "com.android.contacts.activities.PeopleActivity",
  "appium:noReset": true,
  "appium:newCommandTimeout": "600",
  "appium:autoGrantPermissions": false
}

 

最後點擊Start Session啓動

10.刷新Appium Inspector

開始時一直找怎麼刷新Appium Inspector頁面,但就是沒改變左側頁面,沒辦法獲取元素xpath等信息,後來發現原來是和模擬器有關聯,在模擬器打開頁面後,可通過點擊Appium Inspector頂部的圈圈刷新按鈕刷新頁面,這樣就能獲取新頁面元素的xpath。

11.安裝python類庫

前面說過Robotframework環境搭建,這裏就不介紹,主要安裝下面兩個類庫

pip install Appium-Python-Client

pip install robotframework-appiumlibrary

12.編寫測試用例

首先引入AppiumLibrary類庫,這裏是模擬人點擊來新增通訊錄。

*** Settings ***
Library           AppiumLibrary

*** Test Cases ***
test123
    Open Application    http://127.0.0.1:4723/wd/hub    alias=myapp1    platformName=Android    platformVersion=7.1.2    deviceName=127.0.0.1:62001    appPackage=com.android.contacts    appActivity=com.android.contacts.activities.PeopleActivity
    sleep    3
    Execute Adb Shell    pm grant com.android.contacts android.permission.READ_CALENDAR
    Execute Adb Shell    pm grant com.android.contacts android.permission.ACCESS_FINE_LOCATION
    Execute Adb Shell    pm grant com.android.contacts android.permission.READ_SMS
    sleep    2
    Click element    id=com.android.contacts:id/floating_action_button
    sleep    2
    Click element    id=com.android.contacts:id/left_button
    sleep    2
    Input Text    xpath=//*[@resource-id='com.android.contacts:id/editors']//android.widget.EditText[@text='姓名']    cuiyw
    sleep    2
    Click element    xpath=//android.widget.Spinner[@content-desc="電話"]/android.widget.TextView
    sleep    1
    Click element    xpath=/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.ListView/android.widget.CheckedTextView[2]
    sleep    1
    Input Text    xpath=//*[@resource-id='com.android.contacts:id/editors']//android.widget.EditText[@text='電話']    18575533041
    sleep    2
    Input Text    xpath=//*[@resource-id='com.android.contacts:id/editors']//android.widget.EditText[@text='電子郵件']    [email protected]
    sleep    2
    Click element    xpath=//android.widget.TextView[@content-desc="保存"]
    sleep    2

這裏在新增通訊錄時會請求權限信息,位置、日曆、短信3個權限,這裏我使用Execute Adb Shell關鍵字先給應用授權,避免了彈出授權框,如果把上面的三個Execute Adb Shell關鍵字行註釋就會彈出下面的窗口。

執行完上面的測試用例則會在通訊錄裏有新增的信息。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章