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

问题描述 投票:2回答:7

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

rest cucumber bdd web-api-testing
7个回答
3
投票

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

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

利弊是我自己的评论或个人观点。这是基于我的经验。

优点:

  • 使用Gherkin语言轻松编写功能文件
  • 覆盖验收标准非常容易
  • 团队中的每个人(包括团队)都可以帮助您编写功能文件
  • 非常好的报告格式和调试失败
  • 在夜间或常规构建期间易于执行
  • 集成测试非常简单,因为您可以使用Gherkin语言的Background或Given等功能

缺点:

  • 当公司中的其他团队成员需要测试用例或任何文档而不是你的答案将是“我们有Gherkin语言的场景”并且有时难以理解/解释场景,因为没有明确的步骤,如传统的步骤定义或大文档
  • 高级管理层有时间了解HP ALM Coverage报告等测试产品的融合。
  • 对于那些多年来编写测试用例的人来说,为少数冲刺编写一点困难。

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


4
投票

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

  1. 易于与其他开发者分享。一组人类可读的场景将更快地进入绳索。
  2. CI与BDD集成将使故障调查更容易。
  3. 易于维护和重构,因为您的方法名称不仅仅是“assertUserHasRoLe”f.e。而且还有商业上有意义的文字

BDD就像是一个桥梁,在您的测试框架中具有更高的抽象层次。而是或者读取该方法中正在发生的事情的测试代码 - 这应该足以读取该方法的行为定义。


0
投票

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

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

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


0
投票

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


0
投票

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


0
投票

我使用BDD从事过去3年的API自动化工作。这是一个非常简单和可重复使用的概念,即使对非技术人员也能给予任何人清晰的视野。我们在这里维护的唯一部分是标题数据,其中包括用于维护会话的标头和cookie。

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


-1
投票

用硒实现了黄瓜:Java,TestNG框架以及SpecFlow,NUnit,Selenium:POM和Extent Reports框架。根据我过去的经验,这提供了扩大业务用户和没有技术开发背​​景的中小企业的投入和反馈的能力。通过这种扩展的反馈,我们能够更快,更好地提供。在UAT和发布​​期间没有或没有意外,因为应用程序代码是功能文件的派生而不是对需求的解释。这使得持续集成和部署更快。我期待在我目前的项目中实现这一点。

© www.soinside.com 2019 - 2024. All rights reserved.