【发布时间】:2017-10-13 04:38:02
【问题描述】:
我知道优化 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}
我知道 Robot Framework 不是为速度而构建的,但是对于长时间的测试,我厌倦了等待它完成 10 分钟什么都不做,却发现我的[Fail] 不正确。如果解决方案涉及 Python、Javascript 或 Java,我可以使用它。
编辑:我目前正在使用 ExtendedSelenium2Library,但它的隐式等待并不总是有效,所以我想要第二层等待,但只要有必要。
【问题讨论】:
-
这不是一个真正的答案 - 但你说你正在等待 10 分钟,看看它是失败还是通过。为什么不创建一个包含您创建的新测试的小“沙盒”,看看它是否有效。它失败了你会在几秒钟内知道,如果它通过了,你可以将它添加到主文件的末尾。如果这有意义吗?然后,当它添加到主文件时,如果设置和拆卸正确完成,它应该可以正常工作。
-
这确实有道理,我通常会这样做,但有时与主文件本身的集成会导致失败,即使它不应该这样做,并且运行整个测试以查看它是否一起工作需要这么多时间。
-
为什么在等待它可见后立即调用
element should be visible?这似乎是多余的。 -
那已经改变了,但我最初有它只是为了确定。
-
我有完全相同的问题
标签: angularjs performance robotframework