我知道优化Robot Framework的基本知识,以提高正常应用程序的速度,但这不是一个正常的应用程序。这不是一个尽可能快的问题,因为如果代码在Angular应用程序上执行得太快,它会尝试点击未启用或可见的元素或尚不存在的元素。定时问题比比皆是,结果是我使用关键字(下方)来普遍减慢我的程序。问题在于它是硬编码的,我正在寻找一个更“程序化的”(程序?我不知道确切的术语)解决方案,它将等待元素被点击,然后在它是。如何优化Robot Framework以加速对Angular应用程序的测试?
这是我每一次点击后使用关键字(${SLOW_TIME}
是一个全局变量设置为0.5s
):
Slow Down
# EXAMPLE USAGE
# Slow Down ${SLOW_TIME}
[Arguments] ${SLOW_TIME}
Sleep ${SLOW_TIME}
这是我目前的解决方案,这是写来验证一个元素是随时可以点击进行测试验证,而不是速度。这不是完整的(需要“是可点击”),并偶尔导致程序等待更长的时间比它:
Verify Element Is Ready
# EXAMPLE USAGE
# Verify Element Is Ready id=myElementId
# Click Element id=myElementId
[Arguments] ${element}
Variable should exist ${element}
Wait until element is visible ${element}
Wait until element is enabled ${element}
我知道,机器人框架不是专为速度,但长期测试中,我” m厌倦了10分钟无所事事的等待它完成,只能看到我有一个不正确的[Fail]
。如果解决方案涉及Python,Javascript或Java,我可以工作。
编辑:我目前使用ExtendedSelenium2Library,但其隐含的等待并不总是工作,所以我想要第二层等待,但只要有必要。
这心不是一个真正的答案 - 但你说你正在等待10分钟,看是否它失败或通过。为什么不创建一个有你创建的这个新测试的“沙箱”,看看它是否有效。它会在几秒钟内失败,如果通过,您可以将其添加到主文件的末尾。如果这有道理?然后,当它添加到主文件时,它应该正常工作,如果安装和拆卸正确完成。 – Goralight
它确实有道理,我通常这样做,但有时与主文件本身的集成即使不应该也会导致失败,并且运行整个测试以查看它是否一起工作需要很长时间。 –
为什么在等待它可见之后立即调用'element should be visible'?这似乎是多余的。 –