在API自动化测试中使用BDD是一个很好的方法吗?

时间:2015-12-05 16:23:09

标签: rest cucumber bdd web-api-testing

我正在为RESTful API测试自动化编写一个框架,我已经决定使用REST Assured,我不是百分之百确定添加一个层来允许使用像Gherkin这样的特定于域的语言来定义测试,因此添加了像Cucumber这样的BDD框架。 你有什么看法?
在API自动化测试中使用BDD是一种很好的方法吗?

7 个答案:

答案 0 :(得分:4)

我认为使用BDD始终是一种很好的方法(在测试自动化方面)。

  1. 轻松与其他开发者分享。一组人类可读的场景将更快地进入绳索。
  2. CI与BDD集成将使故障调查更容易。
  3. 易于维护和重构,因为您的方法名称不仅仅是“assertUserHasRoLe”f.e。还有商业意义的文字
  4. BDD就像是一个桥梁,在您的测试框架中具有更高的抽象层次。而是或者读取该方法中正在发生的事情的测试代码 - 这应该足以读取该方法的行为定义。

答案 1 :(得分:3)

我目前正在使用BDD进行RestAPI测试。以下是BDD RestAPI Automation框架的优缺点。

技术我们使用:Cucumber,Java,Rest-Assured和junit

以下优点和缺点是我自己的评论或个人观点。这是基于我的经验。

优点:

  • 使用Gherkin语言轻松编写功能文件
  • 很容易涵盖验收标准
  • 团队中的每个人(包括团队)都可以帮助您编写功能文件
  • 非常好的报告格式和调试失败
  • 在夜间或常规构建过程中轻松执行
  • 集成测试非常简单,因为您可以使用背景或给定以及Gherkin语言的其他功能

缺点:

  • 当公司中的其他团队成员需要测试用例或任何文档而不是你的回答时,我们会有Gherkin语言的情景"并且有时很难理解/解释方案,因为没有明确的步骤,如传统的步骤定义或大文档

  • 高层管理人员有时间了解HP ALM Coverage报告等测试产品的融合。

  • 对于那些多年来编写测试用例的人来说,为少数冲刺写一点是很难的。

请随意编辑或建议任何需要添加或删除的内容。我希望它会对你有所帮助。

答案 2 :(得分:0)

不,它是一个很好的API测试方法,甚至对于UI测试来说,很多事情必须“排队”才能让您成功使用BDD。

我已经写了一个详细的解释作为Stack Overflow上另一个问题的答案,这里是链接:

https://stackoverflow.com/a/47799207/143475

答案 3 :(得分:0)

几年前,我确实为客户设计了自动化UI测试和BDD(Concordion)。更大的挑战是,仍然是带有div和其他标签的HTML代码,可以在网页设计时轻松更改。 对于BDD解决方案,还应该决定他们最喜欢什么,FIT,Cucumber,Concordion ......还有几种解决方案。

答案 4 :(得分:0)

这取决于您的项目,如果您的项目很大并且日益变大并且您想要最大程度的集成或功能测试覆盖,那么我建议您使用BDD。在这种情况下,您必须仅为每个模块化任务定义步骤定义,并使用要素文件中的步骤定义创建测试用例。

答案 5 :(得分:0)

最近3年来,我一直在使用BDD进行API自动化。这是一个非常简单且可重用的概念,即使对于非技术人员也可以给任何人一个清晰的视野。我们在这里维护的唯一部分是标头数据,其中包括用于维护会话的标头和cookie。

我必须建议这种方法,因为它实际上是面向结果的,并且易于维护和重用。

答案 6 :(得分:-1)

已经用硒实现了黄瓜:Java,TestNG框架以及SpecFlow,NUnit,硒:POM和范围报告框架。 根据我过去的经验,它提供了扩大没有技术开发背​​景的业务用户和中小企业的输入和反馈池的能力。有了更多的反馈,我们能够更快更好地交付。在UAT和发布​​期间,惊喜很少或没有惊喜,因为应用程序代码是功能文件的派生产品,而不是要求的解释。 这使得持续集成和部署的速度更快。我期待在当前项目中实现这一目标。