【发布时间】:2016-10-07 11:13:33
【问题描述】:
在工作中,我们为我们的一个应用程序设置了一个自动化套件,该套件设置为在每次提交到 master/deploy 到 prod 时运行,并且很长一段时间以来,我们一直在尝试使其足够可靠时遇到问题。
测试在 Jenkins 中运行,使用 Selenium webDriver + Chrome + xvfb 作为显示服务器。我们知道测试是有效的,因为如果我们在笔记本电脑上本地运行它们(我和 2 个朋友已经尝试过),它们每次都能完美运行,但在 Jenkins 中每次都几乎失败。 几乎是关键字,因为它们也在那里工作……每 5 次左右才一次。
当他们失败时,他们并不总是在同一个地方失败。有时它在等待一个元素时超时,有时测试最终会出现一个最初不应该到达的错误页面,我不知道它是如何到达那里的......所以是的,这很令人沮丧。
我们尝试了很多不同的方法来调试它。重新编写每个测试的设置以确保在每个测试结束时清除所有内容,以便下一个从干净的工作区/缓存开始,这样 Selenium 每次无法看到发生了什么时都会截取屏幕截图,尝试过chromedriver / chrome / selenium的不同版本,将测试连续运行几次,看看是否有任何模式......因为我的想法已经用完了,我想我可以在这里问!
有没有什么办法可以设置 Selenium 驱动程序来记录整个流程,而不是到处截屏?我希望能够观看在 Jenkins 中运行的测试,但我不知道这是否可能或如何去做。
测试使用 Java7 + Spring + TestNG 6.8.1 + Selenium 2.45.0 + XVFB 作为显示服务器。
关于我可以尝试什么的任何想法或提示?
【问题讨论】:
-
第一个建议你可以更新几乎所有你正在使用的框架来提高它们的效率。下一个建议是隐式等待或适当的显式等待。最终建议,如果它在本地运行良好,请配置 jenkins 机器与本地相同。
标签: java selenium jenkins continuous-integration