Appium配置desired_capability详解

2024-06-21 15:08

本文主要是介绍Appium配置desired_capability详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转自:https://github.com/appium/appium/blob/master/docs/cn/writing-running-appium/caps.cn.md

Appium 服务关键字

关键字

描述

实例

automationName

你想使用的自动化测试引擎

Appium (默认)  Selendroid

platformName

你要测试的手机操作系统

iOSAndroid,  FirefoxOS

platformVersion

手机操作系统版本

例如: 7.14.4

deviceName

使用的手机类型或模拟器类型

iPhone SimulatoriPad SimulatoriPhone Retina 4-inchAndroid EmulatorGalaxy S4, 等。在 iOS 上,这个关键字的值必须是使用 instruments -s devices 得到的可使用的设备名称之一。在 Android 上,这个关键字目前不起作用。

app

.ipa or .apk文件所在的本地绝对路径或者远程路径,也可以是一个包括两者之一的.zip Appium会先尝试安装路径对应的应用在适当的真机或模拟器上。针对Android系统,如果你指定app-packageapp-activity(具体见下面)的话,那么就可以不指定app 会与 browserName 冲突

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

browserName

需要进行自动化测试的手机 web 浏览器名称。如果是对应用进行自动化测试,这个关键字的值应为空。

iOS 系统上可以用 'Safari' Android 系统上可以用 'Chrome', 'Chromium', 'Browser'

newCommandTimeout

设置命令超时时间,单位:秒。达到超时时间仍未接收到新的命令时 Appium 会假设客户端退出然后自动结束会话。

比如 60

autoLaunch

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

truefalse

language

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

如: fr

locale

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

如: fr_CA

udid

连接的物理设备的唯一设备标识

如: 1ae203187fc012g

orientation

(Sim/Emu-only) 在一个设定的方向模式中开始测试

LANDSCAPE (横向)  PORTRAIT (纵向)

autoWebview

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

truefalse

noReset

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

truefalse

fullReset

(iOS) 删除整个模拟器目录。(Android) 通过卸载——而不是清空数据——来重置应用状态。在 Android 上,这也会在会话结束后自动清除被测应用。默认值 false

truefalse

Android特有

关键字

描述

实例

appActivity

你要从你的应用包中启动的 Android Activity 名称。它通常需要在前面添加 . (如:使用.MainActivity 而不是 MainActivity)

MainActivity.Settings

appPackage

你想运行的Android应用的包名

比如com.example.android.myAppcom.android.settings

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)

truefalse

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

iOS特有

关键字

描述

实例

calendarFormat

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

 gregorian (公历)

bundleId

被测应用的 bundle ID 。用于在真实设备中启动测试,也用于使用其他需要 bundle ID 的关键字启动测试。在使用 bundle ID 在真实设备上执行测试时,你可以不提供 app 关键字,但你必须提供 udid 

 io.appium.TestApp

udid

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

 1ae203187fc012g

launchTimeout

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

比如: 20000

locationServicesEnabled

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

true  false

locationServicesAuthorized

(Sim-only) 通过修改 plist 文件设定是否允许应用使用定位服务,从而避免定位服务的警告出现。默认值是保持当前模拟器的设定。请注意在使用这个关键字时,你同时需要使用 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中允许"真实的",非基于 javascript web 点击 (tap) 默认值: 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;

 



这篇关于Appium配置desired_capability详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1081556

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

Redis 基本数据类型和使用详解

《Redis基本数据类型和使用详解》String是Redis最基本的数据类型,一个键对应一个值,它的功能十分强大,可以存储字符串、整数、浮点数等多种数据格式,本文给大家介绍Redis基本数据类型和... 目录一、Redis 入门介绍二、Redis 的五大基本数据类型2.1 String 类型2.2 Hash

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res