3

我有一项有趣的任务,即为从未进行过单元或集成测试的现有 Web 应用程序构建复杂的工作流测试(所有测试均由开发人员/用户进行,没有结构或指南)。

设置

目标是一个已构建多年的 ASP.NET(无 MVC)Web 应用程序。没有干净的 MVC 或任何其他模式,因此 HTML 输出非常糟糕(生成的 ID、没有太多 css 类、行 css 样式 --> 难以测试)。该应用程序是以数据为中心的,因此需要进行很多测试,并且数据库的状态对于测试非常重要。

我正在考虑以下工作流程: 1. 重置数据库以测试开始数据 2. 运行通过模拟用户交互创建和测试数据的测试

工具

我在玩 Selenium IDE,但感觉不够结构化。我梦想有一个工具集,我可以在其中用(文学)coffeescript / javascript编写测试,可以在浏览器中执行(不需要无头测试),但我能找到的所有工具都旨在测试javascript函数而不是用户互动。

我的测试步骤需要是:

  1. 页面加载
  2. 通过搜索文本 A 或计算 ul B 中的元素来测试页面是否已正确加载
  3. 单击按钮 C,等待弹出窗口 D,在字段 E 中键入文本
  4. 单击保存按钮并检查字段 E 中的文本是否显示在元素 F 中

茉莉花能够测试这些用户交互吗?我只能找到针对 javascript 函数或 HTML 元素存在的 jasmine 测试,而不是针对具有相互依赖的测试步骤的复杂工作流程。

提前致谢!

4

3 回答 3

3

Selenium IDE 不是解决这个问题的方法。

Selenium 建立在 WebDriver JSON Wire Protocol 之上。拥有这个“基础”意味着它可以很容易地插入到许多不同的语言中,所有语言都使用相同的 API。

其中之一是 JavaScript:

https://code.google.com/p/selenium/wiki/WebDriverJs

免责声明:JS 绑定是非常新的!

我不确定我是否理解你为什么必须用 JavaScript 来做,尤其是我可以看到这严重限制了你的选择。

于 2013-03-18T12:56:44.687 回答
0

我建议IBM Rational Functional Tester。它是基于java的,使其非常可扩展。它不是 Javascript,因此请注意测试是用 Java 代码编写的。大多数情况下都有一个记录器:您只需单击周围,它就会记录您的操作。

关于使用它的自动化测试,这是我的意见

它是一种商业产品。我不隶属于 IBM,但我经常使用 RFT。

于 2013-03-19T13:10:19.527 回答
0

您可能希望查看RIATest以对 Web 应用程序进行跨平台跨浏览器测试。它使用与 JavaScript 非常相似的基于 ECMAScript 的脚本语言。

它适用于 Windows 和 Mac,支持的浏览器是 Firefox、IE 和 Chrome。在一个平台/浏览器上编写的自动化测试脚本可以针对所有其他支持的平台/浏览器运行。

当然可以自动化您描述的步骤。动态生成的 ID 并不好,但您应该能够使用其他属性(例如文本、元素类型等)来识别您想要自动化和测试的 HTML 对象。

(免责声明:我是 RIATest 团队成员)。

于 2013-03-20T12:48:53.200 回答