appium - capability参数
关键字 | 描述 | 备注 |
---|---|---|
platformName | 使用设备的操作系统 | ANDROID 或 IOS |
platformVersion | 使用设备的操作系统版本 | 比如 8, 9 ,10等 |
deviceName | 使用的手机类型或模拟器类型 | 可通过命令行adb devices 获得,iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, 等。在 iOS 上,这个关键字的值必须是使用 instruments -s devices 得到的可使用的设备名称之一。在 Android 上,这个关键字目前不起作用 |
udid | 连接的物理设备的唯一设备标识 | 当需要连接多台设备时区分设备用,可以通过获取devicesname 的方法获得。 |
automationName | 自动化测试引擎 | Appium (默认) ,Selendroid, uiautomator2 等 |
browserName | 设备web 浏览器名称 | 如果是对应用进行自动化测试,这个关键字的值应为空。iOS 系统上可以用 ‘Safari’ ,Android 系统上可以用 ‘Chrome’, ‘Chromium’, 或 ‘Browser’。 |
newCommandTimeout | 设置appium长时间不操作的等待时间,单位:秒。 | appium 服务开启会产生session维持会话,但session 有有效期,一段时间没操作后会关闭会话。一些特殊情况这是时间可以设置到一天即86400,但也不能太长,设置太长会到时服务开启失败。 |
orientation | (Sim/Emu-only) 在一个设定的方向模式中开始测试 | LANDSCAPE (横向) 或 PORTRAIT (纵向) |
autoLaunch | Appium是否需要自动安装和启动应用。默认值true | true, false |
autoWebview | 直接转换到 WebView 上下文 | 默认值 false |
noReset | 不要在会话前重置应用状态。默认值false。 | true, false (建议使用false,app如果登录的话可以保持原来的登录状态) |
fullReset | (iOS) 删除整个模拟器目录。(Android) 通过卸载——而不是清空数据——来重置应用状态。在 Android 上,这也会在会话结束后自动清除被测应用。默认值 false | true, false |
resetKeyboard | 设置不重置鼠标 | true,false |
skipServerInstallation | 设置不重复安装server包 | ture,false 第一次使用时不建议设置 |
Android特有
关键字 | 描述 | 实例 |
---|---|---|
appActivity | 你要从你的应用包中启动的 Android Activity 名称 | 它通常需要在前面添加 . (如:使用.MainActivity 而不是 MainActivity).MainActivity, .Settings |
appPackage | 你想运行的Android应用的包名 | 比如com.example.android.myApp, com.android.settings |
app | app应用安装路径 | 这里与appPackage,appActivity二选一,与 browserName 冲突 |
appWaitActivity | 你想要等待启动的 Android Activity 名称 | SplashActivity |
deviceReadyTimeout | 设置等待一个模拟器或真机准备就绪的超时时间 | 5 |
androidCoverage | 用于执行测试的 instrumentation 类,作为命令 adb shell am instrument -e coverage true -w 的-w 参数。 | com.my.Pkg/com.my.Pkg.instrumentation.MyInstrumentation |
enablePerformanceLogging | (仅适用于 Chrome 和 webview) 开启 Chromedriver 的性能日志。 (默认 false) | true, false |
androidDeviceReadyTimeout | 等待设备在启动应用后准备就绪的超时时间。以秒为单位。 | 如 30 |
androidDeviceSocket | 开发工具的 socket 名称。只有在被测应用是一个使用 Chromium 内核的浏览器时需要。 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 可执行文件的绝对路径 (如果 Chromium 核心提供了对应的 webdriver,应该用它代替 Appium 自带的 webdriver) | /abs/path/to/webdriver |
autoWebviewTimeout | 以毫秒为单位,等待 Webview 上下文激活的时间。默认值 2000 | 如 4 |
intentAction | 用于启动 activity 的 intent action。 (默认值android.intent.action.MAIN) | 如 android.intent.action.MAIN,android.intent.action.VIEW |
intentCategory | 用于启动 activity 的 intent category。 (默认值android.intent.category.LAUNCHER) | 如 android.intent.category.LAUNCHER,android.intent.category.APP_CONTACTS |
intentFlags | 用于启动 activity 的标识 ( flags ) (默认值 0x10200000) | 如 0x10200000 |
optionalIntentArguments | 用于启动 activity 的额外 intent 参数。请查看 Intent 参数 | 如 --esn <EXTRA_KEY>, --ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> |
stopAppOnReset | 在使用 adb 启动应用前停止被测应用的进程 ( process ) 。如果被测应用是被另一个应用创建的,当这个参数被设定为 false 时,允许另一个应用的进程在使用 adb 启动被测应用时继续存活。默认值 true | true 或 false |
unicodeKeyboard | 使用 Unicode 输入法。默认值false | true 或 false |
resetKeyboard | 在设定了 unicodeKeyboard 关键字的 Unicode 测试结束后,重置输入法到原有状态。如果单独使用,将会被忽略。默认值 false | true 或 false |
noSign | 跳过检查和对应用进行 debug 签名的步骤。只能在使用 UiAutomator 时使用,使用 selendroid 是不行。默认值 false | true 或 false |
ignoreUnimportantViews | 调用 uiautomator 的函数setCompressedLayoutHierarchy()。由于 Accessibility 命令在忽略部分元素的情况下执行速度会加快,这个关键字能加快测试执行的速度。被忽略的元素将不能够被找到,因此这个关键字同时也被实现成可以随时改变的 *设置 ( settings ) * 默认值 false | true 或 false |