测试Graphql Api性能

时间:2017-11-02 17:54:38

标签: javascript node.js api backend graphql

我正在使用graphql重构我的nodejs api中的一些核心功能。 Api用作代理,从多个源接收请求,并根据请求将它们传递给多个api。 我想知道如何进行一些整体性能测试,比较当前的api版本性能和性能之后我做重构,看看我是否至少没有降低性能?

4 个答案:

答案 0 :(得分:1)

您可以对api端点进行压力测试以比较结果。

使用Loader.io可能是您最好的方法。 https://loader.io/

多次注意文本并清除每次测试的缓存。

答案 1 :(得分:1)

你有没有看过Apollo Engine,这是一个很棒的GraphQl分析平台,来自制作Apollo Client的人。易于安装和免费。本周发布。 https://dev-blog.apollodata.com/introducing-apollo-engine-insights-error-reporting-and-caching-for-graphql-6a55147f63fc

答案 2 :(得分:-1)

您可以尝试easygraphql-load-tester;它将为您创建所有查询,只需传递模式和参数即可!

Here是使用Artillery.io的示例,而here是使用K6的另一个示例

通过此负载测试,可以确定服务器上数据加载器的错误实现

没有数据加载器的结果

All virtual users finished
Summary report @ 10:07:55(-0500) 2018-11-23
  Scenarios launched:  5
  Scenarios completed: 5
  Requests completed:  295
  RPS sent: 36.88
  Request latency:
    min: 1.6
    max: 470.9
    median: 32.9
    p95: 233.2
    p99: 410.8
  Scenario counts:
    GraphQL Query load test: 5 (100%)
  Codes:
    200: 295

数据加载器的结果

All virtual users finished
Summary report @ 10:09:09(-0500) 2018-11-23
  Scenarios launched:  5
  Scenarios completed: 5
  Requests completed:  295
  RPS sent: 65.85
  Request latency:
    min: 1.5
    max: 71.9
    median: 3.3
    p95: 19.4
    p99: 36.2
  Scenario counts:
    GraphQL Query load test: 5 (100%)
  Codes:
    200: 295

答案 3 :(得分:-1)

我也尝试了 easygraphql-load-tester 但它真的没有帮助。我们使用 Jmeter 检查 GraphQL API 的负载测试。它真的对我们有帮助,您可以获得准确的响应,api通过计数,api失败计数,甚至您可以获得excel表格格式的数据,并且添加不同的变量您可以创建excel文件并导入其中。 甚至我们可以在其中生成图表来检查 api 性能。