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='电子邮件']    18575533041@qq.com
    sleep    2
    Click element    xpath=//android.widget.TextView[@content-desc="保存"]
    sleep    2

这里在新增通讯录时会请求权限信息,位置、日历、短信3个权限,这里我使用Execute Adb Shell关键字先给应用授权,避免了弹出授权框,如果把上面的三个Execute Adb Shell关键字行注释就会弹出下面的窗口。

执行完上面的测试用例则会在通讯录里有新增的信息。

 

posted @ 2023-08-30 20:41  社会主义接班人  阅读(260)  评论(0编辑  收藏  举报