utils
Note
The source code for this library can be found in the grafana/k6-jslib-utils GitHub repository.
The utils module contains number of small utility functions useful in every day load testing.
| Function | Description | 
|---|---|
| check(val, sets, [tags]) | Drop-in replacement for
check with support for async values. | 
| randomIntBetween(min, max) | Random integer in a given range | 
| randomItem(array) | Random item from a given array | 
| randomString(length, [charset]) | Random string of a given length, optionally selected from a custom character set | 
| uuidv4() | Random UUID v4 in a string representation | 
| findBetween(content, left, right, [repeat]) | Extract a string between two surrounding strings | 
| normalDistributionStages(maxVUs, durationSeconds, [numberOfStages]) | Creates stages which will produce a normal distribution (bell-curve) of VUs for a test | 
| getCurrentStageIndex | Get the index of the running stage as defined in the stages array options. It can be used only with the executors that support the stages option as
ramping-vus or
ramping-arrival-rate. | 
| tagWithCurrentStageIndex | Tag all the generated metrics in the iteration with the index of the current running stage. | 
| tagWithCurrentStageProfile | Tag all the generated metrics in the iteration with the computed profile for the current running stage. | 
Simple example
import { sleep } from 'k6';
import http from 'k6/http';
import {
  randomIntBetween,
  randomString,
  randomItem,
  uuidv4,
  findBetween,
} from 'https://jslib.k6.io/k6-utils/1.4.0/index.js';
export default function () {
  const res = http.post(`https://quickpizza.grafana.com/api/users`, {
    username: `user_${randomString(10)}@example.com`, // random email address,
    password: uuidv4(), // random password in form of uuid
  });
  // find a string between two strings to grab the username:
  const username = findBetween(res.body, '"username":"', '"');
  console.log('username from response: ' + username);
  sleep(randomIntBetween(1, 5)); // sleep between 1 and 5 seconds.
}

