【问题标题】:Automated Testing Framework自动化测试框架
【发布时间】:2012-02-25 17:56:30
【问题描述】:

我正在尝试为我们工作中的一些内部 Web 服务 (java) 构建一个自动化测试框架。每个服务都有一组 API (3-5),虽然这可能相对容易实现,但问题在于一些不表现为纯函数的 API,例如:像 persistX 这样的东西,它可以在数据库中存储一些东西,并且在失败的情况下返回异常。 因为这里没有输出,所以没有简单的方法来验证。

所以我想知道这是否可以概括一点,比如在测试 API 时,用户可以向某种框架提供一个简单的插件或脚本来验证测试。如果有人可以告诉我一些更好的想法或任何相同的资源,这只是一个想法。

谢谢

【问题讨论】:

    标签: java testing frameworks automated-tests


    【解决方案1】:

    我推荐robot framework。它是一个用python编写的关键字驱动框架。因此,您可以使用 jython 在 JVM 中运行它,这意味着您可以使用 java 代码(当然也可以是 python)对其进行扩展。我已经成功地使用它来调用 API,然后通过查看数据库或查询文件系统来验证结果。

    它也适用于 .NET 平台,具有用于测试前端的 selenium 模块、jenkins 插件和其他几个工具。它非常可扩展和灵活。

    【讨论】:

      【解决方案2】:

      您正在查看的是黑盒和白盒测试的应用以及支持两者的工具。

      对于返回正确响应的 Web 服务,您可以通过验证返回响应中的数据来执行黑盒测试。 SoapUI 是最好的工具。

      对于不表现为纯函数的 API,您可以通过验证其副作用(如持久性、事件生成、日志记录等)来进行白盒测试。为此,您喜欢可编程工具和 SoapUI可能是也可能不是正确的选择。

      我们在工作中和在评估多个工具/框架(SoapUI、RSSPec、Robotframework)之后,我选择了Spock。为什么是斯波克?

      1. 它允许您以 BDD 风格编写意图揭示测试
      2. 我们是 Java 商店,我们也希望使用同样熟悉的语言进行自动化,但使用简化的语法糖。 spock 都是基于 groovy 的。
      3. 出色的 Webdriver/Selenium 2 支持(包括 PageFactory)与 Geb
      4. 它建立在 JUNIT 之上,因此可以利用 JUNIT 的所有插件(代码覆盖率、hudson/jenkins 集成等)
      5. 大量的 Web 服务 API 和 XML DSL(对于简单的场景无需使用 XPATH)
      6. 简化设置(与 robotsframework 不同,它不需要 python、jython 设置)

      等等……

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-09
        • 1970-01-01
        • 1970-01-01
        • 2010-09-12
        • 2023-02-11
        • 1970-01-01
        • 1970-01-01
        • 2018-01-29
        相关资源
        最近更新 更多