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



在我们的项目中,我们需要自动化用Node.js编写的API,它使用GraphQL和REST,为此我们必须开发一个API自动化框架,它必须支持(同步,异步调用)。

是否有任何好的实践设计模式来设置 API 自动化框架?

严格来说,仅就设计模式而言:您可以使用 Builder 模式并以单一责任原则为后盾。

就个人而言,在我们的组织中,我们使用RestAssured驱动的框架和Builder模式方法。

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

如果您打算像我们一样使用TestNG,那么您可以拥有一个带有单独DataProvider类的测试类,这有助于代码分离和简化调试。

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

Cucumber.js是行为驱动开发框架之一,可以使API测试具有可读性和可管理性。

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

在 Node 中发出 HTTP 请求的 5 种方法.js

有一些关于API测试以及Cucumber.js框架的示例。

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

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

该设计将非常特定于您的项目。

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

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

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

在开始测试用例之前,拥有一个健全的测试用例,就像所有服务一样,都应该启动并运行。

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

为什么你应该选择它: 摩卡可以在任一节点上运行.js也可以在浏览器中运行。与其他 JavaScript 测试框架(如 Jasmine)相比,您可以看到 Mocha 对异步测试的处理是选择它的关键因素。在测试 API 时,我们需要将一些数据发送到终结点,并使用返回的数据调用另一个终结点。例如,我们需要获取一个用户,然后获取该用户的 ID 以获取属于该用户的所有位置。

柴 与 Jasmine 不同,必须使用额外的断言库来补充 Mocha。Chai 是一个断言库,可让您选择最喜欢的断言接口,包括"断言"、"期望"和"应该"。

为什么你应该选择它:虽然Mocha可以与任何断言库一起使用,Chai可以与任何javascript测试框架一起使用,但许多javascript开发人员选择将它们一起使用。我们可以使用 Chai 的"期望"接口将自然语言断言链接在一起,这样我们就可以彻底测试从 API 端点返回的 JSON。

参考 : 欲了解更多信息,请参阅此处

最新更新