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. 连接成功

入门代码示例

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)   # 加了time.sleep(5)可能会报错,大家注意调试

# 关闭 APP
driver.quit()

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

相关推荐
鸽芷咕36 分钟前
【Python报错已解决】ModuleNotFoundError: No module named ‘paddle‘
开发语言·python·机器学习·bug·paddle
子午1 小时前
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
人工智能·python·cnn
风等雨归期1 小时前
【python】【绘制小程序】动态爱心绘制
开发语言·python·小程序
Adolf_19931 小时前
Flask-JWT-Extended登录验证, 不用自定义
后端·python·flask
冯宝宝^1 小时前
基于mongodb+flask(Python)+vue的实验室器材管理系统
vue.js·python·flask
叫我:松哥1 小时前
基于Python flask的医院管理学院,医生能够增加/删除/修改/删除病人的数据信息,有可视化分析
javascript·后端·python·mysql·信息可视化·flask·bootstrap
Eiceblue2 小时前
Python 复制Excel 中的行、列、单元格
开发语言·python·excel
NLP工程化2 小时前
对 Python 中 GIL 的理解
python·gil
极客代码2 小时前
OpenCV Python 深度指南
开发语言·人工智能·python·opencv·计算机视觉
liO_Oil2 小时前
(2024.9.19)在Python的虚拟环境中安装GDAL
开发语言·python·gdal安装