Appium capability参数配置

发布时间 2023-05-24 15:48:13作者: 彭哈哈

 简介

  1. 功能:配置 Appium 会话,告诉 Appium 服务器需要自动化的平台的应用程序
  2. 形式:键值对的集合,键对应设置的名称,值对应设置的值

  主要分为三部分

  • 公共部分
  • ios 部分
  • android 部分
  1. session
  • Appium 的客户端和服务端之间进行通信的前提
  • 通过 Desired Capabilities 建立会话

  公共部分参数配置

 描述  值
platformName  使用的手机操作系统  iOS,Android
 platformVersion  手机操作系统的版本  例如6.0
 deviceName  使用的手机或模拟器名称  Android (Emulator,Galaxy S4,夜神);iOS等,可以通过adb devices查看设备列表
 automationName  使用哪个自动化引擎  android默认使用uiautomator2,ios默认使用XCUTest
 noRest  不会重置应用的状态,默认为false  true,false
udid 连接的真实设备唯一设备编号(iOS)  

    Android特有的部分

描述
appActivity Activity的名字,从包中想要启动的android activity
appPackage 运行的android应用包名
appWaitActivity 用于等待启动的Android Activity名称
unicodeKeyboard 启用Unicode输入,默认为false
dontStopAppOnReset 首次启动的时候,不停止app
skipDeviceInitialization 跳过安装,权限设置等操作

  IOS独有

      

描述
bundleId 被测应用的bundle ID,用于在真实设备中启动测试,也用于使用其他需要bundle ID 的关键字启动测试。在使用此参数在真实的设备上执行测试时,可以不提供app关键字,当时必须提供udid
autoAcceptAlerts 当ios的个人信息访问警告出现时,自动接收。默认false
showIOSLog 是否在appium日志中显示从设备捕获的任何日志。默认false

 

  示例:

  • API Demo 启动页配置

{
  "platformName": "android",
  "deviceName": "emulator-5554",
  "appPackage": "io.appium.android.apis",
  "appActivity": ".ApiDemos"
}
  • 添加参数,提高用例的稳定性

{
  "noReset": "true", // 不清空缓存信息
  "dontStopAppOnReset": "true", // 首次启动的时候,不停止app
  "skipDeviceInitialization": "true", // 跳过安装,权限设置等操作
  "unicodeKeyBoard": "true" // 输入中文
}

newCommandTimeout
设置appium请求等待最长时间,默认为60s,是appium发送请求的最大间隔时间

udid
设备的唯一标识,是adb devices获取到的设备标识

autoGrantPermissions
为软件授予弹窗权限,打开软件后,有时候会弹出一些权限授予的弹窗,可以通过设置这个参数去授予权限,不会影响到自动化测试的执行。默认为False

注意:如果设置了noReset 等于True的话,这个capability(功能)是不工作的。

noRest
在安卓系统中,设置该参数为True的话,不停止软件,不会去清除软件的数据,不会去卸载软件。

fullReset
让app完全保持干净状态,停止app,清空app缓存,在会话开始之前和测试之后会卸载app

dontStopAppOnReset
不去重启app,由于启动app的操作,底层是通过adb命令来实现的,所以当该参数设置为True的时候,启动命令不会去加-S参数,如果为False,则会加上-S参数

原理:

adb shell am start 包名/页面名 启动app,如果app已经启动,则不会再启动
adb shell am start -S 包名/页面名 启动app,如果app已经启动,会先关掉app再启动
官方文档:https://appium.io/docs/en/writing-running-appium/caps/

relaxed-security设置为true的话,可以在代码中使用adb命令

 

newCommandTimeout
设置appium请求等待最长时间,默认为60s,是appium发送请求的最大间隔时间

udid
设备的唯一标识,是adb devices获取到的设备标识

autoGrantPermissions
为软件授予弹窗权限,打开软件后,有时候会弹出一些权限授予的弹窗,可以通过设置这个参数去授予权限,不会影响到自动化测试的执行。默认为False

注意:如果设置了noReset 等于True的话,这个capability(功能)是不工作的。

noRest
在安卓系统中,设置该参数为True的话,不停止软件,不会去清除软件的数据,不会去卸载软件。

fullReset
让app完全保持干净状态,停止app,清空app缓存,在会话开始之前和测试之后会卸载app

dontStopAppOnReset
不去重启app,由于启动app的操作,底层是通过adb命令来实现的,所以当该参数设置为True的时候,启动命令不会去加-S参数,如果为False,则会加上-S参数

原理:

adb shell am start 包名/页面名 启动app,如果app已经启动,则不会再启动
adb shell am start -S 包名/页面名 启动app,如果app已经启动,会先关掉app再启动
官方文档:https://appium.io/docs/en/writing-running-appium/caps/

relaxed-security设置为true的话,可以在代码中使用adb命令

 

 


 

原文链接:https://blog.csdn.net/weixin_55085113/article/details/126729122