在我的上一个项目中,我通过Selenium创建了一些测试用例,然后将它们自动化,以便它们可以在从hudson启动的每个构建上运行。它工作得非常好,大约持续了一个月。
然后测试开始失败。大多数情况下,导致失败的时间问题。在接下来的两个月里,经过大约两周的努力,决定放弃Selenium测试。它们应该已经过去了,但是Web应用程序的响应和时间是不同的,以至于测试在它们应该通过时失败的程度。
你有类似的经历吗? Selenium仍然是用于Web应用程序测试的好工具吗?
答案 0 :(得分:14)
Selenium是Web测试的绝佳工具,但确保测试可靠非常重要。时间问题很常见,所以我建议如下:
<强>更新强>
您还应该考虑使用Selenium Grid。它不会直接帮助您的超时,但它可以为您的失败提供更快的反馈循环。如果您使用TestNG来运行测试,您可以让它自动重新运行失败 - 这会使测试由于超时而失败,这是第二次机会。
答案 1 :(得分:1)
在我之前的工作中,我们调查过它作为一种测试工具,但发现它太麻烦了,无法整合到我们的过程中。和你一样的经历。
这是两三年前的版本0.8左右,但我希望自那时起它会好转。
答案 2 :(得分:1)
我有类似的经历。我们创建了一个项目来引导selenium代理并运行一套自动测试,但遗憾的是它与我们的构建服务器发生了巨大的冲突。浏览器不一致和第三方依赖关系太多,无法将其可靠地添加到我们的构建中。这对我们来说也太慢了,给我们的构建增加了太多时间。
我们遇到的大多数错误都是超时。
我们最终保留了该项目并将其用于主要版本的集成测试。我们使用的引导代码在其他领域也证明是非常宝贵的。
答案 3 :(得分:1)
当有足够的时间时,可能最好在夜间构建后运行 。它或Watin可以与您的构建脚本集成。
在很大程度上取决于您的团队,但如果您是一个小型测试团队,这对于获得一些非常明显的运行时问题来说是无价的。
我会保持范围适度,并且确实将它们用于某些完整性测试,至少每个页面都可以加载。
答案 4 :(得分:1)
我确实与Selenium有类似的经历。我们有一个遗留系统,我们构建了一种测试框架,以便我们可以测试我们正在进行的更改。这在开始时效果很好,但最终一些早期的测试开始失败(或者运行时间太长),所以我们开始关闭越来越多的测试。
为了解决一些问题,我们停止了每个测试打开和关闭浏览器的selenium,即测试被分解为块,并且对于每个块测试,浏览器只会打开一次。这样可以将测试时间从几小时缩短到30分钟。
尽管存在这些问题,但我认为Selenium是测试基于Web的应用程序的绝佳工具。我们遇到的许多问题都集中在我们测试的系统是遗留系统这一事实上。如果你喜欢测试驱动的开发,那么Selenium非常适合这种开发实践。
编辑: 关于Selenium的另一个好处是能够跟踪开发人员引入错误的位置以及错误的位置(源文件)。在修复错误时,这会让生活变得更加容易。
答案 5 :(得分:1)
我们最初尝试在构建机器上使用selenium,但测试非常脆弱,我们发现当通过同一组页面访问的无关功能发生更改时,我们花了很多时间尝试保持旧测试运行。我们通过nunit自动化测试。
我会更多地使用selenium作为客户验收和集成测试工具。我同意将它用于每晚构建稳定的功能。
答案 6 :(得分:1)
乍一看,Selenium看起来很棒。不幸的是,正如开源项目有时会发生的那样,他们急于实现新功能而不是让它更稳定。