我正在使用Selneium Web驱动程序+ Java + firefox,我对selenium的行为很生气。
目前我在CI中运行了300多个测试,测试执行需要将近5个小时才能完成。
我关注的是,每次看到测试结果时,300次测试中都会有大约5-6次失败,而不是应用程序失败。
我看到的这些5-6次失败并不一致,这意味着,每次观察都没有明确的5次失败。
在每次运行中,我都会看到不同的故障。
是的,10次跑步中有3次我看到100%合格率。
我遇到的异常主要是StaleElementReference异常和NoSuchElement异常。
是的,我处理了AJAX调用并且有必要的显式等待和隐式等待。
这是硒的行为方式吗?难道我们不能始终如一地获得100%的合格率吗?
我知道这个问题过于笼统。但我真的很沮丧,想知道我是唯一面对这个问题的人还是其他人。
答案 0 :(得分:2)
是的,如果您的测试写得很好,您可以在Selenium测试中获得100%的通过率。
你所拥有的是片状测试。见http://martinfowler.com/articles/nonDeterminism.html
答案 1 :(得分:1)
是的,您可以获得100%的通过率,但这实际上取决于您的测试环境设置。您必须通过等待等方式同步所有元素,但在某些情况下,webdriver和Web浏览器之间的通信仍然会失败(但新版本有所改进)。所以基本上用webdriver间歇性测试更常见。因为您没有写更多细节,所以有一些通用选项:
这些选项更像是解决方法,而不是正确的解决方案。对于webdriver,同步测试状态和Web浏览器状态非常重要。