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