APP自动化测试-入门示例

入门示例

通过上一篇博客APP自动化测试介绍-CSDN博客的学习,相信大家对APP自动化测试已经有了一定的了解,下面演示一下入门示例

1. 配置Appium

1.1. 点击Appium图标,打开服务器:

1.2. 点击Edit Configurations,进入配置页面,配置ANDROID_HOMEJAVA_HOME

1.2.1. 如何查看ANDROID_HOME
      • 打开Android Studio进入任一项目页面后,进入设置页
      • 点击SDK Manager - Android SDK:
      • 复制图中Android SDK Location 填入即可
1.2.2. 如何查看JAVA_HOME
      • Windows 系统:
        • 在控制面板中打开「系统」,然后点击「高级系统设置」。
        • 在「系统属性」对话框中,点击「环境变量」按钮。
        • 在「环境变量」对话框中,找到「系统变量」下的「JAVA_HOME」变量,并查看其值。
      • Mac 电脑,可以使用终端命令来查看Java Home的位置:
        • 打开终端应用程序,然后执行以下命令:/usr/libexec/java_home
        • 该命令会返回Java Home的路径,示例如下:

1.3. 配置好ANDROID_HOMEJAVA_HOME后:

1.3.1. 如果是本地调试,在Host中输入127.0.0.1;Port默认4723,点击Start Server v.1.x.xx,启动Appium

2. 配置手机/模拟器

2.1. 连接手机/模拟器

  1. 真机需要数据线与电脑进行连接
  2. 模拟器使用adb connect xxx 命令 连接设备

2.2. 打开手机/模拟器,打开开发者模式

  1. 设置-关于手机(关于平板电脑)-版本号-连续点击五次开启开发者模式
  2. 允许usb调试:开发者选项--usb调试开关打开

3. 配置Appium inspector

3.1. 打开Appium inspector,输入正确的Host、Port、Path

3.2. 填写初始化APP的必填参数

3.2.1. 方式一:左侧单个输入

3.2.2. 方式二:右侧直接json输入

3.2.3. 点击Start Session

3.2.4. 连接成功

注意:如果前期可以正常使用,突然报错:“Failed to create session. An unknown server-side error occurred while processing the command. Original error: The instrumentation process cannot be initialized. Make sure the application under test does not crash and investigate the logcat output.”

可以尝试重启手机即可解决问题。

入门代码示例

1. 示例一

import time

from appium import webdriver

# 定义desired_caps 字典,初始化app的配置信息
desired_caps = {
    "platformName": "android",  # 表示的是android 或者IOS系统
    "platformVersion": "10",  # 表示的是设备系统的版本号
    "deviceName": "DWV6R19A10002101",  # 表示的是设备的ID名称(如果只有一个设备可以用****来替代)
    "appPackage": "com.android.settings",  # 表示的是app的包名
    "appActivity": ".HWSettings"  # 表示的是app的界面名
}

# 创建 Appium 驱动对象
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)

# 等待 APP 初始化完成
driver.implicitly_wait(10)

# 执行具体的操作,例如点击、输入等
time.sleep(5)

# 关闭 APP
driver.quit()

在上面的示例中,首先定义了desired_caps字典,其中包括了平台名称、设备版本号、设备名称、APP 包名和主 Activity 等信息。然后,通过Remote方法创建了Appium驱动对象,并使用implicitly_wait方法等待 APP 初始化完成。

其后,可以根据具体的需求在...部分添加各种操作,例如点击按钮、输入文本、滑动屏幕等。

最后,使用driver.quit()方法关闭Appium会话。

2. 异常报错处理

注意如果是使用pip命令安装appium-python-client、selenium时默认安装了最新版本,最新版本是不兼容的,这是他们的版本兼容性列表:

报错信息:AttributeError: 'NoneType' object has no attribute 'to_capabilities'

2.1. 解决办法:

2.1.1. 方式一:回退版本
  • 打开pycharm中
    • 在Pycherm打开settings
    • 选择"project- interpreter"
    • 双击appium-python-client进入,选择Specify version,可以勾选不同版本
    • 点击Install package
    • selenium安装时,与上述方法一致
2.1.2. 方式二:更改代码(不兼容是因为新版本更改了部分属性内容,可自行百度)

代码如下:

3. 示例二

import time
from appium import webdriver
from appium.options.android import UiAutomator2Options

# 定义desired_caps 字典,初始化app的配置信息
desired_caps = {
    "platformName": "android",  # 表示的是android 或者IOS系统
    "platformVersion": "10",  # 表示的是设备系统的版本号
    "deviceName": "DWV6R19A10002101",  # 表示的是设备的ID名称(如果只有一个设备可以用****来替代)
    "appPackage": "com.android.settings",  # 表示的是app的包名
    "appActivity": ".HWSettings"  # 表示的是app的界面名
}

# 创建 Appium 驱动对象
options = UiAutomator2Options().load_capabilities(desired_caps)
driver = webdriver.Remote("http://localhost:4723/wd/hub", options=options)

# 等待 APP 初始化完成
driver.implicitly_wait(10)

# 执行具体的操作,例如点击、输入等
time.sleep(5)

# 关闭 APP
driver.quit()

上述代码通过引入UiAutomator2Options,完美解决问题,我目前使用是appium-python-client:3.2.1、selenium:4.18.1,以上代码可以正常运行。

  • 55
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值