artillery-plugin-uuid

0.0.1 • Public • Published

artillery-plugin-uuid

A plugin for artillery.io that generates UUID (version 4) variables for use in script

To use:

  1. npm install -g artillery
  2. npm install -g artillery-plugin-uuid (omit -g if it will be loaded from the local node_modules directory)
  3. add uuid plugin to your hello.yml Artillery script:
config:
  plugins:
    uuid:
      vars: [ 'id1' , 'id2' ] # array of variable names 
  target: "https://aws.amazon.com"
  phases:
    -
      duration: 5 # time in seconds script will run 
      arrivalRate: 1 # requests/second 
scenarios:
  flow:
    options: # see footnote (a) 
       url: '/'
       beforeRequest: addUUID  # request-level hook. each call will reset variable values to a new UUID 
    post:
        url: '/{{ id1 }}' # {{ id1 }} replaced by UUID assigned to id1 
    get:
        url: '/{{ id1 }}' # {{ id1 }} replaced by UUID assigned to id1 
    post:
        url: '/{{ id2 }}' # {{ id2 }} replaced by UUID assigned to id2 
    get:
        url: '/{{ id2 }}' # {{ id2 }} replaced by UUID assigned to id2 
  1. create scenario-level (and sub-scenario-level) hooks wherever you would like UUID values to be regenerated (see footnote (b) for verbose explanation)
  2. artillery run hello.yml
footnotes

(a) VERY IMPORTANT! Variables are not avaiable in the flow entry that generates them. If you implement the hook within the post or get, artillery will not create the variable in time for use. Using options, we enable calling beforeRequest prior to entering the request bodies, and the variables are ready for use within requests.

(b) The level at which the hook is created determines the frequency at which the plugin is called. The example script generates a request-level hook. This creates one set of UUID's to be used for all requests within the flow. Generating a flow-level hook, on the other hand, will generate new UUID's with each new request.

Readme

Keywords

Package Sidebar

Install

npm i artillery-plugin-uuid

Weekly Downloads

28

Version

0.0.1

License

Apache-2.0

Last publish

Collaborators

  • danno