深入了解Appium:Capability 高级配置技巧解析

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: Appium 提供多种进阶配置项以优化自动化测试,如 deviceName 作为设备别名,udid 确保选择特定设备,newCommandTimeout 设置超时时间,PRINT_PAGE_SOURCE_ON_FIND_FAILURE 在错误时打印页面源,以及测试策略中的 noReset、shouldTerminateApp 和 forceAppLaunch 控制应用状态和重启。这些配置可提升测试效率和准确性。

image.png

简介

Appium 的除了基础的 Capability 设置,还提供了许多辅助配置项,用于优化自动化测试。这些配置项旨在执行基础配置之外的附加操作。例如:指定设备别名、设备 ID 或是设置超时时间等,虽然这些不是必需的选项,但是为了实现更高效的测试,通常也建议依据测试的情况适当的添加。

xcuitest driver 的 capabilities 官方文档介绍(UAutomator 可做参考)。

进阶配置项

deviceName

deviceName 只是作为设备的别名,并不能唯一的确定一个设备。

python 示例

caps["appium:deviceName"] = "emulator-5554"

udid

使用设备的 UDID 可以确保在同时连接多个设备时,准确地选择指定的设备进行自动化测试。不设置 UDID 则默认读取设备列表的第一个设备,当只连接一个设备,可以不设置。

  • 在 iOS 设备上,可以在设备的设置中找到 UDID 。
  • 在 Android 设备上,可以通过 adb 命令或在开发者选项中找到UDID。

获取设备列表,使用 adb devices 命令:

如图所示,下图连接的设备的唯一标识就是127.0.0.1:7555

image.png

可以通过 capabilities 中的"udid"字段来指定设备的UDID。

python 示例

## 并不能唯一确定一个设备
caps["appium:deviceName"] = "emulator-5554"
## 可以唯一确定一个设备
caps["udid"] = "hogwarts001"

newCommandTimeout

appium 可以设置程序应等待来自客户端的新命令的超时时间,超时后 session 会被删除。具有 60s 的默认等待时间。将时间改为 0 时,表示禁用该设置。

在 capabilities 中的"newCommandTimeout"字段来指定等待时长,单位为秒。

python 示例

## 可以根据测试所需步骤适当延长时长。

caps["appium:newCommandTimeout"] = 3600

PRINT_PAGE_SOURCE_ON_FIND_FAILURE

  • 默认为 false
  • 发生任何错误,强制服务器将实际的 XML 页面源转储到日志中.

测试策略-noReset

在 capabilities 中 noReset 如果为真,指示应用程序驱动程序在会话启动和清理期间避免其通常的重置逻辑(默认为假)。

然而,在 Android 和 iOS 平台上,noReset 被处理的方式有一些不同。

  1. Android 平台:
  2. 当 noReset 设置为 true 时,启动应用程序时不会重置应用的状态,包括清除缓存、重置应用程序设置等。这意味着应用程序在每次启动时会保留上一次的状态。
  3. 当 noReset 没有设置或设置为 false 时,启动应用程序时会重置应用的状态,包括清除缓存、重置应用程序设置等。这意味着应用程序在每次启动时会恢复到初始状态。
  4. iOS 平台:
  5. 在 iOS 平台上,无论 noReset 设置为 true 还是 false ,应用程序的状态通常会重置。这是因为在 iOS 中,每次应用程序启动时,Appium 会使用一个新的模拟器或设备,以及一个新的应用程序安装。
  6. 若要实现在 iOS 平台上不重置应用程序的状态,可以通过保持模拟器或设备的状态来实现。这可以通过使用 udid 参数指定具体的设备,以及安装应用程序的方式来实现。

总结起来,noReset 在 Android 平台上可以实现每次启动应用程序时保留上一次的状态,但在 iOS 平台上,无论设置为 true 还是 false ,应用程序的状态通常会重置。在 iOS 平台上保留应用程序状态需要使用其他方法。

测试策略-shouldTerminateApp

指定应用程序是否应在会话结束时终止。默认值为 true,除非 noReset 功能设置为 true

测试策略-forceAppLaunch

指定如果应用程序已经在会话启动时运行,是否应该强制重新启动。默认值为 true ,除非 noReset 设置为 true。

总结

  • Capability 进阶配置项
相关文章
|
5天前
|
安全 Java 数据库连接
后端框架的学习----mybatis框架(3、配置解析)
这篇文章详细介绍了MyBatis框架的核心配置文件解析,包括环境配置、属性配置、类型别名设置、映射器注册以及SqlSessionFactory和SqlSession的生命周期和作用域管理。
后端框架的学习----mybatis框架(3、配置解析)
|
4天前
|
负载均衡 网络协议 应用服务中间件
如何配置 DNS 轮询负载均衡以实现高可用性
如何配置 DNS 轮询负载均衡以实现高可用性
16 4
|
17天前
|
XML Android开发 UED
"掌握安卓开发新境界:深度解析AndroidManifest.xml中的Intent-filter配置,让你的App轻松响应scheme_url,开启无限交互可能!"
【8月更文挑战第2天】在安卓开发中,scheme_url 通过在`AndroidManifest.xml`中配置`Intent-filter`,使应用能响应特定URL启动或执行操作。基本配置下,应用可通过定义特定URL模式的`Intent-filter`响应相应链接。
45 12
|
22天前
|
缓存 负载均衡 应用服务中间件
nginx.conf 配置解析及常用配置
nginx.conf 配置解析及常用配置
54 6
|
22天前
|
弹性计算 缓存 前端开发
阿里云服务器配置选择指南2核4G、4核8G和8核16G性能全解析!
阿里云2核4G、4核8G与8核16G服务器配置解析及选择指南。根据不同业务需求,推荐ECS经济型e、通用算力型u1、计算型c7/c8i实例。企业用户专享2核4G ECS u1实例仅199元/年,自带5M带宽;4核8G u1实例起价955.58元/年;8核16G c7实例起价6544元/年。各实例CPU性能各异,如c7采用第三代Intel Xeon处理器,适配高性能计算场景。
61 3
|
4天前
|
安全 Nacos 数据库
【技术安全大揭秘】Nacos暴露公网后被非法访问?!6大安全加固秘籍,手把手教你如何保护数据库免遭恶意篡改,打造坚不可摧的微服务注册与配置中心!从限制公网访问到启用访问控制,全方位解析如何构建安全防护体系,让您从此告别数据安全风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其公网暴露可能引发数据库被非法访问甚至篡改的安全隐患。本文剖析此问题并提供解决方案,包括限制公网访问、启用HTTPS、加强数据库安全、配置访问控制及监控等,帮助开发者确保服务安全稳定运行。
11 0
|
4天前
|
安全 Nacos 数据安全/隐私保护
【技术干货】破解Nacos安全隐患:连接用户名与密码明文传输!掌握HTTPS、JWT与OAuth2.0加密秘籍,打造坚不可摧的微服务注册与配置中心!从原理到实践,全方位解析如何构建安全防护体系,让您从此告别数据泄露风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其连接用户名和密码的明文传输成为安全隐患。本文探讨加密策略提升安全性。首先介绍明文传输风险,随后对比三种加密方案:HTTPS简化数据保护;JWT令牌减少凭证传输,适配分布式环境;OAuth2.0增强安全,支持多授权模式。每种方案各有千秋,开发者需根据具体需求选择最佳实践,确保服务安全稳定运行。
16 0
|
10天前
|
安全 关系型数据库 MySQL
"深度解析:MySQL密码修改与远程登录配置全攻略,保障数据库安全与灵活访问"
【8月更文挑战第9天】MySQL是广受青睐的开源关系型数据库系统,其安全性和易用性对DBA和开发者至关重要。本文通过实例解析MySQL中用户密码更新及远程登录配置,确保数据库安全访问与高效管理。首先介绍如何分步修改密码,包括登录MySQL、选择数据库、使用`ALTER USER`命令更新密码,并刷新权限。接着,指导如何配置远程访问,涉及调整MySQL监听地址、授权用户远程登录、检查网络设置及测试远程连接。遵循这些步骤,可强化数据库安全性并实现灵活管理。
45 0
|
1月前
|
Java Spring
解析Spring Boot中的配置文件与外部化配置
解析Spring Boot中的配置文件与外部化配置
|
1月前
|
传感器 编解码 API
【STM32开发入门】温湿度监测系统实战:SPI LCD显示、HAL库应用、GPIO配置、UART中断接收、ADC采集与串口通信全解析
SPI(Serial Peripheral Interface)是一种同步串行通信接口,常用于微控制器与外围设备间的数据传输。SPI LCD是指使用SPI接口与微控制器通信的液晶显示屏。这类LCD通常具有较少的引脚(通常4个:MISO、MOSI、SCK和SS),因此在引脚资源有限的系统中非常有用。通过SPI协议,微控制器可以向LCD发送命令和数据,控制显示内容和模式。

推荐镜像

更多