目录结构
一、Capability配置概述
1. Capability作用
2. Session作用
3. Capability配置说明
二、配置Capability,启动APP
1. 进入Capabilities配置界面
2. 获取必要信息
3. 配置Capabilities参数,启动指定APP
一、Capability配置概述
引入Capability:
在利用appium定位手机设备中的APP元素进行自动化操作之前,需要告知appium一些基本的信息,如:设备名称、系统版本、被测的APP应用、元素定位信息。而通过Capability的配置,即可实现以上基本信息的传达到appium
1. Capability作用
Desired Capabilities是一组设置的键值对的集合,其功能为:对Appium会话进行配置,传达给服务器所需自动化的平台和应用程序,通知Appium Server建立所需要的Session信息
配置样式:{"platformName":"Android"}
2. Session作用
Appium的Client和Server之间进行通信,必须在一个Session的上下文中进行。Client发起通信时,首先会发送一个"Desired Capabilities"的JSON对象给Server,Server收到该数据后会创建一个session,并将sessionID返回到客户端。其后,客户端可使用该sessionID发送后续的命令
3. Capability配置说明
Capability的配置主要分为三个部分:公共部分、Android部分、IOS部分
Capability配置文档:
http://appium.io/docs/cn/writing-running-appium/caps/
https://github.com/appium/appium/blob/master/docs/cn/writing-running-appium/caps.md
常用的配置选项:
【A】公共部分:主要关注platformName、platformVersion、deviceName、app、udid、noReset
键 | 描述 | 值 |
---|---|---|
platformName |
使用的手机操作系统 | iOS, Android, 或者 FirefoxOS |
platformVersion |
手机操作系统的版本 | 例如 7.1, 4.4 |
deviceName |
使用的手机或模拟器类型 | iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, 等等.... 在 iOS 上,使用 Instruments 的 instruments -s devices 命令可返回一个有效的设备的列表。在 Andorid 上虽然这个参数目前已被忽略,但仍然需要添加上该参数 |
app |
本地绝对路径或远程 http URL 所指向的一个安装包(.ipa,.apk,或 .zip 文件)。Appium 将其安装到合适的设备上。请注意,如果您指定了 appPackage 和 appActivity 参数(见下文),Android 则不需要此参数了。该参数也与 browserName 不兼容。 | /abs/path/to/my.apk 或 http://myapp.com/app.ipa |
udid |
连接真机的唯一设备号 | 例如 1ae203187fc012g |
noReset |
在当前 session 下不会重置应用的状态。默认值为 false | true, false |
【B】Android独有:主要关注appActivity、appWaitActivity
键 | 描述 | 值 |
---|---|---|
appActivity |
Activity 的名字是指从你的包中所要启动的 Android acticity。他通常需要再前面添加. (例如 使用 .MainActivity 代替 MainActivity) | MainActivity, .Settings |
appPackage |
运行的 Android 应用的包名 | com.example.android.myApp, com.android.settings |
appWaitActivity |
用于等待启动的 Android Activity 名称 | SplashActivity |
【C】IOS独有:主要关注bundleId、udid
键 | 描述 | 值 |
---|---|---|
bundleId |
被测应用的 bundle ID 。用于在真实设备中启动测试,也用于使用其他需要 bundle ID 的关键字启动测试。在使用 bundle ID 在真实设备上执行测试时,你可以不提供 app 关键字,但你必须提供 udid 。 | 例如 io.appium.TestApp |
udid |
连接的真实设备的唯一设备编号 (Unique device identifier) | 例如 1ae203187fc012g |
二、配置Capability,启动APP
Capability启动APP演示
1. 进入Capabilities配置界面
操作路径:
Start Server --> Start Inspector Session --> Automatic Server:Desired Capabilities
Start Inspector Session打开会话窗口,模块如下:
Automatic Server:本地Appium Server服务
Custom Server:针对运行在网络中的另一台设备上的Appium服务器启动Inspector会话
Sauce Labs:利用Sauce Labs帐户在云测平台启动Appium会话
TestObject:利用TestObject调用真机进行测试
headspin:使用远程设备来创建会话
2. 获取必要信息
(1)Android设备版本:Android 5.1.1
(2)Android设备:127.0.0.1:62001
(3)包名、Activity
获取appActivity:aapt dump badging xxxx.apk | find "launchable-activity"
获取appPackage:aapt dump badging xxxx.apk | find "package: name="
获取的包名为:com.tal.kaoyan
获取的Activity为:com.tal.kaoyan.ui.activity.SplashActivity
(4)noRest设置
在当前 session 下不会重置应用的状态,默认值为 false
①若取值为true,则在Session有效期内每次登录可维持登录状态而不会被动退出
②若取值为false,则每次登录都需要输入用户名和密码登录
3. 配置Capabilities参数,启动指定APP
Desired Capabilities参数配置,对应JSON格式:
{
"platformName":"Android",
"platformVersion":"5.1.1",
"deviceName":"127.0.0.1:62001",
"appPackage":"com.tal.kaoyan",
"appActivity":"com.tal.kaoyan.ui.activity.SplashActivity",
"noReset":true
}
点击Appium Capabilities配置的图形界面右下方的【Start Session】,即可控制Android设备启动指定的APP,并记录到Appium中:
元素定位操作:
Select Elements:进行元素定位、触发内容发送(Send Keys)和按钮点击(Tap)等操作
Start Recording:进行不同语言支持的脚本录制
网友评论