Appium 自动化测试环境搭建
学习目录
Appium 介绍
- Appium是一个开源工具,用于自动化IOS手机、Android手机和Windows 桌面平台上的原生、移动 Web 和混合应用。
- Appium 是跨平台的它允许你用同样的 API 对多平台(iOS、Android、Windows)写测试。做到在 iOS、Android 和 Windows 测试套件之间复用代码。
Appium 的概念
- Appium的核心是一个公开REST API的Web服务器。它接受来自客户端的连接,监听命令并在移动设备上执行,答复 HTTP 响应来描述执行结果。
- Session(会话),自动化始终在一个会话的上下文中执行,这些客户端程序库以各自的方式发起与服务器的会话,但最终都会发给服务器一个
POST /session
请求,请求中包含一个被称作「Desired Capabilities」的 JSON 对象。此时,服务器将启动自动化会话并使用用于发送更多命令的会话 ID 进行响应。 - Desired Capabilities 是一些发送给 Appium 服务器的键值对集合(比如 map 或 hash),用于告诉服务器我们想要启动什么类型的自动化会话。还有各种功能可以在自动化过程中修改服务器的行为。
- Appium Server,Appium是用Node.js编写的服务器。它可以从源代码构建和安装,也可以直接从NPM安装
- Appium Clients,有一些客户端程序库(分别在 Java、Ruby、Python、PHP、JavaScript 和 C# 中实现),它们支持 Appium 对 WebDriver 协议的扩展。
- Appium Desktop是一款适用于Mac,Windows和Linux的应用程序,它以美观而灵活的UI提供了Appium自动化服务器的强大功能。它基本上是Appium服务器的图形界面。您可以设置选项,启动/停止服务器,查看日志等...您也不需要使用Node/ NPM来安装Appium,因为Node运行时与Appium Desktop捆绑在一起
注意:Appium Desktop与Appium不是一回事。Appium Desktop是Appium的图形前端,带有其他工具。而Appium 只是一个 HTTP 服务器。它坐下来等待来自客户端的连接,然后指示 Appium 启动哪种会话,以及启动会话后执行哪种自动化行为。这意味着您永远不会单独使用 Appium。总是必须将它与某种客户端库一起使用。
环境安装
1.安装JDK
Windows
- 下载并安装jdk1.8
- 新建 JAVA_HOME 环境变量,变量值是自己安装JDK 的路径,如:
C:\Program Files\Java\jdk1.8.0_151
- 新建 CLASSPATH 环境变量,值为:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
- 编辑PATH变量 新增路径:
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
- 验证环境是否配置成功 ,打开cmd命令行窗口, 在命令行窗口中输入
java -version
设置环境变量路径:进入我的电脑 -> 属性 -> 高级系统设置 -> 环境变量,编辑环境变量
2、安装 Android SDK
- 下载adb并安装
- 新建 ANDROID_HOME 环境变量,变量值是安装路径,如:
D:\android\sdk
- 编辑PATH变量 新增路径:
%ANDROID_HOME%\platform-tools;%ANDROID_ HOME%\tools
- 验证环境是否配置成功,打开cmd命令行窗口, 在命令行窗口中输入
adb version
具体查看 Android SDK 安装步骤
3.安装Appium Client
在pycharm中安装Appium Client ,在命令窗口执行:pip install Appium-Python-Client
4.安装Appium
1、下载Appium Desktop,默认安装
下载地址: https://github.com/appium/appium-desktop/releases
2、安装成功,启动Appium服务器
- 打开Appium Desktop,看到服务器启动窗口。基本选项是启动具有所有默认值的Appium服务器以及修改主机和端口的功能。start 按钮知道正在运行的是哪个版本的Appium服务器。
- 点击Start启动服务器,它将在指定的主机和端口上启动,并打开一个显示服务器日志输出的新窗口, Appium 启动后窗口显示一条欢迎消息,显示正在运行的 Appium 版本以及它正在侦听的端口(默认为4723)
测试
Appium连接模拟器环境
使用 Appium 运行测试应用(测试设备:Android )
1、adb检查是否连接设备
首先,必须确保adb连接了一个且只有一个Android模拟器或设备。检查是否连接设备运行:adb devices
2、启动Appium并配置选项
1、点击“Start Server”启动Appium
Appium界面右上角有三个选项分别为:Start inspector session 启动检查器会话、 Get Raw Logs 获得原生日志、 Stop Server 停止服务
2、点击Start inspector session启动检查器->选择 Automatic Server(自动化服务)->填写 Desired Capabilities
- deviceName : 自动化设备名称
- plaformVersion:自动化的平台版本
- platformName : 自动化的平台的名称
- appPackage : 测试APP的包名
- appActivity : activity程序主入口
(1)deviceName: 自动化设备名称 获取方式:通过 adb devices 获取 127.0.0.1:62001
(2)plaformVersion:要自动化的平台版本 查看系统版本
(3)platformName : 要自动化的平台的名称 可填写:Android和IOS
(4)appPackage : 测试APP的包名 ,获取方式 可输入:adb shell pm list packages -3 查看包名,测试包名:com.youdao.calculator
(5)appActivity : activity程序主入口如:com.youdao.calculator.activities.MainActivity
获取方式:输入命令 adb logcat | findstr START 同时点击要启动的app,即可获取到包名和activity
注意:Activity 的名字是指从你的包中所要启动的 Android acticity。他通常需要再前面添加 . (例如 使用 .MainActivity 代替 MainActivity)
3、点击 Start Session 启动会话 ,左侧显示APP界面测试成功。
显示测试APP的界面,可以定位元素
Appium连接真机测试
手机环境设置
1、在设置中找到“开发者”选项,开启“USB调试”功能
2、通过USB将手机和电脑连接
3、连接的同时,手机上会出现,是否接受USB调试,允许即可
注意:有的手机必须开启安全权限,否则报错不支持修改和删除权限(需在设置->更多设置->开发者选项同时开启:USB调试和USB调试(安全设置))
Appium环境设置
1、打开Appnium Desktop,设置主机地址和端口(目前是默认地址),点击“Start Server ”启动服务器
2、点击右上角放大镜菜单“Start Inspector Session”启动会话
3、设置启动参数,通过adb命令获取一些参数,如下所示:
4、完成后点击“Start Session”
参数获取方式:
adb drivers -l 获取设备名称
或 adb shell getprop ro.product.model
adb shell getprop ro.build.version.release 查看系统版本
获取正在运行中的包名及活动名称
(1)先启动APP
(2)在输入命令:adb shell dumpsys activity top | find "ACTIVITY",查询已开启的包名(以计算器为例)
在如下界面添加对应的参数
点击“start Sesion”后,手机会提示安装自动化相关的应用,点击安装,连接手机成功。
使用Python+Appnium启动APP
应用场景
使用appium 自动化启动模拟器,打开测试APP计算器应用程序
前置步骤
- 打开appium工具
- 打开手机模拟器,使用模拟器需先下载并安装
- 利用python编写测试脚本,运行并查看结果
确保已经安装Appium Client
"""
@Time : 2022/7/22 17:03
@Author :LH
@desc : 测试自动启动APP
"""
from appium import webdriver
# import time
desired_caps = { }
desired_caps['deviceName'] = '127.0.0.1:62001' # 测试设备名称
desired_caps['platformName'] = 'Android' # 测试系统
desired_caps['plaformVersion'] = '7.1.2' # 版本号
desired_caps['appPackage'] = 'com.youdao.calculator' # app 包名
desired_caps['appActivity'] = '.activities.MainActivity' # App最先启动的Activity
# 打开APP,返回webdriver对象
# 连接APP server (需要先启动appium server)
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
print("启动成功")
运行测试项目,可以看到已经指定了 Appium 端口并构建了 Desired Capabilities ,且自动打开测试APP
Appium Service 中显示运行的日志
注意:
1、Appium在启动App时,默认会对已安装的应用进行重新安装。如果你不希望每次启动App时都重新安装,可以通过设置noReset
参数为true
来避免重新安装。