我正在为RESTful API测试自动化编写一个框架,我已经决定使用REST Assured,我不是百分之百确定添加一个层来允许使用像Gherkin这样的特定于域的语言来定义测试,因此添加一个像BDD这样的框架黄瓜。你有什么意见? 在API自动化测试中使用BDD是一种很好的方法吗?
我目前正在使用BDD进行Rest API测试。以下是BDD Rest API Automation框架的优缺点。
技术我们使用:Cucumber,Java,Rest-Assured和junit
利弊是我自己的评论或个人观点。这是基于我的经验。
优点:
缺点:
请随意编辑或建议任何需要添加或删除的内容。我希望它会对你有所帮助。
我认为使用BDD总是一种很好的方法(在测试自动化方面)。
BDD就像是一个桥梁,在您的测试框架中具有更高的抽象层次。而是或者读取该方法中正在发生的事情的测试代码 - 这应该足以读取该方法的行为定义。
不,它不是一个很好的API测试方法,甚至对于UI测试来说,很多东西都必须“排队”才能让你成功使用BDD。
我已经写了一个详细的解释作为Stack Overflow上另一个问题的答案,这里是链接:
几年前,我确实为客户设计了自动UI测试和BDD(Concordion)。更大的挑战是,仍然是带有div和其他标签的HTML代码,可以在网页设计时轻松更改。对于BDD解决方案,还应该决定他们最喜欢什么,FIT,Cucumber,Concordion ......还有几种解决方案。
这取决于您的项目,如果您的项目很大并且日益变大并且您想要最大程度的集成或功能测试覆盖,那么我建议您使用BDD。在这种情况下,您必须仅为每个模块化任务定义步骤定义,并使用要素文件中的步骤定义创建测试用例。
我使用BDD从事过去3年的API自动化工作。这是一个非常简单和可重复使用的概念,即使对非技术人员也能给予任何人清晰的视野。我们在这里维护的唯一部分是标题数据,其中包括用于维护会话的标头和cookie。
我必须建议这种方法,因为它确实是面向结果的,易于维护和重用。
用硒实现了黄瓜:Java,TestNG框架以及SpecFlow,NUnit,Selenium:POM和Extent Reports框架。根据我过去的经验,这提供了扩大业务用户和没有技术开发背景的中小企业的投入和反馈的能力。通过这种扩展的反馈,我们能够更快,更好地提供。在UAT和发布期间没有或没有意外,因为应用程序代码是功能文件的派生而不是对需求的解释。这使得持续集成和部署更快。我期待在我目前的项目中实现这一点。