前言

本文为在霍格沃兹测试开发学社的学习经历分享

简介

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

主要分为三部分

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

公共部分参数配置

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

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" // 输入中文
}
Settings API

官网文档:http://appium.io/docs/cn/advanced-concepts/settings/#settings_1

使用方法:# caps['settings[waitForIdleTimeout]']= 0

capability进阶用法

  1. newCommandTimeout

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

  1. udid

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

  1. autoGrantPermissions

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

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

  1. noRest

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

  1. fullReset

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

  1. 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命令

推荐阅读文章链接:只需Docker,环境问题再也不是测开路上的『坑』_霍格沃兹测试开发学社的博客-CSDN博客

capability参数配置的更多相关文章

  1. 转:浅谈UNIX下Apache的MPM及httpd.conf配置文件中相关参数配置

    为什么要并发处理 以Apache为代表的web服务器中,如果不支持并发,则在一个客户端连接的时候,如果该客户端的任务没有处理完,其他连接的客户端将会一直处于等待状态,这事不可想象的,好像没有为什么要不 ...

  2. Spark on Yarn:任务提交参数配置

    当在YARN上运行Spark作业,每个Spark executor作为一个YARN容器运行.Spark可以使得多个Tasks在同一个容器里面运行. 以下参数配置为例子: spark-submit -- ...

  3. Production环境中iptables常用参数配置

    production环境中iptables常用参数配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我相信在实际生产环境中有很多运维的兄弟跟我一样,很少用到iptables的这个 ...

  4. Unity3D安卓打包参数配置与兼容性的关系分析

    前言 在使用Unity3D工程导出安卓安装包的时候,往往会遇到兼容性的问题,针对某些机型,要么无法打开游戏,要么会出现卡机的现象.面对这种情况,我们可以调节相关的参数来提高兼容性. 为了了解在打包时候 ...

  5. 教你如何利用分布式的思想处理集群的参数配置信息——spring的configurer妙用

    引言 最近LZ的技术博文数量直线下降,实在是非常抱歉,之前LZ曾信誓旦旦的说一定要把<深入理解计算机系统>写完,现在看来,LZ似乎是在打自己脸了.尽管LZ内心一直没放弃,但从现状来看,需要 ...

  6. IIS 7.5 高并发参数配置

    IIS 7.5 高并发参数配置 由于之前使用的是默认配置,服务器最多只能处理5000个同时请求,对于高并发请求,参照文档设置10万并发 1. 调整IIS 7应用程序池队列长度 由原来的默认1000改为 ...

  7. Sqlserver推荐参数配置及日志收缩问题

    最近不定期有项目反馈周期性的系统整体性能下降情况,经分析存在因数据库环境.参数配置不佳造成的.比如,sqlserver日志文件缺省按百分比增长,当日志文件已经比较大时,每次扩展时耗时较长,系统整体卡顿 ...

  8. [转载]SOAPUI压力测试的参数配置

    原文地址:SOAPUI压力测试的参数配置作者:goooooodlife The different Load Strategies available in soapUI and soapUI Pro ...

  9. Mongodb Java Driver 参数配置解析

    要正确使用Mongodb Java Driver,MongoClientOptions参数配置对数据库访问的并发性能影响极大. connectionsPerHost:与目标数据库能够建立的最大conn ...

随机推荐

  1. mysql 经典案例

    MySQL多表联合查询是MySQL数据库的一种查询方式,下面就为您介绍MySQL多表联合查询的语法,供您参考学习之用. MySQL多表联合查询语法: SELECT * FROM 插入表 LEFT JO ...

  2. 日志(logging模块)

    1. 为什么要使用日志(作用) 在学习过程中,写一个小程序或小demo时,遇到程序出错时,我们一般会将一些信息打印到控制台进行查看,方便排查错误.这种方法在较小的程序中很实用,但是当你的程序变大,或是 ...

  3. 技术分享 | MySQL Group Replication集群对IP地址的限制导致的一些问题与解决办法

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 1. 遇到问题 测试人员小玲准备在docker环境中部署MGR集群进行一些测试,她有三个容器,容器IP分别是: 172.3 ...

  4. 美女 Committer 手把手教你使用海豚调度

    还在为选哪个调度发愁么?还在为查使用手册愁眉不展么?来来来,先瞧一眼海豚调度的 Slogan:调度选的好,下班回家早.调度用的对,半夜安心睡.为充分贯彻这一宗旨,海豚调度一条龙服务来了,特地邀请海豚社 ...

  5. Luogu1527 [国家集训队]矩阵乘法 (整体二分)(Unfinished)

    全线RE的代码... 先搁这吧,下次再说.flag //#include <iostream> #include <cstdio> //#include <cstring ...

  6. java-引用数组、继承、super关键字

    1.引用类型数组: 1)   Cell[] cells = new Cell[4];   cells[0] = new Cell(2,5); cells[1] = new Cell(2,6); cel ...

  7. java学习第二天多态.day09

    接口 接口总结 接口表示一种规约(规范.标准),它里面定义了一些列抽象方法(功能),它可以被多个类实现. 1接口名称首写字母用I,表示一个接口,后命名使用驼峰命名 2.接口中定义的都是抽象方法,所以可 ...

  8. iOS去广告最简单方案!+以图搜漫

    iOS去广告 ️推荐 | 通过下载.安装.启用(一般默认启用)描述文件,即可实现通过私人dns来达到全系统的广告拦截.隐私保护功能 ️注意: 限 iOS 14 及以上版本系统使用 复制链接需在 saf ...

  9. java数组---特点,边界

    数组的四个基本特点 1.其长度是确定的.数组一旦被创建,它的大小就是不可以改变的. 2.其元素必须是相同类型,不允许出现混合类型. 3.数组中的元素可以是任何数据类型,包括基本类型和引用类型. 4.数 ...

  10. 第五十九篇:关于Vue

    好家伙,前面关于vue的学习太散太乱了,我决定重新整理一下知识框架,当作复习了,并且在其中补充一些概念 先提出一个问题:怎么把数据弄到页面上? 若不借助vue,把数据填充到页面上, 我们需要操作dom ...