【问题标题】:Black/gray-box testing of REST API and UIREST API 和 UI 的黑盒/灰盒测试
【发布时间】:2014-09-22 14:52:04
【问题描述】:

我们正在选择在我们公司开始使用(切换)自动化验收测试的系统。 目前大部分后端测试用例都是由我们以前的测试人员用 Python 编写的,对于新的测试人员来说,使用和维护起来很困难;对于 UI,我们使用 Robot framework

我想使用一些标准的东西,以便新的“街头典型测试人员”可以开始使用,但它应该非常灵活。

在我以前的工作中,测试人员使用 SoapUI 甚至 Apache JMeter 和 Groovy 脚本,但由于某些原因,我现在公司的人不喜欢它。

我们正在考虑Fitnesse 或Robot 框架。

要求:

  • 它应该用于后端(REST API、一些数据库检查)和 UI 测试
  • 它应该使用简单的语言,这样即使非程序员/测试人员也能理解测试用例(产品负责人应该能够查看是否涵盖了所有验收标准)
  • 它应该支持与 Jenkins 的集成
  • 它应该支持测试用例的版本控制,这样对于特定的产品版本,我们也可以检查相关的测试用例 现在我们使用TestRail(测试用例管理软件);所以如果它与它集成(至少可以对其进行编程以便在那里发送测试结果)或完全替换它会很好

我很快就玩了 Fitnesse,对我来说,表格形式看起来很丑。乍一看,文档也不是很好(我没有找到可能的“命令”,例如断言,一些循环)和文档,例如RestFixture 更糟糕(没有)。

我也没有看到任何用于数据库检查的装置。因此,最终需要开发人员参与编程和维护一些自定义装置,在我看来,使用我们自己开发的 Python 测试套件看起来更糟。

有什么想法、经验吗?

谢谢, 拉德克

PS:我也在 QA 论坛上问过这个问题,但它比 StackOverflow 活跃得多,因此很抱歉重复。

【问题讨论】:

    标签: testing fitnesse robotframework acceptance-testing


    【解决方案1】:

    我之前遇到过几乎类似的情况。我们必须在 RF、fitnesse 和 IBM 的 STAF/STAX 之间做出选择

    我们选择了 Robot Framework,它运行良好。

    1. 它应该用于后端(REST API,一些数据库检查)和 UI 测试 - 对于 REST,RF 的 requests 库以及各种 DB 库可以一起使用。
    2. 它应该使用简单的语言,这样即使非程序员/测试人员也可以 了解测试用例(产品负责人应该能够看到 是否涵盖所有验收标准)- RF 正是为了做到这一点。
    3. 它应该支持与 Jenkins 的集成 - RF 有一个 jenkins 插件
    4. 它应该支持测试用例的版本控制,这样对于特定的 产品版本我们现在也可以查看相关的测试用例 - RF 的tags 功能可以很好地解决这个问题

    存在一个机器人框架API,因此它可以根据集成要求进行编程。

    【讨论】:

      【解决方案2】:

      我无法谈论 Fitnesse 的使用,但 robot framework 可以满足您的所有要求,甚至更多。我为我的项目选择它的原因如下:

      1. 您可以对基于SOAPREST 的服务、数据库验证、web-based UI testing 甚至desktop application testing 使用单一工具(因此也可以使用单一报告格式)。它也可以用于集成和单元测试,尽管通常有更好的工具来完成这项工作。
      2. 您可以使用机器人测试通过Dialogs 库或自定义库来实现手动测试。我已经看到,当他们运行用机器人编写的手动测试时,测试人员的吞吐量显着提高,而不是运行用 Microsoft Word 编写的类似测试。不幸的是,网络上没有太多关于这个强大功能的文章,但您可以为所有验收测试(手动和自动)获得相同类型的报告、版本控制、标记等功能。
      3. 如果您花时间创建一个好的关键字库,非测试人员可以轻松阅读(和编写!)测试
      4. 有一个robot plugin for jenkins 让浏览测试结果变得容易
      5. 机器人框架测试套件是 plain text files,因此可以与您的代码一起对它们进行版本控制。
      6. 测试输出是一个非常易于理解和解析的 XML 文件。它还可以生成xunit-style output 以与其他工具集成。 Robot 还附带了用于将此 xml 转换为对人类友好的日志和报告的工具。 listener interface 可以轻松捕获或流式传输实时测试结果。
      7. 越来越多的tools and editor plugins 与Robot 配合使用,因此您的团队成员可以使用他们最熟悉的工具。
      8. Robot 是 very extensible -- 关键字库几乎可以用任何语言编写 -- 如果您使用 jython 运行,则可以在本地使用 python 和 java,如果使用 IronPython 运行,则可以使用 .NET 语言。使用remote library interface,您可以使用任何可以打开套接字并充当服务器的语言编写关键字。

      至于 DB 测试的固定装置,有一个通用的 java-based database library 和一个通用的 python based database library,可以连接到几乎任何通用数据库。还有一个专门用于与MongoDB 交谈的库。

      与您关于版本控制的问题有关,robot 有一个非常强大的tagging mechanism,您可能会发现它很有用。例如,您可以将所有测试标记为与它们一起使用的产品版本。然后,您只需检查所有内容,但使用 robotscommand-line options 仅选择带有特定版本标记的测试。作为标记的附带好处,报告按标记分解通过/失败统计信息。

      Robot 不是一个完美的测试系统,但它是一个非常好的系统。我认为有许多同样优秀的测试框架,但我不确定客观上是否有更好的测试框架。当然,对于您列出的对您很重要的事情,机器人框架可以满足您的一切需求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多