No results for

Powered byAlgolia

Constant arrival rate

sugerir editar

Description

Se ejecuta un número fijo de iteraciones en un periodo de tiempo determinado. Dado que el tiempo de ejecución de la iteración puede variar debido a la lógica de la prueba o a que el sistema bajo prueba responda más lentamente, este ejecutor intentará compensar ejecutando un número variable de VUs incluyendo la posibilidad de inicializar más en medio de la prueba para cumplir con la tasa de iteración configurada. Este enfoque es útil para una representación más precisa de RPS, por ejemplo.

Consulte arrival rate para más detalles.

Opciones

Además de las opciones de configuración comunes, este ejecutor también añade las siguientes opciones:

OptionTypeDescriptionDefault
duration*stringDuración total del escenario (excluyendo gracefulStop).-
rate*integerNúmero de iteraciones a ejecutar en cada periodo de timeUnit.-
preAllocatedVUs*integerNúmero de VUs a pre asignar antes del inicio de la prueba para preservar los recursos del tiempo de ejecución.-
timeUnitstringPeriodo de tiempo para aplicar el valor de la tasa."1s"
maxVUsintegerNúmero máximo de VUs a permitir durante la ejecución de la prueba.-

Cuando usarlo

Cuando se quiere mantener un número constante de peticiones sin que se vea afectado el rendimiento del sistema bajo prueba.

Ejemplo

En este ejemplo, ejecutaremos una tasa constante de 200 RPS durante 1 minuto, permitiendo a k6 programar dinámicamente hasta 100 VUs.

constant-arr-rate.js
1import http from 'k6/http';
2
3export let options = {
4 discardResponseBodies: true,
5 scenarios: {
6 contacts: {
7 executor: 'constant-arrival-rate',
8 rate: 200, // 200 RPS, since timeUnit is the default 1s
9 duration: '1m',
10 preAllocatedVUs: 50,
11 maxVUs: 100,
12 },
13 },
14};
15
16export default function () {
17 http.get('https://test.k6.io/contacts.php');
18}

Tenga en cuenta que para lograr de forma fiable una tasa de peticiones fija, se recomienda mantener la función que se ejecuta muy simple, con preferiblemente una sola llamada de petición, y sin procesamiento adicional o llamadas a sleep().