graphQL API 的性能测试

Rav*_*ior 5 jmeter performance-testing graphql

今天,当服务器是 REST API 时,我正在使用 Jmeter 进行 API 自动化测试和性能测试。

现在开发改为graphQL API,我有两个问题:

  1. 执行自动化 API 和性能测试的最佳方法是什么?
  2. Jmeter 是否支持 graphQL API?

Yuc*_*uci 6

我使用Apollo构建 GraphQL 服务器,并使用 JMeter 查询 GraphQL API,如下所示。

1.设置HTTP请求

在此处输入图片说明

2.设置HTTP头

在此处输入图片说明

根据您的应用程序,您可能还需要为 JWT Web 令牌设置 HTTP 标头授权,例如:

Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)

3. 如果您的应用程序需要,请设置 HTTP Cookie

4. 运行测试

在此处输入图片说明


ppc*_*ano 5

免责声明:我为 LoadImpact 工作;k6背后的公司。

如果您愿意考虑替代方案,我最近写了一篇关于此主题的博客文章:使用 k6 对 GraphQL 进行负载测试

这是一个 k6 示例的样子:

let accessToken = "YOUR_GITHUB_ACCESS_TOKEN";

let query = `
 query FindFirstIssue {
   repository(owner:"loadimpact", name:"k6") {
     issues(first:1) {
       edges {
         node {
           id
           number
           title
         }
       }
     }
   }
 }`;

let headers = {
 'Authorization': `Bearer ${accessToken}`,
 "Content-Type": "application/json"
};

let res = http.post("https://api.github.com/graphql",
 JSON.stringify({ query: query }),
 {headers: headers}
);
Run Code Online (Sandbox Code Playgroud)


Dmi*_*i T 2

研究GraphQL 文档的Serving over HTTP部分

当接收到 HTTP GET 请求时,应在“query”查询字符串中指定 GraphQL 查询。

因此,您只需将 GraphQL 查询附加到请求 URL 即可。

JMeter 查询 GraphQL

关于“最佳实践” - 您应该遵循 Web 应用程序和 HTTP API 测试的“正常”建议,例如查看REST API 测试 - 如何正确执行文章。