[AP_06] Appium之Capability配置、控制启动指定APP

目录结构

一、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

[AP_06] Appium之Capability配置、控制启动指定APP_第1张图片
常用的配置选项:

【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:使用远程设备来创建会话

[AP_06] Appium之Capability配置、控制启动指定APP_第2张图片
[AP_06] Appium之Capability配置、控制启动指定APP_第3张图片

2. 获取必要信息

(1)Android设备版本:Android 5.1.1

[AP_06] Appium之Capability配置、控制启动指定APP_第4张图片

(2)Android设备:127.0.0.1:62001

[AP_06] Appium之Capability配置、控制启动指定APP_第5张图片

(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
}
[AP_06] Appium之Capability配置、控制启动指定APP_第6张图片
[AP_06] Appium之Capability配置、控制启动指定APP_第7张图片
[AP_06] Appium之Capability配置、控制启动指定APP_第8张图片

点击Appium Capabilities配置的图形界面右下方的【Start Session】,即可控制Android设备启动指定的APP,并记录到Appium中:

[AP_06] Appium之Capability配置、控制启动指定APP_第9张图片
[AP_06] Appium之Capability配置、控制启动指定APP_第10张图片

元素定位操作:
Select Elements:进行元素定位、触发内容发送(Send Keys)和按钮点击(Tap)等操作
Start Recording:进行不同语言支持的脚本录制

[AP_06] Appium之Capability配置、控制启动指定APP_第11张图片

你可能感兴趣的:([AP_06] Appium之Capability配置、控制启动指定APP)