Testing RESTAPI和UI的黑/灰盒测试

Testing RESTAPI和UI的黑/灰盒测试,testing,fitnesse,robotframework,acceptance-testing,Testing,Fitnesse,Robotframework,Acceptance Testing,我们正在选择在我们公司开始使用(交换机)的自动验收测试系统。 目前大多数后端测试用例都是由我们以前的测试人员用Python编写的,对于新的测试人员来说,很难使用和维护它;对于UI,我们使用 我想使用一些标准的东西,这样新的“来自街头的典型测试人员”就可以开始使用了,但它应该是非常灵活的 在我以前的工作中,测试人员使用SoapUI甚至ApacheJMeter编写Groovy脚本,但出于某些原因,我现在公司的人不喜欢它 我们正在考虑机器人框架 要求: 它应该用于后端(RESTAPI,一些DB检查)

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

我想使用一些标准的东西,这样新的“来自街头的典型测试人员”就可以开始使用了,但它应该是非常灵活的

在我以前的工作中,测试人员使用SoapUI甚至ApacheJMeter编写Groovy脚本,但出于某些原因,我现在公司的人不喜欢它

我们正在考虑机器人框架

要求:

  • 它应该用于后端(RESTAPI,一些DB检查)和UI测试
  • 它应该使用一种简单的语言,这样即使是非程序员/测试人员也可以理解测试用例(产品所有者应该能够看到是否涵盖了所有验收标准)
  • 它应该支持与Jenkins的集成
  • 它应该支持测试用例的版本控制,以便对于特定的产品版本,我们也可以检查相关的测试用例 现在我们使用TestRail(测试用例管理软件);所以,如果它与它集成(至少可以对它进行编程以便将测试结果发送到那里)或者完全替换它,那就太好了
我很快就和Fitnesse玩了起来,对我来说,表格的形式看起来很难看。另外,乍一看,文档并不好(我没有找到可能的“命令”,例如断言、一些循环)和文档,例如RestFixture更糟糕(没有)

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

有什么想法、经验吗

谢谢, 拉德克


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

我之前也遇到过类似的情况。我们必须在RF、fitnesse和IBM的STAF/STAX之间做出决定

我们选择了机器人框架,它工作得很好

  • 它应该用于后端(RESTAPI,一些DB检查)和UI 测试-对于REST,RF库和各种DB库可以一起使用
  • 它应该使用一种简单的语言,这样即使是非程序员/测试人员也可以 了解测试用例(产品所有者应该能够看到 无论是否涵盖所有验收标准)-RF的目的正是要做到这一点
  • 它应该支持与Jenkins的集成-RF有一个插件
  • 它应该支持测试用例的版本控制,以便 产品版本我们现在也可以查看相关的测试用例-RF的功能将很好地用于此

  • 存在一个robot框架,因此它可以根据集成要求进行编程。

    我不能谈论fitnesse的使用,但它满足了您的所有要求和更多要求。我为我的项目选择它,原因如下:

  • 您可以使用单个工具(因此也可以使用单个报告格式)进行基于和的服务、数据库验证,甚至。它也可以用于集成和单元测试,尽管通常有更好的工具来完成这项工作
  • 您可以使用robot测试来使用库或自定义库实现手动测试。我已经看到,当测试人员运行用robot编写的手动测试时,测试人员的吞吐量比运行用Microsoft Word编写的类似测试时有了显著的提高。不幸的是,关于这个强大的功能,网上没有太多的文章,但是你可以在所有的验收测试中获得相同的报告、版本控制、标记等功能,包括手动和自动
  • 如果您花时间创建一个好的关键字库,那么非测试人员可以很容易地读取(和编写!)测试
  • 有一种方法可以使浏览测试结果变得容易
  • Robot框架测试套件是可用的,因此它们可以与您的代码一起进行版本控制
  • 测试输出是一个非常容易理解和解析的XML文件。它还可以生成与其他工具的集成。Robot还提供了将xml转换为人性化日志和报告的工具。这样可以轻松捕获或流式传输实时测试结果
  • 越来越多的人使用机器人,因此您的团队成员可以使用他们最熟悉的工具
  • Robot是——关键字库几乎可以用任何语言编写——python本机编写,如果使用jython运行,则可以用java编写;如果使用IronPython运行,则可以用.NET语言编写。使用,您可以用任何可以打开套接字并充当服务器的语言编写关键字
  • 至于DB测试的fixture,有一个泛型,一个泛型可以连接到几乎任何公共数据库。还有一个图书馆专门用来和你交谈

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

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