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