No results for

Powered byAlgolia

Escenarios

sugerir editar

Los escenarios nos permiten realizar configuraciones a profundidad sobre cómo los VUs y las iteraciones son programadas. Esto hace posible modelar diversos patrones de tráfico en las pruebas de carga. Los beneficios de usar escenarios incluyen:

  • Se pueden declarar múltiples escenarios en el mismo script, y cada uno de ellos puede ejecutar independientemente una función JavaScript diferente, lo que hace que la organización de las pruebas sea más fácil y flexible.
  • Cada escenario puede utilizar un patrón de programación de VUs en distintas iteraciones, llevado a cabo por un ejecutor diseñado a tal efecto. Esto permite modelar patrones de ejecución avanzados que pueden simular mejor el tráfico del mundo real.
  • Pueden configurarse para que se ejecuten en secuencia o en paralelo, o en cualquier combinación de ambas.
  • Se pueden establecer diferentes variables de entorno y etiquetas métricas por escenario.

Configuración

Los escenarios de ejecución son principalmente configurados a través de la clave scenarios de options. La clave de cada escenario puede ser un nombre de escenario arbitrario, pero debe ser único. Este aparecerá en el resumen de resultados, etiquetas, entre otros.

1export let options = {
2 scenarios: {
3 example_scenario: {
4 // name of the executor to use
5 executor: 'shared-iterations',
6
7 // common scenario configuration
8 startTime: '10s',
9 gracefulStop: '5s',
10 env: { EXAMPLEVAR: 'testing' },
11 tags: { example_tag: 'testing' },
12
13 // executor-specific configuration
14 vus: 10,
15 iterations: 200,
16 maxDuration: '10s',
17 },
18 another_scenario: { ... }
19 }
20}

Executors

Executors son los workhorses del motor de ejecución de k6. Cada uno programa los VUs y las iteraciones de forma diferente, y usted podrá elegir uno dependiendo del tipo de tráfico que quiera modelar para probar sus servicios.

Los posibles valores para los executor son los siguientes:

NombreValorDescripción
Shared iterationsshared-iterationsUna cantidad fija de iteraciones que son "compartidas" entre un número de VUs.
Per VU iterationsper-vu-iterationsCada VU ejecuta un número exacto de iteraciones.
Constant VUsconstant-vusUn número fijo de VUs que ejecuta una cantidad de iteraciones determinada, durante un tiempo determinado.
Ramping VUsramping-vusUn número variable de VUs que ejecuta una cantidad de iteraciones determinada, durante un tiempo determinado.
Constant Arrival Rateconstant-arrival-rateSe ejecuta un número fijo de iteraciones en un periodo de tiempo determinado.
Ramping Arrival Rateramping-arrival-rateSe ejecuta un número variable de iteraciones, ejecutadas en un periodo de tiempo determinado.
Externally Controlledexternally-controlledControla y escala la ejecución en runtime a través k6's REST API o CLI.

Opciones comunes

OpciónTipoDescripciónDefault
executor*stringNombre único del ejecutor. Consulte la lista de valores posibles en la sección de executors section.-
startTimestringDesplazamiento de tiempo desde el inicio de la prueba, en el que este escenario debe comenzar a ejecutarse."0s"
gracefulStopstringTiempo para esperar a que las iteraciones terminen de ejecutarse antes de detenerlas forzosamente. Véase la sección gracefulStop."30s"
execstringNombre de la función JS exportada a ejecutar."default"
envobjectVariables de entorno específicas para este escenario.{}
tagsobjectTags específicas para este escenario.{}