Rav*_*ior 5 jmeter performance-testing graphql
今天,当服务器是 REST API 时,我正在使用 Jmeter 进行 API 自动化测试和性能测试。
现在开发改为graphQL API,我有两个问题:
我使用Apollo构建 GraphQL 服务器,并使用 JMeter 查询 GraphQL API,如下所示。
根据您的应用程序,您可能还需要为 JWT Web 令牌设置 HTTP 标头授权,例如:
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)
免责声明:我为 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)
研究GraphQL 文档的Serving over HTTP部分
当接收到 HTTP GET 请求时,应在“query”查询字符串中指定 GraphQL 查询。
因此,您只需将 GraphQL 查询附加到请求 URL 即可。
关于“最佳实践” - 您应该遵循 Web 应用程序和 HTTP API 测试的“正常”建议,例如查看REST API 测试 - 如何正确执行文章。