Appium 一招让 IOS 自动化化快的飞起

本文介绍了如何利用Appium优化iOS自动化测试,包括元素定位策略、性能优化建议,如避免使用XPath,选择高效查找方法,并提供升级Appium后解决问题的经验,旨在提升测试速度。
摘要由CSDN通过智能技术生成

目录

前言

调查

大坑

元素定位优化策略

升级后的小问题

后记


前言

Appium 是一个开源的自动化测试框架,它可以用于测试 iOS 和 Android 应用程序。在设计 iOS 自动化测试用例时,需要考虑测试用例的可靠性、可维护性、可扩展性等因素,以确保测试用例能够有效地覆盖系统的所有功能和特性。Appium 提供了一些实用的功能,可以帮助测试人员快速准确地完成 iOS 自动化测试,例如使用 Appium-Python-Client 库来控制 Appium Server、使用 Appium-WebDriver-Manager 库来管理 Appium WebDriver 实例、使用 Appium-Grid 功能来在多个设备上同时运行测试用例等。

调查

Xcode9 SDK 不再支持 snapshot 功能了,没有 snapshot 功能就无法获取 page_source。而从 Appium1.6.5+ 后,Facebook 用 WDA snapshot, 相比于 Xcode SDK 的 snapshot, WDA snapshot 在生成 page source 的时候包含了一个之前没有的属性, 也就是 visibility 属性。计算元素的 visibility 在 XCTest 中是非常痛苦和昂贵的操作。
xpath 好像每次查找时都是重新生成一棵树,WDA 需要额外的努力来实施 XPath 查询,这会严重影响查找时间遍历整个元素树,生成一个 xml 数据,然后再做 xpath 查找。遍历和在 xml 中进行 xpath 查找都相当耗时。论坛比较多的说法是查找元素策略的性能从高到低排列如下:Class Name>Accessibility Id>Link Text>Predicate>Class Chain>XPath
但是以上各种方式试过了,也没有让我的用例快起来。

大坑

搜索了很多帖子,很多人都是反映 IOS 自动化速度太慢。但是都没提怎么解决。由于不想改现在共通的滑动和安卓手机按键操作的代码,没有 java-client 升级,保留当前 5.0.4 的版本,没有想到掉这么个大坑里,搞了两三天百撕不得骑姐。
和 py 最新库执行相同用例后的速度对比后才发现,可能是 jar 包的原因。升级 java-client 版本 5.0.4-->6.1.0,升级前来执行 6 分钟左右的下单用例,升级后 2 分钟 (包括人为设置的等待时间) 不到就执行完成了。
更换版本后真的快的飞起啊,比安卓用例执行更快了。
这里说一下我的环境配置,方便速度慢的同学参考:

  • Xcode:9.4.1
  • Appium:1.8.1
  • 模拟器:11.4
  • java-client:6.1.0(非常重要,和 5 比速度差的不是一个级别的)
元素定位优化策略
  • 尽量不使用 xpath

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值