appium capabilities

前言:因为一直想过一遍capabilities,但是一直静不下来,干脆就把capabilities抄一遍,基本渣翻。。纯粹为了自己看下去找个理由

appium capabilities

通用的capabilities

Capability 描述 取值
automationName 选择使用的自动化引擎 Appium(默认)
UiAutomator2
Espresso(android)
XCUITest(ios)
或者是你自己应用的引擎
platformName 手机操作系统平台 iOS
Android
FirefoxOS
platformVersion 操作系统版本号
deviceName 设备名 通过adb devices 获得
app 给定app的绝对本地地址或是url地址
appium会尝试安装给定app到合适的设备
* 注意:如果设备是android此项可以忽略,
如果你已经指定appPackage和appActivity ,
UiAutomator2 和 XCUITest这两种自动化引擎,
可以在没有app或是appPackage的情况下
创建一个session,与browserName不兼容
otherApps 给定APP或是APP列表,会在运行测试前安装
到设备中
* 注意:Espresso平台和ios真机,此项不起作用
"/path/to/app.apk", https://www.example.com/url/to/app.apk, ["http://appium.github.io/appium/assets/TestApp9.4.app.zip", "/path/to/app-b.app"]
browserName 要自动化的移动web浏览器的名称
如果要自动化一个app应用,此项应为空
'Safari' for iOS and 'Chrome', 'Chromium', or 'Browser' for Android
newCommandTimeout 在假定客户端退出并结束session之前,
appium会等待客户端发出的命令多长时间(单位s)
e.g. 60
language 设置iOS (XCUITest driver only) 和 Android的语言 e.g. fr
locale 地区设置,适用于iOS (XCUITest driver only) 和 Android.
对于ios的设置格式为fr_CA,
对于Android的设置格式为CA(CA为国家名称的缩写)
e.g. fr_CA, CA
udid 唯一的设备标识符(所连接的真机) e.g. 1ae203187fc012g
orientation (Sim/Emu-only)
开始的时候使设备横屏或竖屏
LANDSCAPE(横屏)or PORTRAIT
autoWebview 直接切入Webview
默认是false
true, false
noReset 在开始session之前,不重置app的状态
android:不停止app,不清空app数据,不卸载app
ios:结束测试后,不销毁和关闭sim,
在正在运行的sim或插入设备的任何位置开始运行测试
true, false
fullReset 完全重置app状态
android:停止运行app、清空app数据、
在session之前以及测试结束之后卸载app
ios:在真机测试开始前和结束后,卸载app,
在模拟测试开始前和结束后,销毁模拟器
(如果之前resetOnSessionStartOnly: true给定了,这些设置会生效)
true, false
eventTimings 开启或禁止报告appium内部事件的耗时
(例如,每条命令的开始和结束时间)
默认false
使用true使其起作用,
然后根据查询当前会话的时间,将时间报告为事件属性。
enablePerformanceLogging (只在Web 和webview 中有效)
开启Chromedriver(android)或者Safari(ios)的性能日志
true, false
printPageSourceOnFindFailure 当发现一个运行报错的时候,打印当前的page source.默认是false true, false
clearSystemFiles 在session结束的时候,删除运行生成的文件。默认是false true, false

Android 特有的

Capability 描述 取值
01.appActivity 要从包中启动的Android活动的活动名称
这通常需要在前面加上一个"."
默认情况下,此项可以从package的manifest中取得
02.appPackage 你打算运行的包名,
默认情况下,此项可以从package的manifest中取得
03.appWaitActivity 等待出现的Activity,多个Activity用逗号隔开
默认情况下,此项与appActivity一致
您必须将其设置为第一个关注的应用程序活动名称
免得此项设置的Activity与你设置的appActivity
和appPackage不一致
你也可以使用通配符(*)
SplashActivity, SplashActivity,OtherActivity, *, *.SplashActivity
04.appWaitPackage
05.appWaitDuration 设置等待appWaitActivity运行的超时时间,单位为毫秒,
默认为20000ms
30000
06.deviceReadyTimeout 等待设备准备好的超时时间,单位为秒
07.allowTestPackages 允许安装一个测试包到设备上,
这个测试包的manifest里标明android:testOnly="true",
默认是false
true or false
08.androidCoverage 给定一个完全合格的instrumentation类,
此值将会是adb shell am instrument -e coverage true 命令-w的参数值
此adb命令是用于启动一个Instrumentation测试
参数:
-e name value:提供了以键值对形式存在的过滤器和参数
-w <test_package_name>/<runner_class>:
<test_package_name>和<runner_class>在测试工程的
AndroidManifest.xml中查找,作用是保持adb shell打开直至测试完成。
com.my.Pkg/com.my.Pkg.instrumentation.MyInstrumentation
09.androidCoverageEndIntent 由您自己实现的广播操作,用于将覆盖率转储到文件系统中
此项将会给adb shell am broadcast命令的-a参数值
com.example.pkg.END_EMMA
10.androidDeviceReadyTimeout 启动后等待设备准备好的超时时间(单位s) e.g., 30
11.androidInstallTimeout 等待把app安装到设备的超时时间(单位ms)
默认是90000ms
e.g., 90000
12.androidInstallPath 把将被安装的apk推送到设备上的目录路径
默认是/data/local/tmp
e.g. /sdcard/Downloads/
13.adbPort ADB server的端口
默认是5037
5037
14.systemPort appium-uiautomator2-server 或appium-espresso-driver的端口号
appium-uiautomator2-server的端口一般是8200到8299之间,
默认是8200
appium-espresso-driver的端口号一般是8300到8399之间,
默认是8300
如果你并行执行多个test,必须手动修改端口号,避免冲突
e.g., 8201
15.remoteAdbHost 可选的,adb server远程主机 e.g.: 192.168.0.101
16.androidDeviceSocket
avd 要启动的AVD模拟器名称 e.g., api19
17.avdLaunchTimeout 等待模拟器运行并连接adb的超时时间
单位是ms,默认是60000ms
300000
18.avdReadyTimeout 等待模拟器完成开机动画的超时时间
单位是ms,默认是120000ms
300000
19.avdArgs 当运行一个模拟器时需要使用的额外参数 e.g., -netfast
20.useKeystore 使用自定义密钥库对apk进行签名
默认false
21.keystorePath 自定义密钥库的目录路径,
默认是~/.android/debug.keystore
e.g., /path/to.keystore
22.keystorePassword 自定义密钥库的密码 e.g., foo
23.keyAlias 密钥别名
24.keyPassword 密钥的密码
25.chromedriverExecutable 可执行的webdriver的绝对路径
(如果Chromium embedder提供了自己的webdriver,
那么应该使用它,而不是使用与Appium绑定的
原始chromedriver)
/abs/path/to/webdriver
26.chromedriverArgs 给一个列表,当appium运行时,
这个列表里的参数会传递给chromedriver的二进制文件
默认情况下,不添加超出Appium内部使用范围的CLI参数
(如 --url-base, --port, --adb-port, and --log-path.)
e.g., ["--disable-gpu", "--disable-web-security"]
27.chromedriverExecutableDir 寻找Chromedriver可执行文件的目录的绝对路径,
用于自动发现兼容的Chromedrivers。
如果chromedriverUseSystemExecutable为真,则忽略它
/abs/path/to/chromedriver/directory
28.chromedriverChromeMappingFile 将Chromedriver版本映射到其支持的最低Chrome版本的文件的绝对路径。
如果chromedriverUseSystemExecutable为true,则忽略
/abs/path/to/mapping.json
29.chromedriverUseSystemExecutable 如果为true,则绕过自动Chromedriver配置,
并使用Appium随附的版本。 如果设置了chromedriverExecutable则忽略
默认false
30.autoWebviewTimeout 等待Webview上下文变为活动状态的时间,单位ms
默认2000ms
e.g. 4
31.chromedriverPort
32.chromedriverPorts 为了支持ensureWebviewsHavePages特性,
需要打开一个TCP端口,
以便在测试设备上与webview进行通信,
如果多个会话同时运行(以避免端口冲突),
或者如果默认端口不适合您的系统,
该功能允许覆盖缺省端口9222
e.g. 9543
33.ensureWebviewsHavePages 设置Appium是否要使用页面检测来增强它的webview检测,
以确保在context列表中显示的任何webview
上下文都有活动的页面。
避免在Chromedriver找不到任何页面的情况下选择了
context出现的报错
默认是false
34.webviewDevtoolsPort
35.dontStopAppOnReset 在使用adb启动应用程序之前,
不会停止被测试应用程序的进程。如果被测试的应用程序是由另一个the anchor app创建的,
设置为false,
则允许在使用adb启动测试应用程序期间the anchor app的进程仍然是活动的。
换句话说,当dontStopAppOnReset设置为true时,
我们将不会在adb shell am start调用中包含-S标志。
将此功能省略或设置为false时,我们包含-S标志。
(adb shell am start -S: force stop the target app before starting the activity)
默认是false
36.unicodeKeyboard 是否启用Unicode输入,默认false
37.resetKeyboard 在运行有unicodeKeyboard参数设置的Unicode测试之后,
将键盘重置为其原始状态。
如果单独设置此项,则会被忽略。
默认是false
38.noSign 跳过检查以及使用debug keys重签名app,
此项只会在UiAutomator引擎下起作用
默认是false
39.ignoreUnimportantViews
40.disableAndroidWatchers
41.chromeOptions 允许给ChromeDriver传递chromeOptions。 chromeOptions:
42.recreateChromeDriverSessions 当切换到非ChromeDriver webview的时候,
kill掉ChromeDriver session
默认是false
true or false
43.nativeWebScreenshot 在web上下文中,使用native (adb)方法获取屏幕截图,
而不是代理到ChromeDriver
默认是false
true or false
44.androidScreenshotPath 屏幕截图存放的路径地址
默认是/data/local/tmp
e.g. /sdcard/screenshots/
45.autoGrantPermissions 让Appium自动确定您的app要求的那些权限,
并在安装app时允许这些权限。
默认是false。如果noReset设置为True,此项不起作用。
46.networkSpeed 设置网络速度模拟,指定最大网络上传和下载速度
默认full
['full','gsm', 'edge', 'hscsd', 'gprs', 'umts', 'hsdpa', 'lte', 'evdo']
1.gsm - GSM/CSD(上传:14.4,下载:14.4)。
2.hscsd - HSCSD(上传:14.4,下载:57.6)。
3.gprs - GPRS(上传:28.8,下载:57.6)。
4.edge - EDGE/EGPRS(上传:473.6,下载:473.6)。
5.umts - UMTS/3G(上传:384.0,下载:384.0)。
6.hsdpa - HSDPA(上传:5760.0,下载:13,980.0)。
7.lte - LTE(上传:58,000,下载:173,000)。
8.evdo - EVDO(上传:75,000,下载:280,000)。
9.full - 无限制,默认值(上传:0.0,下载:0.0)。
10.num - 指定上传和下载速度。11.up:down - 分别指定上传速度和下载速度。
47.gpsEnabled 在开始session之前,为模拟器切换gps位置提供程序
默认情况下,模拟器将根据配置方式启用或不启用此选项。
true or false
48.isHeadless 如果不需要看设备显示界面,则把此项设置为true,
就可以以无界面的形式运行模拟器
默认是false
无界面设置同样适用于iOS,确认XCUITest-specific项
true
49.adbExecTimeout 等待ADB命令执行的超时时间,单位是ms
默认是2000
50.localeScript 设置本地脚本文件
https://developer.android.com/reference/java/util/Locale
e.g., "Cyrl" (Cyrillic)
51.skipDeviceInitialization 跳过设备初始化过程,包括设置app的安装与运行、权限的设置,此项可以用于已经开启过自动化并已经为下次自动化做好准备的设备,可以提高启动的性能。默认是False true or false
52.chromedriverDisableBuildCheck 为Chrome webview 的测试设置chromedriver 的标识--disable-build-check true or false
53.skipUnlock 创建session 的时候跳过解锁部分默认是False true or false
54.unlockType 使用特定的锁定模式解锁目标设备,而不仅仅是使用助手应用程序唤醒设备,与“unlockKey”值一同作用。
默认没有定义。
指纹只适用于Android 6.0+和模拟器。
https://github.com/appium/appium-android-driver/blob/master/docs/UNLOCK.md
['pin', 'password', 'pattern', 'fingerprint']
55.unlockKey 解锁使用的密钥模式 e.g., '1111'
56.autoLaunch 自动初始化被测应用。设置为false时appium不会自动安装和运行被测应用。默认是Ture true or false
57.skipLogcatCapture 跳过捕获logcat,可能会改善网络等性能。与日志相关的命令将不起作用。
默认是False
true or false
58.uninstallOtherPackages 软件包,软件包列表或,用于在安装APK进行测试之前卸载软件包。
”代表卸载除了io.appium.settings 或io.appium.uiautomator2.server等appium测试所必需的其他所有第三方软件。因为Appium已经包含管理它们的逻辑。
e.g. "io.appium.example", ["io.appium.example1", "io.appium.example2"], '*'
59.disableWindowAnimation 如果值为true,则将设备动画比例设置为零。在会话完成后,Appium将动画缩放恢复到它的原始值。
false
60.remoteAppsCacheLimit 设置远程缓存将被推送到被测设备的本地存储的apks的最大数量。(默认10个)
使用相同的apk时,通过远程缓存apk可以避免每次重新安装时都需要将apk推送到远程文件系统,从而加快了顺序测试用例的执行速度。
设置为0则不缓存
e.g. 0, 5, 20
61.buildToolsVersion 将Android build-tools版本指定为与默认版本(即使用最新版本)不同的版本。
如果您的环境使用alpha / beta构建工具,则使用非默认版本会很有帮助
e.g. '28.0.3'
62.androidNaturalOrientation 允许在横向设备上正确处理方向。
63.enforceAppInstall

||||

posted @ 2020-03-24 18:17  丛影HHZ  阅读(502)  评论(0编辑  收藏  举报