gpt4 book ai didi

java - 如何使 appium 测试在 iOS 上运行得更快?

转载 作者:可可西里 更新时间:2023-11-01 05:04:25 25 4
gpt4 key购买 nike

目前,我正在使用 appium 进行 iOS 应用程序测试,并且我在 mac mini 机器上用 Java 编写了测试。我正在使用 Jenkins CI 来运行我的测试。我想更快地运行我的测试,因为目前它在 iOS 模拟器上相当慢。例如,如果我通过 sendkeys() 函数(如“testdata”)在文本字段中输入任何值,那么在模拟器中的输入速度很慢。它首先从模拟器的键盘上输入字符 '',然后是 'e',然后是 's' 等等。

以下是我的问题,

  1. 有什么方法可以让我在模拟器上更快地执行测试通过 sendkeys() 函数输入文本字段时?
  2. 有什么方法可以在没有模拟器的情况下以 headless 方式运行我的测试?

最佳答案

不要在 iOS 上使用发送键

您实际上不应该在 iOS 上使用 sendKeys,因为它很慢而且不稳定。

你应该对 Java 库使用 setValue 对 ruby​​ 库使用 type

设置值用法

setValue 在 Java 库中定义 here .

它应该在 WebElement 上调用。

driver.find_element(By.locator(value)).setValue("foo")

使用 iOS 模拟器是运行测试的最佳选择

Instruments 需要实时模拟器或真实设备*才能与您的应用程序交互。您可以遵循一些最佳实践来改进您的测试代码,这可能会使测试更快。

其他优化最佳实践

  1. 不要使用“ sleep ”来尝试等待某个元素——而是不断轮询驱动程序以了解该元素是否已显示和可点击。
  2. 使用setValue代替sendKeys
  3. 停止使用 Xpath 定位器策略。它在 iOS 上很古怪而且很慢。使用 UIAutomation 或 AccessibilityId 定位器策略。
  4. 仅在需要与元素交互时才获取元素

*不建议使用 Real Devices for iOS(当性能很重要时)

自动化真实设备在每个 Action 之间有一个内置的一秒延迟。

无论 Appium 服务器有多快,或者您的测试脚本有多快,在 Appium 将“执行”命令推送到仪器工作队列和在设备上执行命令之间都存在延迟。

关于java - 如何使 appium 测试在 iOS 上运行得更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25915967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com