k6-templates

June 15, 2022 ยท View on GitHub

This repo contains various opinionated starter templates for k6 projects.

Common across all templates is the use of folders and multiple JavaScript files to encourage code organization:

  • common: A suitable location for storing re-usable functions
  • config: Contains a JSON file that is used to populate the options object at runtime (allowing the separation of test config from code)
  • scenarios: A folder for storing scripts representing end-to-end scenarios
  • scripts: A folder for storing code that performs the actual automation

Vanilla

This template uses built-in k6 APIs and therefore requires no external dependencies. Use this template if you prefer to use the built-in APIs over those provided by the other templates.

Httpx

This template uses the Httpx library to perform requests instead of the built-in k6/http module. Httpx caters for setting:

  • a base URL for all requests so that it can easily be changed (e.g. when testing different environments)
  • global request headers
  • a global request timeout

The template also includes an example re-usable function for performing response validation called verifyResponse.

k6chaijs

This template uses the ChaiJS library through k6chaijs to perform assertions instead of using the built-in group and check functions.