前言

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

简介

  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. Python logging日志管理

    import logging logger = logging.getLogger("simple_example") logger.setLevel(logging.DEBUG) ...

  2. 为MySQL MGR实现简单的负载均衡代理

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 原创:万里数据库,花家舍 导读 在多写(多节点写入)数据库(例如MySQL MGR的multi-primary mode) ...

  3. Eclipse里项目名有红叉,但是项目里的每一个文件都没有红叉

    原因一:导入的文件被删除了. 解决方法:右击项目名,在弹出的菜单中,选择"Bulid Path"-->"configure build path"--&g ...

  4. es6中的Proxy和vue中的数据代理的异同

    1:概述 1-1:Proxy 用于修改某些操作的默认行为,Proxy可以说在对对象进行各种访问或者操作的时候在外层进行一层拦截,在操作之前都需要经过这种拦截.proxy返回的是一个新对象,可以通过操作 ...

  5. 【安全通报】DolphinScheduler 漏洞情况说明

    Apache DolphinScheduler 社区邮件列表最近通告了 2 个漏洞,考虑到有很多用户并未订阅此邮件列表,我们特地在此进行情况说明: CVE-2020-11974[1] 漏洞 (CVE- ...

  6. MySQL的三值逻辑

    MySQL 采用三值逻辑 SELECT 1 = 1; SELECT 1 = 2; SELECT 1 = NULL; SELECT 1 != NULL; 上面四条语句的结果分别为: 可见MySQL采用三 ...

  7. Spring源码 03 IOC原理

    参考源 https://www.bilibili.com/video/BV1tR4y1F75R?spm_id_from=333.337.search-card.all.click https://ww ...

  8. Excel 名称管理器是什么,并实现一个级联选择框

    名称 在 Excel 中,每一个单元格都有自己的名称.表格横向是字母,纵向是数字,组合起来就是一个单元格的名称. A13 所代表的是 A 列,13 行的单元格.把一组单元格组合起来,加上一个名称,在 ...

  9. Codeforces 1715E - Long Way Home

    又是废掉的一个div2啊 第一次在学校熬夜打cf,开心还看到了自己最喜欢的斜率优化ohhh 链接 :E - Long Way Home 看到那个平方就可以靠感觉认为是斜率优化了.... 感觉似不似有点 ...

  10. [HNOI2010]弹飞绵羊 (平衡树,LCT动态树)

    题面 题解 因为每个点都只能向后跳到一个唯一的点,但可能不止一个点能跳到后面的某个相同的点, 所以我们把它抽象成一个森林.(思考:为什么是森林而不是树?) 子节点可以跳到父节点,根节点再跳就跳飞了. ...