Skip to content

An artillery engine to run load testing for GraphQL subscriptions

Notifications You must be signed in to change notification settings

zoheirkhonyagar/artillery-engine-graphql-ws

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

artillery-engine-graphql-ws

installation

artillery

npm install -g artillery

engine

npm install -g artillery-engine-graphql-ws

after install make sure to add graphql-ws as engine to your .yml file like this example:

# simple-socketio-load-test.yaml
config:
  target: 'ws://localhost:4001/graphql'
  phases:
    - duration: 20 # Test for 60 seconds
      arrivalRate: 10 # Every second, add 10 users
      rampTo: 10 # And ramp it up to 100 users in total over the 60s period
      name: 'Ramping up the load'
    - duration: 30 # Then resume the load test for 120s
      arrivalRate: 10 # With those 100 users we ramped up to in the first phase
      rampTo: 10 # And keep it steady at 100 users
      name: 'Pushing a constant load'
  engines:
    'graphql-ws': {}
scenarios:
  - name: 'load testing subscription'
    engine: graphql-ws
    flow:
      - send:
          {
            'id': '1',
            'type': 'start',
            'payload':
              {
                'variables':
                  { 'input': { 'symbol': 'example', 'timeFrame': 'example' } },
                'extensions': {},
                'operationName': 'getRealExample',
                'query': "subscription getRealExample($input: getRealExampleInput!) {\n  getRealExample(input: $input) {\n    Close\n    close\n    data\n    name\n    __typename\n  }\n}\n",
              },
          }
      - think: 15 # Every connection will remain open for 15s
      - send: { 'id': '1', 'type': 'end' }

About

An artillery engine to run load testing for GraphQL subscriptions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published