GraphQL API - 任何用于测试它的自动化工具?

GraphQL API - any automation tool for testing it?

我想测试 GraphQL API。 现在,我正在使用 GraphiQL,但我正在寻找任何自动化工具...... 好像SOAPUI不支持GraphQL测试

有什么想法吗?

谢谢。

您具体要测试什么?

我们在每个构建中 运行 进行了许多自动完整性检查测试:

  1. 架构是否有效(根据 graphql-js)?如果您的实施允许例如,这可能很容易搞砸。同一类型名称的多个定义,或任何其他数量的细微错误。

  2. 这是一个破坏性的架构更改吗?如果是这样,请中断构建,除非有特定的 git 提交消息确认并接受它。使用 graphql-js 这相当容易 - 运行 针对当前生产的内省查询,运行 针对当前构建,并使用内置的 findBreakingChanges 函数。

请注意,graphql-js 测试并不意味着您的服务器必须用 JS 编写 - 我们的服务器是使用 ocaml-graphql-server 用 ReasonML 编写的,然后在构建时我们使用节点测试套件来像其他客户一样点击它。

最后,除此之外,我们还有一些 运行 queries/mutations 用于端到端 API 服务器测试的测试。总的来说,到目前为止,这对回归非常稳健。

请记住,您可以简单地使用任何 http 客户端访问您的 GraphQL 服务器,在您的测试套件中 没有 具有 GraphQL 意识。我会在上面提到的健全性检查之上推荐这条路线。

你基本上有几个我见过的选项:

  1. Apollo's GraphQL Platform。它为您提供了对个人解析器的全面遥测,并且可以与 VS Code 集成,让您的开发人员实时了解他们的查询有多昂贵。不过你会为此付出代价的。

  2. HoneyComb or DataDog等观察工具,也是付费的

  3. 自己写。对于足够简单的用例,它可能有意义,但如果您正在寻找丰富的功能集,购买而不是构建可能更有意义。

我使用的是 SoapUI 5.4.0(社区版),测试 GraphQL 请求没有问题。 将它们视为 Rest 请求并添加 header,例如Content-Type: application/graphql

有关所有详细信息,请参见图片。

空手道是唯一将 API test-automation、模拟和 performance-testing 组合到一个统一框架中的 open-source 工具。

https://github.com/intuit/karate

对于自动化测试,有 https://github.com/ohler55/graphql-test-tool/gtt。它是用 go 编写的,但作为一个独立的应用程序,它可以与任何 GraphQL 服务器一起使用。我们将它用于单元测试和 CI.