在TeamCity构建代理上运行Cucumber \ Watir-Webdriver(Ruby)测试时,我一直遇到持久的可靠性问题。
当从本地计算机对CI Web应用程序服务器运行96步骤套件时,所有测试都运行为绿色,但使用构建代理对同一环境运行相同的测试会产生一系列间歇性错误,例如:
Selenium::WebDriver::Error::NoSuchElementError: Unable to locate element:
使用WW和PageObject等待方法只会产生间歇性超时,例如:
Watir::Wait::TimeoutError: timed out after 30 seconds
这非常难以调试,因为它是一个间歇性问题,反馈时间大约为20分钟。为了改进它,我们在构建代理程序的主机上增加了RAM,并使用TEAMCITY_SERVER_MEM_OPTS环境变量将构建代理程序可用的堆内存增加到4G。这似乎没有帮助。
答案 0 :(得分:0)
它是以相同的分辨率运行吗?
我的团队遇到了一个问题,即构建服务器运行的分辨率与我们的机器不同(较小),因此由于分辨率较小而无法找到元素。该元素将位于浏览器窗口之外。
我们通过在每次创建驱动程序时将浏览器的大小设置为特定值来解决这个问题,因此如果它在构建计算机上失败,它也会在我们的网站上失败。