API自动化框架的最佳实践设计模式

时间:2017-05-26 11:24:36

标签: node.js rest graphql web-api-testing apollo-client

在我们的项目中,我们需要自动化用Node.js编写的API,它使用GraphQL和REST,因为我们必须开发一个必须支持(Sync,Async调用)的API Automation Framework。

设计模式是否有良好的设计模式来设置API自动化框架?

4 个答案:

答案 0 :(得分:1)

您可以考虑使用Cucumber.js以及一个流行的REST客户端软件包。

Cucumber.js是行为驱动开发框架之一,可以使API测试可读且更易于管理。

以下文章比较了几个可用于自动化RESTful API的包

5 Ways to Make HTTP Requests in Node.js

API测试以及Cucumber.js框架有一些samples

另外,要创建测试脚本,请考虑将CukeTest创作与Postman一起使用(提供良好的调试目的)

答案 1 :(得分:1)

严格地说,仅涉及设计模式:您可以使用Builder模式并得到单一责任原则的支持。

个人而言,在我们的组织中,我们使用带有构建器模式方法的 RestAssured 驱动的框架。

作为该结构的示例,我们有数据传输对象来保存API的请求和响应。然后,我们有专门用于实现API的实现类。

如果您打算像我们一样使用 TestNG ,则可以将测试类与单独的DataProvider类一起使用,这有助于代码分离和更轻松的调试。

答案 2 :(得分:0)

对于GraphQL API的集成测试,我使用了graphql-tester

设计将非常适合您的项目。

  1. 如果您拥有自己的API服务器,
    一种。调用API。
    b。您可以点击后端(DB)并检查数据库中期望的字段是否已更新。
    C。验证HTTP响应。

  2. 如果您为第三方API编写了包装器,请理解第三方API的响应并使用模拟服务器/ JSON服务器模拟它们。

对于集成测试(黑盒),在REST / GraphQL上无关紧要(一切都是HTTP调用)。尝试选择一种可以获取所有客户端(DB,HTTP等)的语言。

具有健全的测试用例,就像在启动测试用例之前所有服务都应已启动并正在运行。

答案 3 :(得分:0)

您可以使用mocha.js。根据官方网站的说法,“ Mocha是一个功能丰富的JavaScript测试框架,可在Node.js和浏览器上运行,从而使异步测试变得简单而有趣。Mocha测试以串行方式运行,可以灵活,准确地报告,同时将未捕获的异常映射到正确的测试用例。托管在GitHub上。”

为什么要选择它: Mocha可以在node.js或浏览器中运行。与Jasmine等其他JavaScript测试框架相比,您会发现Mocha对异步测试的处理是选择它的关键因素。在测试API时,我们需要向端点发送一些数据,然后使用返回的数据来调用另一个端点。例如,我们需要先获得一个用户,然后获取该用户的ID,以获取属于该用户的所有位置。

Chai 与Jasmine不同,必须使用附加的断言库来补充Mocha。 Chai是一个断言库,可让您选择最喜欢的断言接口,包括“声明”,“期望”和“应该”。

为什么要选择它:尽管Mocha可以与任何断言库一起使用,而Chai可以与任何javascript测试框架一起使用,但是许多javascript开发人员选择一起使用它们。我们可以使用Chai的“ expect”界面将自然语言断言链接在一起,因此我们可以彻底测试从API端点返回的JSON。

参考:更多see this