首页 > 其他分享 >深入了解Appium:Capability 高级配置技巧解析

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

时间:2024-05-06 10:58:09浏览次数:15  
标签:Appium 重置 iOS noReset 应用程序 Capability 设置 解析 设备

简介

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

可以通过 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 进阶配置项

标签:Appium,重置,iOS,noReset,应用程序,Capability,设置,解析,设备
From: https://www.cnblogs.com/hogwarts/p/18174526

相关文章

  • Sxstrace.exe 是 Windows 操作系统提供的一个工具,用于跟踪和分析应用程序的依赖项解析
    sxstrace|MicrosoftLearnSxstrace.exe是Windows操作系统提供的一个工具,用于跟踪和分析应用程序的依赖项解析过程。该工具可以帮助用户诊断应用程序启动或运行时出现的依赖项错误或加载问题。在Windows中,许多应用程序依赖于共享组件和库文件,如动态链接库(DLL)。当应用......
  • 域名解析实际应用 ----DNS
    常用DNSDNS地址114.114.114.114国内移动、电信和联通通用的DNS8.8.8.8GOOGLE公司提供的DNS223.5.5.5和223.6.6.6阿里云DNS首选DNS为:218.2.135.1备用DNS为:61.147.37.1江苏省南京市(中国电信)DNS(DomainNameSystem)解析过程是将域名转换为相应的IP......
  • 解析mysql奇葩语句
    首先看看完整的表如下图那么看看一个比较奇葩的语句select*fromuserswherename='aa'='bb'这个语句为啥能执行成功以及为什么打印出了除了两个aa之外的所有行数据呢。我们来解释一下原理。当我们使用where语句的时候,where是会一行一行的匹配的,同时where的执......
  • Bash脚本语法解析(典例精讲)
    参考资料:https://github.com/AUTOMATIC1111/stable-diffusion-webuihttps://razeen.me/posts/the-ultimate-programmers-guide-to-bash-scripting/众所周知.sh文件是Linux系统中的脚本文件。(与之相对的还有windows系统上对应cmd的bat文件,对应powershell的ps1文......
  • CMS垃圾收集器深入解析
    CMS本身是个非常极端的垃圾收集器,他过于注重停顿时间,而不在乎吞吐量。正常情况使用标记清除算法,所以也会有内存碎片的产生,整个CMS垃圾收集的过程,主要是为了缩短停顿时间,所以在有些环节会与业务线程并发执行。1.初始标记,根据GCRoot的引用链,只标记第一个对象,此时是多个标记线程并......
  • std::move 和 std::forward源码解析
    std::move和std::forward仅仅是执行转换(cast)的函数(事实上是函数模板)。std::move无条件的将它的实参转换为右值,而std::forward只在特定情况满足时下进行转换。std::movetemplate<class_Ty>constexprremove_reference_t<_Ty>&&move(_Ty&&_Arg)noexcept{returnstatic......
  • Keil FLM文件解析
    1.*.FLM的本质其实就是*.axf,它也是一段可执行代码。2.它是ARM工具链的一部分,/***********************************************************************//*ThisfileispartoftheARMToolchainpackage*//*Copyright(c)2010Keil-AnARMC......
  • C语言解析FLM(ELF)格式文件
    代码下载:https://gitee.com/jhembedded/flmparse 写这篇博客的目的是因为最近在做一个STM32的离线编程器,离线下载需要用到FLM文件的下载算法,所以实现了一下提取FLM文件中下载算法的C程序。有关ELF格式的详细说明可查看这个文件:http://flint.cs.yale.edu/cs422/doc/ELF_Format.......
  • raft算法和etcd代码解析-5.应用模块的启动
    Node接口Node是raft应用模块在节点上的抽象,也是应用模块和算法模块交互的入口应用模块持有Node作为算法模块的引用,通过调用Node接口的API与算法模块通信,通信方式是通过若干个Channel异步完成的。//Noderepresentsanodeinaraftcluster.typeNodeinterface{ //告知......
  • 玄学野路子项目,探秘解析
    玄学这玩意太暴利,很难掌握度,稍不注意干大了,就容易踩缝纫机。但是很多人耐不住心里痒痒,因为这破玩意太他妈赚钱了。如果实在想搞,胆子又小,那就卖点小道具,几十块的东西,别人也懒得搭理咱。比如这个: 这个直播间打造的真是绝了,整个直播间的场景和话术,没有任何涉及封建迷信的地方。......