目前,我正在使用appium进行iOS应用程序测试,我已经在mac mini机器上用Java编写了测试。我正在使用Jenkins CI来运行我的测试。我想更快地运行我的测试,因为目前它在iOS模拟器上非常慢。例如,如果我通过sendkeys()函数在textfield中输入任何值,如'testdata'那么在模拟器中输入速度很慢。它先从模拟器的键盘上写下't'然后'e'然后's'等等。
以下是我的问题,
答案 0 :(得分:8)
你实际上不应该在iOS上使用sendKeys
,因为它速度慢而且不稳定。
您应该将setValue
用于Java lib,将type
用于ruby lib
setValue
在Java库here中定义。
它应该在WebElement上调用。
driver.find_element(By.locator(value)).setValue("foo")
仪器需要实时模拟器或真实设备*才能与您的应用程序进行交互。您可以遵循一些最佳实践来改进测试代码,这可能会使测试更快。
setValue
代替sendKeys 自动化真实设备在每个动作之间都有一秒的内置延迟。
无论Appium服务器有多快,或者您的测试脚本是多少,Appium推送"执行"之间都存在延迟。命令到仪器工作队列以及何时在设备上执行。
答案 1 :(得分:1)
我在哪里可以找到有关此建议的更多信息(我使用的是ruby而不是java)和xpath很多,我想这可能是脚本执行时间过长的原因之一。
“停止使用Xpath定位器策略。在iOS上它很火,速度慢。使用UIAutomation或AccessibilityId定位器策略。”
答案 2 :(得分:1)
您可以将sendKeyStrategy的iOS功能设置为setValue,而不是默认的OneByOne。