1. Desired Capabilities

Desired Capabilities简单来说就是一组设置,这些设置可以让测试脚本控制Appium的运行行为。下面就逐个对Desired Capabilities中的设置进行阐述。首先看与Appium服务器相关的Capability,Android和iOS两个平台都是有效的设置。

基本参数:

automationName

自动化测试引擎

Appium或 Selendroid

platformName

手机操作系统

iOSAndroid, 或 FirefoxOS

platformVersion

手机操作系统版本

如: 7.14.4;ios的 9.0

deviceName

手机或模拟器设备名称

android的忽略,ios如iPhone Simulator

app

.ipa .apk文件路径

比如/abs/path/to/my.apkhttp://myapp.com/app.ipa

browserName

启动手机浏览器

iOS如:Safari,Android如:Chrome,Chromium,Browser

newCommandTimeout

设置命令超时时间,单位:秒。

比如 60

autoLaunch

Appium是否需要自动安装和启动应用。默认值true

truefalse

language

(Sim/Emu-only) 设定模拟器 ( simulator / emulator ) 的语言。

如: fr

locale

(Sim/Emu-only) 设定模拟器 ( simulator / emulator ) 的区域设置。

如: fr_CA

udid

ios真机的唯一设备标识

如: 1ae203187fc012g

orientation

设置横屏或竖屏

LANDSCAPE (横向) 或 PORTRAIT (纵向)

autoWebview

直接转换到 WebView 上下文。 默认值 false

truefalse

noReset

不要在会话前重置应用状态。默认值false

truefalse

fullReset

(iOS) 删除整个模拟器目录。(Android)通过卸载默认值 false

truefalse

仅对Android测试有效的设置:

关键字

描述

实例

appActivity

启动app包,一般点开头

如:.MainActivity.Settings

appPackage

Android应用的包名

比如com.example.android.myApp

appWaitActivity

等待启动的Activity名称

SplashActivity

deviceReadyTimeout

设置超时时间

5

androidCoverage

用于执行测试的 instrumentation类

com.my.Pkg/com.my.Pkg.instrumentation.MyInstrumentation

enablePerformanceLogging

(仅适用于 Chrome 和 webview) 开启 Chromedriver 的性能日志。(默认 false)

truefalse

androidDeviceReadyTimeout

等待设备在启动应用后超时时间,单位秒

如 30

androidDeviceSocket

开发工具的 socket 名称。Chromedriver 把它作为开发者工具来进行连接。

如 chrome_devtools_remote

avd

需要启动的 AVD (安卓模拟器设备) 名称。

如 api19

avdLaunchTimeout

以毫秒为单位,等待 AVD 启动并连接到 ADB的超时时间。(默认值 120000)

300000

avdReadyTimeout

以毫秒为单位,等待 AVD 完成启动动画的超时时间。(默认值 120000)

300000

avdArgs

启动 AVD 时需要加入的额外的参数。

如 -netfast

useKeystore

使用一个自定义的 keystore 来对 apk 进行重签名。默认值 false

true or false

keystorePath

自定义keystore路径。默认~/.android/debug.keystore

如 /path/to.keystore

keystorePassword

自定义 keystore 的密码。

如 foo

keyAlias

key 的别名

如 androiddebugkey

keyPassword

key 的密码

如 foo

chromedriverExecutable

webdriver可执行文件的绝对路径 应该用它代替Appium 自带的 webdriver)

/abs/path/to/webdriver

autoWebviewTimeout

毫秒为单位,Webview上下文激活的时间。默认2000

如 4

intentAction

用于启动activity的intent action。(默认值 android.intent.action.MAIN)

如 android.intent.action.MAINandroid.intent.action.VIEW

intentCategory

用于启动 activity 的 intent category。 (默认值 android.intent.category.LAUNCHER)

如 android.intent.category.LAUNCHERandroid.intent.category.APP_CONTACTS

intentFlags

用于启动activity的标识(flags) (默认值 0x10200000)

如 0x10200000

optionalIntentArguments

用于启动 activity 的额外 intent 参数。请查看 Intent 参数

如 --esn <EXTRA_KEY>--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>

dontStopAppOnReset

在使用 adb 启动应用时不要停止被测应用的进程。默认值: false

true 或 false

unicodeKeyboard

使用 Unicode 输入法。默认值 false

true 或 false

resetKeyboard

重置输入法到原有状态,默认值 false

true 或 false

noSign

跳过检查和对应用进行 debug 签名的步骤。默认值 false

true 或 false

ignoreUnimportantViews

调用 uiautomator 的函数这个关键字能加快测试执行的速度。默认值 false

true 或 false

disableAndroidWatchers

关闭 android 监测应用无响ANR和崩溃crash的监视器默认值: false

true 或者 false

chromeOptions

允许传入 chrome driver 使用的 chromeOptions 参数。请查阅 chromeOptions 了解更多信息。

chromeOptions: {args: [‘--disable-popup-blocking‘]}

仅对IOS测试有效的设置:

关键字

描述

实例

calendarFormat

(Sim-only) 为iOS的模拟器设置日历格式

如 gregorian (公历)

bundleId

被测应用的bundle ID,真机上执行测试时,你可以不提供 app 关键字,但你必须提供udid

如 io.appium.TestApp

udid

连接真机的唯一设备编号 ( Unique device identifier )

如 1ae203187fc012g

launchTimeout

以毫秒为单位,在Appium运行失败之前设置一个等待 instruments的时间

比如: 20000

locationServicesEnabled

(Sim-only) 强制打开或关闭定位服务。默认值是保持当前模拟器的设定

true 或 false

locationServicesAuthorized

使用这个关键字时,你同时需要使用 bundleId 关键字来发送你的应用的 bundle ID。

true 或者 false

autoAcceptAlerts

当 iOS 的个人信息访问警告 (如 位置、联系人、图片) 出现时,自动选择接受( Accept )。默认值 false

true 或者 false

autoDismissAlerts

当 iOS 的个人信息访问警告 (如 位置、联系人、图片) 出现时,自动选择不接受( Dismiss )。默认值 false

true 或者 false

nativeInstrumentsLib

使用原生 intruments 库 (即关闭 instruments-without-delay )

true 或者 false

nativeWebTap

(Sim-only) 在Safari中允许"真实的",默认值: false。注意:取决于 viewport 大小/比例, 点击操作不一定能精确地点中对应的元素。

true 或者 false

safariInitialUrl

(Sim-only) (>= 8.1) Safari 的初始地址。默认值是一个本地的欢迎页面

例如: https://www.github.com

safariAllowPopups

(Sim-only) 允许 javascript 在 Safari 中创建新窗口。默认保持模拟器当前设置。

true 或者 false

safariIgnoreFraudWarning

(Sim-only) 阻止 Safari 显示此网站可能存在风险的警告。默认保持浏览器当前设置。

true 或者 false

safariOpenLinksInBackground

(Sim-only) Safari 是否允许链接在新窗口打开。默认保持浏览器当前设置。

true 或者 false

keepKeyChains

(Sim-only) 当 Appium 会话开始/结束时是否保留存放密码存放记录 (keychains) (库(Library)/钥匙串(Keychains))

true 或者 false

localizableStringsDir

从哪里查找本地化字符串。默认值 en.lproj

en.lproj

processArguments

通过 instruments 传递到 AUT 的参数

如 -myflag

interKeyDelay

以毫秒为单位,按下每一个按键之间的延迟时间。

如 100

showIOSLog

是否在 Appium 的日志中显示设备的日志。默认值 false

true 或者 false

sendKeyStrategy

输入文字到文字框的策略。模拟器默认值:oneByOne (一个接着一个) 。真实设备默认值:grouped (分组输入)

oneByOnegrouped 或 setValue

screenshotWaitTimeout

以秒为单位,生成屏幕截图的最长等待时间。默认值: 10。

如 5

waitForAppScript

用于判断 "应用是否被启动” 的 iOS 自动化脚本代码。默认情况下系统等待直到页面内容非空。结果必须是布尔类型。

例如 true;target.elements().length > 0;$.delay(5000); true;

我们开发主要使用的Capability包括platformName、platformVersion、appPackage、appActivity、unicodeKeyboard、 resetKeyboard和newCommandTimeout。这些Capability基本上已经满足了目前的测试需求。

Appium(五):Desired Capabilities的更多相关文章

  1. Appium教程——Desired Capabilities 详解(转自TesterHome)

    Desired Capabilities在启动session的时候是必须提供的. Desired Capabilities本质上是key value的对象,它告诉appium server这样一些事情 ...

  2. 移动端自动化测试 -- appium 之Desired Capabilities与 定位控件

    一.Desired Capabilities Desired Capabilities 在启动 session 的时候是必须提供的. Desired Capabilities 本质上是以 key va ...

  3. appium简明教程(7)——Desired Capabilities详解

    Desired Capabilities在启动session的时候是必须提供的. Desired Capabilities本质上是key value的对象,它告诉appium server这样一些事情 ...

  4. Appium基础四:Desired Capabilities详讲

    Desired Capabilities在启动session的时候是必须提供的,先看如下代码: Desired Capabilities本质上是key value的对象,他告诉appium serve ...

  5. Appium Desired Capabilities信息配置

    编写APPium脚本,必须要配置Desired Capabilities信息 Desired Capabilities 在启动 session 的时候是必须提供的. Desired Capabilit ...

  6. Appium基础:Desired Capabilities详讲

    Desired Capabilities在启动session的时候是必须提供的,先看如下代码: Desired Capabilities本质上是key value的对象,他告诉appium serve ...

  7. Appium移动自动化测试-----(七)Desired Capabilities

    Desired Capabilities Desired Capabilities 在启动 session 的时候是必须提供的. Desired Capabilities 本质上是以 key valu ...

  8. Java&Python&Appium 驱动APP及Desired Capabilities配置

    一.摘要 本篇博文,将阐述如何将环境&代码&APP联系起来工作 二.Java代码 我们先看一段真实的java代码,我将他放在了TestNG框架的@BeforeTest里,执行这段即可启 ...

  9. Appium Desired Capabilities

    Appium Desired Capabilities Desired Capabilities 是由 keys 和 values 组成的 JSON 对象. 举个简单例子: { "platf ...

随机推荐

  1. ibatis入门实例(完整)

    一:首先展示一下我的web文件结构,首先导入Ibatis所需jar和数据库驱动,从第二步开始跟着笔者一步步来 二:数据库建测试表 CREATE TABLE STUDENT ( ID NUMBER(5) ...

  2. AutoCAD二次开发(2020版)--4,使用ARX向导创建编程模板(框架)--

    手动创建ObjectARX应用程序非常麻烦,在此步骤中,将介绍ObjectARX向导. 在这里,我们将使用ObjectARX向导创建我们的ObjectARX应用程序. 本节的程序的需求是,接收CAD用 ...

  3. Java分割面板和选项卡面板的应用

    1.分割面板 JSplitPane类的常用构造方法 构造方法 说明 JSplitPane() 创建一个默认的分割面板.默认情况下为在水平方向上分割,重绘方式为只在调整分隔条位置完成时重绘 JSplit ...

  4. luogu P2860 [USACO06JAN]冗余路径Redundant Paths |Tarjan

    题目描述 In order to get from one of the F (1 <= F <= 5,000) grazing fields (which are numbered 1. ...

  5. luogu P1938 [USACO09NOV]找工就业Job Hunt

    题目描述 奶牛们正在找工作.农场主约翰知道后,鼓励奶牛们四处碰碰运气.而且他还加了一条要求:一头牛在一个城市最多只能赚D(1≤D≤1000)美元,然后它必须到另一座城市工作.当然,它可以在别处工作一阵 ...

  6. iOS app反编译

    对于APP store 上的应用都是加密的了,反编译起来有难度. 对于自己用xcode 编译的ipa 或者是其他渠道下载的ipa包都可以使用反编译工具进行反编译. https://cnbin.gith ...

  7. ThreadLocal的进化——InheritableThreadLocal

    之前有介绍过 ThreadLocal,JDK 后来针对此做了一个升级版本 InheritableThreadLocal,今天就来好好介绍下. 为什么要升级 首先我们来想想,为什么要升级?这就要说起 T ...

  8. 主题: 002.04 Tkinter 星空大战

    为了更加熟练 Tkinter 的应用,决定只用 Tkinter 来写一个游戏,而不是用 Pygame, 在过程中,出了很多很大的问题,最后留了一点已知的问题,不想在花时间去找出来,不过整个程序算跑的没 ...

  9. Balls in the Boxes

    Description Mr. Mindless has many balls and many boxes,he wants to put all the balls into some of th ...

  10. Python脚本之三种运行方式,你会几个?

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:Jeremy_Lee123  一.交互模式下执行 Python 这种模式 ...