【问题标题】:How to create functional / UI-Tests for an existing web application如何为现有的 Web 应用程序创建功能/UI 测试
【发布时间】:2013-03-18 12:49:45
【问题描述】:

我有一项有趣的任务,即为从未进行过单元或集成测试的现有 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 中

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

提前致谢!

【问题讨论】:

    标签: asp.net testing selenium automated-tests jasmine


    【解决方案1】:

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

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

    其中一个是 JavaScript:

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

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

    我不确定我是否理解您为什么必须在 JavaScript 中执行此操作,尤其是我可以看到这严重限制了您的选择。

    【讨论】:

    • JavaScript 不是必须的,但我觉得用 js 编写 Web 测试很自然(元素选择的 jQuery 语法,...)。欢迎提出其他建议。
    • @p0wl,这是有道理的。然而,通过 jQuery 选择元素并不是唯一的方法,尽管 jQuery 选择器可能会为您提供 99% 的需求。
    【解决方案2】:

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

    关于自动化测试,here's my opinions

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

    【讨论】:

      【解决方案3】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2021-12-18
        • 2012-03-15
        • 2019-06-14
        • 1970-01-01
        • 2010-11-21
        • 2019-02-15
        • 2011-10-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多