使用Selenium-IDE和丰富的Javascript应用程序?

Dar*_*ien 5 javascript testing selenium selenium-ide javascriptmvc

问题

在我的工作场所,我们正在努力寻找为几乎完全由javascript驱动的Intranet应用程序创建自动化测试的最佳方法.现在我们一直试图找到一个很好的权衡:

  • 应用程序代码在可重用和可嵌套的GUI组件中.
  • 测试团队可以轻松创建的测试
  • 测试可以记录一次然后自动化
  • 在小型化妆品改变现场后不会破坏的测试

从Selenium-IDE天真地生成的XPath表达式(或其他可能的表达式,如jQuery选择器)通常是不可重复的并且非常脆弱.相反,让JS代码为页面上的每个重要DOM元素生成特殊的唯一ID值...好吧,这是它自己的头痛,复杂的可重用GUI组件和ID需要在测试重新进行时保持一致跑.

其他人对这种事情有什么成功?如何对丰富的JS接口进行自动化应用程序级测试?

限制

  • 我们正在使用JavascriptMVC 2.0,希望很快3.0,以便我们可以升级到jQuery 1.4.x.
  • 测试人员大多受过训练,使用Selenium IDE直接记录事物.
  • 测试主管更喜欢页面上每个可点击元素的页面唯一HTML ID ...
  • 训练测试人员编写或更改特殊表达式(例如告诉他们哪些HTML类名称是重要的分支点)是不行的.
  • 我们尝试制作可重用的javascript组件,但这意味着很少有GUI组件可以将自己(或它们包含的内容)视为唯一.
  • 我们的一些组件已在其操作中使用HTML ID值.无论如何,我想避免这样做,但它使基于ID的测试的想法复杂化.
  • 可以向Selenium-IDE安装测试人员使用添加自定义工具(如定位器构建器或新定位器方法).
  • 从传统的浏览器角度来看,几乎所有发生的事情都发生在单个"页面加载"中,即使项目被保存也是如此

目前的想法

我正在考虑一个系统,其中Selenium-IDE的自定义定位器构建器(javascript代码)将与测试人员正在录制的应用程序代码进行通信.通过这种方式,我们的应用程序成为为任何给定DOM元素生成大多数灵活的表达式(XPath或jQuery)的部分责任.虽然这可以避免对测试人员进行更多的培训,但我担心这可能是过度思考的事情.

Sam*_*amo 0

不能将 css 选择器与 Selenium 一起使用吗?这似乎比使用 XPath 更简单一些。

http://saucelabs.com/blog/index.php/2010/01/selenium-totw-css-selectors-in-selenium-demystified/