Ahmed Negm
Ahmed Negm

Reputation: 905

Testing k6 groups with separate throughput

I am targeting 10x load for an API, this API contains 6 endpoints which should be under the test, but each endpoint has its own throughput which should be multiplied by 10.

Now, I put all endpoints in one script file, but it doesn't make any sense to have the same throughput for all endpoints, I wanna run the k6 and it has to stop automatically when the needed throughput is already reached for a specific group.

Example:

The main problem is when I put each endpoint in a separate group in one single script, this let k6 iterate over both groups/endpoints with the same iterations count with the same virtual users, which leads to reach 10x for both endpoints which is not required at the moment.

One more thing, I already tried to separate all endpoints in separate scripts, but this is difficult to manage and this makes the monitoring not easy because all 6 endpoints should be run in parallel.

Upvotes: 2

Views: 837

Answers (1)

na--
na--

Reputation: 1106

What you need can currently be approximated roughly with the __ITER and/or __VU execution context variables. Have a single default function that has something like this:

if (__ITER % 3 == 0) {
  CallGetManyUsers(); // 33% of iterations
} else {
  CallGetUser(); // 66% of iterations
}

In the very near future we plan to also add a more elegant way of supporting multi-scenario tests in a single script: https://github.com/loadimpact/k6/pull/1007

Upvotes: 1

Related Questions