繁体   English   中英

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

[英]Using Selenium-IDE with a rich Javascript application?

问题

在我的工作场所,我们正在努力寻找为几乎完全由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)的部分责任。 虽然这可以避免对测试人员进行更多的培训,但我担心这可能是过度思考的事情。

录制和播放不适用于大规模测试。 它可能适用于烟雾测试和小型重复性任务。

尝试使用基于CSS的选择器来解决这个问题,而不是尝试生成唯一ID。 生成唯一ID是理想的目标,但我认为在所有实际情况下都不可能。

如果您尝试查找自定义定位器,最好查看BDD。

你不能用selenium的css选择器吗? 这似乎比使用XPath更直接。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM