No results for

Powered byAlgolia

Las opciones le permiten configurar cómo se comportará k6 durante la ejecución de la prueba.

Lista de opciones

OptionDescription
BatchNúmero máximo de conexiones simultáneas de una llamada http.batch()
Batch per hostNúmero máximo de conexiones simultáneas de una llamada http.batch() para un host
Blacklist IPsBlacklist de rangos de IP para no ser llamados
Block hostnamesBloquear cualquier petición a nombres de host específicos
Compatibility ModeSoporta la ejecución de scripts con diferentes modos de ECMAScript
ConfigEspecificar el archivo de configuración en formato JSON para leer los valores de las opciones
Discard Response BodiesEspecificar si los cuerpos de respuesta deben ser descartados
DNSConfigurar el comportamiento de la resolución DNS
DurationUna cadena que especifica la duración total de la ejecución de una prueba
Execution SegmentLimitar la ejecución a un segmento de la prueba total
Extension OptionsUn objeto utilizado para establecer las opciones de configuración de los recolectores de terceros
HostsUn objeto con anulaciones de la resolución DNS
HTTP DebugLogear todas las peticiones y respuestas HTTP
Include System Env VarsPasar las variables de entorno del sistema real al tiempo de ejecución
Insecure Skip TLS VerifyUn booleano que especifica si se deben ignorar las verificaciones TLS para las conexiones VU
IterationsUn número que especifica un número fijo de iteraciones a ejecutar el script
LingerUn booleano que especifica si k6 debe permanecer tras la finalización de la ejecución de la prueba
Local IPsUna lista de IPs locales, rangos de IPs y CIDRs desde los que las VUs harán peticiones
Log OutputConfiguración sobre dónde deben enviarse los registros de k6
LogFormatEspecificar el formato de la salida de los logs
Max RedirectsEl número máximo de redirecciones HTTP que seguirá k6
Minimum Iteration DurationEspecificar la duración mínima de cada ejecución
No Connection ReuseUn booleano que especifica si k6 debe desactivar las conexiones keep-alive
No Cookies ResetEsto desactiva el restablecimiento del tarro de galletas después de cada iteración de la VU
No SummaryDesactiva el resumen de fin de test
No ThresholdsDesactiva la ejecución de Thresholds
No Usage ReportUn booleano que especifica si k6 debe enviar un informe de uso
No VU Connection ReuseUn booleano que especifica si k6 debe reutilizar las conexiones TCP
PausedUn booleano que especifica si la prueba debe comenzar en estado de pausa
Results OutputEspecifica la salida de resultados
RPSEl número máximo de peticiones a realizar por segundo
ScenariosDefinir escenarios de ejecución avanzados
Setup TimeoutEspecificar el tiempo de ejecución de la función setup() antes de su finalización
StagesUna lista de objetos que especifican el número objetivo de VUs para subir o bajar
Summary exportGuarda el informe de resumen de fin de prueba en un archivo JSON
Supply Env VarAñadir/sustituir la variable de entorno con VAR=valor
System TagsEspecificar qué etiquetas del sistema estarán en las métricas recogidas
Summary Time UnitUnidad de tiempo para todos los valores del resumen del fin de test
Summary Trend StatsDefinir las estadísticas de las métricas de tendencia
TagsEspecificar tags que deben establecerse en todas las métricas de la prueba
Teardown TimeoutEspecifica el tiempo de ejecución de la función teardown() antes de su finalización
ThresholdsConfigurar bajo qué condiciones una prueba tiene éxito o no
ThrowUn booleano que especifica si se lanzan errores en las peticiones HTTP fallidas
TLS AuthUna lista de objetos de configuración del certificado de cliente TLS
TLS Cipher SuitesUna lista de suites de cifrado que se pueden utilizar en las interacciones SSL/TLS con un servidor
TLS VersionString u objeto que representa la única versión SSL/TLS permitida
User AgentUn string que especifica la cabecera User-Agent al enviar solicitudes HTTP
VUsUn número que especifica el número de VUs que se ejecutan simultáneamente
VUs MaxUn número que especifica el número máximo de usuarios virtuales

Usando las opciones

Las opciones pueden formar parte del código de los scripts para que puedan ser controladas por la versión. También se pueden especificar con flags de línea de comandos, variables de entorno o a través de un archivo de configuración. El orden de precedencia es el siguiente:

command-line flags > environment variables > exported script options > config file > defaults

Las opciones de cada nivel sobre escribirán las opciones del nivel siguiente, teniendo las flags de la línea de comandos la mayor precedencia.

Por ejemplo, se puede definir la duración de 4 maneras diferentes:

  • Establecer la duration: 10s en el archivo de configuración
  • Establezca la opción de duration: 10s en el script
  • Definir K6_DURATION cómo variable de entorno
  • Utilizar la flag de línea de comandos --duration 10s sobrescribe todo lo anterior.

El siguiente fragmento de JS muestra cómo especificar las opciones en el script:

example.js
1import http from 'k6/http';
2
3export let options = {
4 hosts: { 'test.k6.io': '1.2.3.4' },
5 stages: [
6 { duration: '1m', target: 10 },
7 { duration: '1m', target: 20 },
8 { duration: '1m', target: 0 },
9 ],
10 thresholds: { http_req_duration: ['avg<100', 'p(95)<200'] },
11 noConnectionReuse: true,
12 userAgent: 'MyK6UserAgentString/1.0',
13};
14
15export default function () {
16 http.get('http://test.k6.io/');
17}

También puede establecer las mismas opciones a través de un archivo de configuración:

config.json
1{
2 "hosts": {
3 "test.k6.io": "1.2.3.4"
4 },
5 "stages": [
6 {
7 "duration": "1m",
8 "target": 10
9 },
10 {
11 "duration": "1m",
12 "target": 30
13 },
14 {
15 "duration": "1m",
16 "target": 0
17 }
18 ],
19 "thresholds": {
20 "http_req_duration": ["avg<100", "p(95)<200"]
21 },
22 "noConnectionReuse": true,
23 "userAgent": "MyK6UserAgentString/1.0"
24}

O establecer algunas de las opciones anteriores a través de variables de entorno y flags de línea de comandos:

Bash
1$ K6_NO_CONNECTION_REUSE=true K6_USER_AGENT="MyK6UserAgentString/1.0" k6 run ~/script.js
2
3$ k6 run ---no-connection-reuse --user-agent "MyK6UserAgentString/1.0" ~/script.js

A continuación, encontrará detalles sobre todas las opciones disponibles que se pueden especificar dentro de un script. También se documenta la flag de la línea de comandos equivalente, las variables de entorno o la opción al ejecutar k6 run ... y k6 cloud ... que pueden utilizarse para anular las opciones especificadas en el código.

Batch

El número máximo de conexiones simultáneas/paralelas en total que puede hacer una llamada http.batch() en una VU. Si tienes una llamada batch() a la que has dado 20 URLs y --batch está establecido en 15, entonces la VU hará 15 peticiones de inmediato en paralelo y pondrá en cola el resto, ejecutándose tan pronto como una petición anterior haya terminado y se abra un hueco.

EnvCLICode / Config fileDefault
K6_BATCH--batchbatch20
1export let options = {
2 batch: 15,
3};

Batch per host

El número máximo de conexiones simultáneas/paralelas para el mismo nombre de host que puede hacer una llamada http.batch() en una VU. Si tiene una llamada a batch() a la que le ha dado 20 URLs para el mismo nombre de host y --batch-per-host está establecido en 5, entonces la VU hará 5 peticiones de inmediato en paralelo y pondrá en cola el resto, ejecutándose tan pronto como una petición anterior haya terminado y se abra un hueco. Esto no ejecutará más peticiones en paralelo que el valor del lote.

EnvCLICode / Config fileDefault
K6_BATCH_PER_HOST--batch-per-hostbatchPerHost6
1export let options = {
2 batchPerHost: 5,
3};

Blacklist IPs

Blacklist de IP para no ser llamados.

EnvCLICode / Config fileDefault
K6_BLACKLIST_IPS--blacklist-ipblacklistIPsnull
1export let options = {
2 blacklistIPs: ['10.0.0.0/8'],
3};

Block Hostnames

Bloquea los nombres de host basándose en una lista de cadenas de coincidencia glob. La cadena de coincidencia de patrones puede tener un solo * al principio, como *.example.com, que coincidirá con cualquier cosa antes de eso, como test.example.com y test.test.example.com.

EnvCLICode / Config fileDefault
K6_BLOCK_HOSTNAMES--block-hostnamesblockHostnamesnull
1export let options = {
2 blockHostnames: ["test.k6.io" , "*.example.com"],
3};
$ k6 run --block-hostnames="test.k6.io,*.example.com" script.js

Compatibility Mode

Soporta la ejecución de scripts con diferentes modos de compatibilidad con ECMAScript.

Lea más sobre los diferentes modos de compatibilidad con JavaScript.

EnvCLICode / Config fileDefault
K6_COMPATIBILITY_MODE--compatibility-modeN/A"extended"
$ k6 run --compatibility-mode=base script.js

Config

Especifica el archivo config, k6 buscará config.json en el directorio loadimpact/k6 dentro del directorio habitual de archivos de configuración del sistema operativo. Las ubicaciones de configuración por defecto en los diferentes sistemas operativos son:

OSDefault Config Path
Unix-based${HOME}/.config/loadimpact/k6/config.json
macOS${HOME}/Library/Application Support/loadimpact/k6/config.json
Windows%AppData%/loadimpact/k6/config.json

Available in k6 run and k6 cloud commands:

EnvCLICode / Config fileDefault
N/A--config <path>, -c <path>N/Anull

Puede encontrar un ejemplo de archivo de configuración disponible aquí.

Discard Response Bodies

Especifica si los cuerpos de respuesta deben ser descartados cambiando el valor por defecto del tipo de respuesta a none para todas las peticiones HTTP. Se recomienda que se establezca en true y entonces sólo para las peticiones en las que el cuerpo de la respuesta es necesario para el scripting para establecer el tipo de respuesta a text o binary. Reduce la cantidad de memoria requerida y la cantidad de GC - reduciendo la carga en la máquina de pruebas, y probablemente produciendo resultados de pruebas más fiables.

EnvCLICode / Config fileDefault
K6_DISCARD_RESPONSE_BODIES--discard-response-bodiesdiscardResponseBodiesfalse
1export let options = {
2 discardResponseBodies: true,
3};

DNS

Nuevo en v0.29.0

Esta es una opción compuesta que proporciona el control del comportamiento de la resolución DNS con la configuración de la expiración de la cache (TTL), la estrategia de selección de IP y la preferencia de la versión de IP. El campo TTL en el registro DNS actualmente no es leído por k6, por lo que la opción ttl permite el control manual de este comportamiento, aunque como un valor fijo para la duración de la ejecución de la prueba.

Tenga en cuenta que la resolución de DNS se realiza sólo en las nuevas conexiones HTTP, y por defecto k6 intentará reutilizar las conexiones si HTTP keep-alive está soportado. Para forzar un determinado comportamiento de DNS considere habilitar la opción noConnectionReuse en sus pruebas.

EnvCLICode / Config fileDefault
K6_DNS--dnsdnsttl=5m,select=random,policy=preferIPv4

Los posibles valores de ttl son:

  • 0: no se almacena en caché en absoluto - cada petición desencadenará una nueva búsqueda de DNS.
  • inf: se almacena en caché cualquier IP resuelta durante la duración de la prueba. cualquier duración de tiempo como 60s, 5m30s, 10m, 2h, etc.; si no se especifica ninguna unidad (por ejemplo, ttl=3000), k6 asume milisegundos.

Los posibles valores de select son:

  • first: elige siempre la primera IP resuelta.
  • random: elige una IP aleatoria para cada nueva conexión.
  • roundRobin: iterar secuencialmente sobre las IPs resueltas.

Los posibles valores de policy son:

  • preferIPv4: utiliza direcciones IPv4 si están disponibles, en caso contrario, volver a IPv6.
  • preferIPv6: utiliza direcciones IPv6 si están disponibles, en caso contrario, volver a IPv4.
  • onlyIPv4: sólo utiliza direcciones IPv4, ignora las IPv6.
  • onlyIPv6: sólo utiliza direcciones IPv6, ignora las IPv4.
  • any: no hay preferencia, utiliza todas las direcciones.

He aquí algunos ejemplos de configuración:

k6 run --dns "ttl=inf,select=first,policy=any" script.js # the old k6 behavior before v0.29.0
K6_DNS="ttl=5m,select=random,policy=preferIPv4" k6 cloud script.js # new default behavior from v0.29.0
script.js
1export let options = {
2 dns: {
3 ttl: '1m',
4 select: 'roundRobin',
5 policy: 'any'
6 }
7}

Duration

Una cadena que especifica la duración total de la ejecución de una prueba. Durante este tiempo, cada VU ejecutará el script en un bucle.

Junto con la opción vus, la duración es un atajo para un escenario único con un ejecutor de VUs constante.

EnvCLICode / Config fileDefault
K6_DURATION--duration, -ddurationnull
1export let options = {
2 duration: '3m',
3};

Extension Options

Un objeto utilizado para establecer las opciones de configuración de los colectores de terceros, como los plugins.

EnvCLICode / Config fileDefault
N/AN/Aextnull

Este es un ejemplo de cómo especificar el nombre de la prueba (las ejecuciones de la prueba con el mismo nombre se agruparán lógicamente para las tendencias y la comparación) al transmitir los resultados a k6 Cloud Performance Insights.

1export let options = {
2 ext: {
3 loadimpact: {
4 name: 'My test name',
5 },
6 },
7};

Execution Segment

Estas opciones especifican cómo dividir la ejecución de la prueba y qué segmento ejecutar. Si se definen, K6 escalará el número de VUs e iteraciones a ejecutar para ese segmento, lo cual es útil en la ejecución distribuida.

EnvCLICode / Config fileDefault
N/A--execution-segmentexecutionSegment"0:1"
N/A--execution-segment-sequenceexecutionSegmentSequence"0,1"

Hosts

Un objeto con anulaciones de la resolución DNS, similar a lo que puede hacer con /etc/hosts en Linux/Unix o C:\\Windows\\System32\\drivers\\etc\\hosts en Windows. Por ejemplo, puede configurar una anulación que dirija todas las solicitudes de test.k6.io a 1.2.3.4.

A partir de la versión v0.28.0 también se soporta el redireccionamiento sólo desde ciertos puertos y/o hacia ciertos puertos.

⚠️ Tenga en cuenta que!

Esto no modifica la cabecera HTTP Host propiamente dicha, sino hacia dónde se dirigirá.

EnvCLICode / Config fileDefault
N/AN/Ahostsnull
1export let options = {
2 hosts: {
3 'test.k6.io': '1.2.3.4',
4 'test.k6.io:443': '1.2.3.4:8443',
5 },
6};

Con el código anterior cualquier petición hecha a test.k6.io será redirigida a 1.2.3.4 sin cambiar su puerto a menos que su puerto sea 443 que será redirigido al puerto 8443.

HTTP Debug

Registra todas las peticiones y respuestas HTTP. Excluye el cuerpo por defecto, para incluir el cuerpo use --http-debug=full.

Lea más aquí.

EnvCLICode / Config fileDefault
K6_HTTP_DEBUG--http-debug,
--http-debug=full
httpDebugfalse
1export let options = {
2 httpDebug: 'full',
3};

Include System Env Vars

Pasa las variables del entorno del sistema real al tiempo de ejecución.

EnvCLICode / Config fileDefault
N/A--include-system-env-varsN/Atrue para k6 run, pero false para todos los demás comandos para evitar la filtración inadvertida de datos sensibles.
Shell
1$ k6 run --include-system-env-vars ~/script.js

Insecure Skip TLS Verify

Un booleano, verdadero o falso. Cuando esta opción está habilitada (establecida en true), todas las verificaciones que de otro modo se harían para establecer la confianza en un certificado TLS proporcionado por el servidor serán ignoradas. Esto sólo se aplica a las conexiones creadas por el código de la VU, como las solicitudes http.

EnvCLICode / Config fileDefault
K6_INSECURE_SKIP_TLS_VERIFY--insecure-skip-tls-verifyinsecureSkipTLSVerifyfalse
1export let options = {
2 insecureSkipTLSVerify: true,
3};

Iterations

Un valor entero, que especifica el número total de iteraciones de la función por defecto que se ejecutará en prueba, en lugar de especificar una duración de tiempo durante la cual el script se ejecutará en un bucle.

Junto con la opción vus, iterations es un atajo para un único escenario con un ejecutor de iteraciones compartido.

Por defecto, la duración máxima de un escenario de iteraciones compartidas es de 10 minutos. Puedes ajustar ese tiempo a través de la opción maxDuration del escenario, o especificando también la opción de acceso directo global duration. Tenga en cuenta que las iteraciones no se distribuyen equitativamente con esta opción, y un VU que se ejecute más rápido completará más iteraciones que otras. Cada VU intentará completar tantas iteraciones como sea posible, "tomándolas" del número total de iteraciones de la prueba. Así, dependiendo de los tiempos de iteración, algunas VUs pueden completar más iteraciones que otras. Si quiere garantizar que cada VU completará un número específico y fijo de iteraciones, utilice el ejecutor de iteraciones por VU.

EnvCLICode / Config fileDefault
K6_ITERATIONS--iterations, -iiterations1
1export let options = {
2 iterations: 10,
3};

O, para ejecutar 10 VUs 10 veces cada una:

1export let options = {
2 vus: 10,
3 iterations: 100,
4};

Linger

Un booleano, verdadero o falso, que especifica si el proceso k6 debe permanecer después de la finalización de la prueba. Disponible en el comando de ejecución k6 run.

EnvCLICode / Config fileDefault
K6_LINGER--linger, -llingerfalse
1export let options = {
2 linger: true,
3};

Local IPs

Una lista de IPs, rangos de IPs y CIDRs desde los que las VUs harán peticiones. Las IPs serán entregadas secuencialmente a las VUs. Esta opción no cambia nada a nivel del SO, por lo que las IPs deben estar ya configuradas a nivel del SO para que k6 pueda utilizarlas. También los CIDRs IPv4 con más de 2 IPs no incluyen la primera y la última IP ya que están reservadas para referirse a la propia red y a la dirección de difusión respectivamente.

Esta opción puede utilizarse para dividir el tráfico de red de k6 entre varias tarjetas de red, aumentando así potencialmente el rendimiento de red disponible. Por ejemplo, si tiene 2 NICs, puede ejecutar k6 con --local-ips="<IP-del-primer-NIC>,<IP-del-segundo-NIC>" para equilibrar el tráfico de forma equitativa entre ellos - la mitad de los VUs utilizarán la primera IP y la otra mitad la segunda. Esto puede escalar a cualquier número de NICs, y puede repetir algunas IPs locales para darles más tráfico. Por ejemplo, --local-ips="<IP1>,<IP2>,<IP3>,<IP3>" dividirá los VUs entre 3 IPs de origen diferentes en una proporción 25%:25%:50%.

Disponible en el comando de ejecución k6 run.

EnvCLICode / Config fileDefault
K6_LOCAL_IPS--local-ipsN/AN/A
$ k6 run --local-ips=192.168.20.12-192.168.20-15,192.168.10.0/27 script.js

Log output

Esta opción especifica a dónde enviar los registros y otra configuración conectada a ella. Está disponible en el comando de ejecución k6 run.

Los valores posibles son:

  • none - deshabilitar
  • stdout - enviar a la salida estándar
  • stderr - enviar a la salida de error estándar (este es el valor por defecto)
  • loki - envía los registros a un servidor loki

El servidor loki puede configurarse adicionalmente de la siguiente manera: loki=http://127.0.0.1:3100/loki/api/v1/push,label.something=else,label.foo=bar,limit=32,level=info,pushPeriod=5m32s,msgMaxSize=1231, donde todo, excepto la url del principio, no es necesario. Las posibles claves con sus significados y valores por defecto:

keymeaningdefault value
nothingel endpoint al cual se enviarán los registroshttp://127.0.0.1:3100/loki/api/v1/push
allowedLabelssi se establece k6 sólo enviará las etiquetas proporcionadas como tales y todas las demás se añadirán al mensaje en la forma clave=valor. El valor de la opción tiene la forma [label1,label2]N/A
label.labelNameañade una etiqueta adicional con la clave y el valor proporcionados a cada mensajeN/A
limitel límite de mensajes por pushPeriod, se envía un registro adicional cuando se alcanza el límite, registrando cuántos registros se han dejado caer100
levelel nivel mínimo de un mensaje para que sea enviado a lokiall
pushPerioda qué hora enviar las líneas de registro1s
profilesi imprimir alguna información sobre el rendimiento del envío a lokifalse
msgMaxSizecuántos símbolos puede haber como máximo en un mensaje. Los mensajes más grandes perderán la mitad del mensaje con unos pocos caracteres adicionales que explican cuántos caracteres se han eliminado.1048576
EnvCLICode / Config fileDefault
K6_LOG_OUTPUT--log-outputN/Astderr
1$ k6 run --log-output=stdout script.js

LogFormat

Un valor que especifica el formato del registro. Por defecto, k6 incluye información extra de depuración como la fecha y el nivel de registro. Las otras opciones disponibles son:

  • json: imprime toda la información de depuración en formato JSON.
  • raw: imprime sólo el mensaje de registro.
EnvCLICode / Config fileDefault
K6_LOGFORMAT--logformat, -fN/A
1$ k6 run --logformat raw test.js

Max Redirects

El número máximo de redirecciones HTTP que k6 seguirá antes de abandonar una solicitud y dar un error.

EnvCLICode / Config fileDefault
K6_MAX_REDIRECTS--max-redirectsmaxRedirects10
1export let options = {
2 maxRedirects: 10,
3};

Minimum Iteration Duration

Especifica la duración mínima que debe tener cada una de las ejecuciones (es decir, iteraciones) de la función default. Cualquier iteración que sea más corta que este valor hará que ese VU duerma durante el tiempo restante hasta que se alcance la duración mínima especificada.

EnvCLICode / Config fileDefault
K6_MIN_ITERATION_DURATION--min-iteration-durationminIterationDuration0 (disabled)
1export let options = {
2 minIterationDuration: '10s',
3};

No Connection Reuse

Un booleano, verdadero o falso, que especifica si k6 debe desactivar las conexiones keep-alive.

EnvCLICode / Config fileDefault
K6_NO_CONNECTION_REUSE--no-connection-reusenoConnectionReusefalse
1export let options = {
2 noConnectionReuse: true,
3};

No Cookies Reset

Esto deshabilita el comportamiento por defecto de restablecer el tarro de cookies después de cada iteración del VU. Si se habilita, las cookies guardadas se mantendrán a través de las iteraciones del VU.

EnvCLICode / Config fileDefault
K6_NO_COOKIES_RESETN/AnoCookiesResetfalse
1export let options = {
2 noCookiesReset: true,
3};

No Summary

Desactiva el end-of-test summary generation. Desde v0.30.0, k6 incluye handleSummary() and --summary-export.

EnvCLICode / Config fileDefault
K6_NO_SUMMARY--no-summaryN/Afalse
1$ k6 run --no-summary ~/script.js

No Thresholds

Desactiva la ejecución de Thresholds.

EnvCLICode / Config fileDefault
K6_NO_THRESHOLDS--no-thresholdsN/Afalse
1$ k6 run --no-thresholds ~/script.js

No Usage Report

Un booleano, verdadero o falso. Por defecto, k6 envía un informe de uso cada vez que se ejecuta, para que podamos hacer un seguimiento de la frecuencia de uso. Si esta opción se establece como verdadera, no se realizará ningún informe de uso. Para saber más, eche un vistazo a la documentación sobre los informes de uso. Disponible en k6 run.

EnvCLIConfig fileDefault
K6_NO_USAGE_REPORT--no-usage-reportnoUsageReport*false
$ k6 run --no-usage-report ~/script.js

* Note que esta opción no puede ser especificada en el script, pero sí en un archivo de configuración.

No VU Connection Reuse

Un booleano, verdadero o falso, que especifica si k6 debe reutilizar las conexiones TCP entre las iteraciones de un VU.

EnvCLICode / Config fileDefault
K6_NO_VU_CONNECTION_REUSE--no-vu-connection-reusenoVUConnectionReusefalse
1export let options = {
2 noVUConnectionReuse: true,
3};

Paused

Un booleano, verdadero o falso, que especifica si la prueba debe comenzar en un estado de pausa. Para reanudar un estado de pausa se utilizará el comando k6 resume.

EnvCLICode / Config fileDefault
K6_PAUSED--paused, -ppausedfalse
1export let options = {
2 paused: true,
3};

Results Output

Especifique la salida de resultados. Por favor, vaya a Salida de resultados para más información sobre todos los módulos de salida disponibles y cómo configurarlos. Disponible en el comando de ejecución k6 run.

EnvCLICode / Config fileDefault
N/A--out, -oN/Anull
Shell
1$ k6 run --out influxdb=http://localhost:8086/k6 script.js

RPS

El número máximo de peticiones a realizar por segundo, en total en todas los VUs.

EnvCLICode / Config fileDefault
K6_RPS--rpsrps0 (unlimited)
1export let options = {
2 rps: 500,
3};

Esta opción tiene algunas advertencias y es difícil de utilizar correctamente, por lo que se desaconseja su uso. Por ejemplo, en la ejecución en k6 Cloud o distribuida, esta opción afecta a cada instancia de k6 de forma independiente, es decir, no está fragmentada como los VU. Recomendamos encarecidamente el uso de Scenarios para simular un RPS constante en lugar de esta opción.

Scenarios

Defina uno o más patrones de ejecución, con varias configuraciones de programación de VU e iteraciones, ejecutando diferentes funciones exportadas (¡además de las predeterminadas!), utilizando diferentes variables de entorno, etiquetas y más. Consulte el artículo Escenarios para obtener detalles y más ejemplos.

EnvCLICode / Config fileDefault
N/AN/Ascenariosnull
1export let options = {
2 scenarios: {
3 my_api_scenario: {
4 // arbitrary scenario name
5 executor: 'ramping-vus',
6 startVUs: 0,
7 stages: [
8 { duration: '5s', target: 100 },
9 { duration: '5s', target: 0 },
10 ],
11 gracefulRampDown: '10s',
12 env: { MYVAR: 'example' },
13 tags: { my_tag: 'example' },
14 },
15 },
16};

Setup Timeout

Especifica el tiempo que se permite ejecutar la función setup() antes de que se termine y la prueba falle.

EnvCLICode / Config fileDefault
K6_SETUP_TIMEOUTN/AsetupTimeout"10s"
1export let options = {
2 setupTimeout: '30s',
3};

Stages

Una lista de VU { target: ..., duration: ... } que especifican el número objetivo de VUs para aumentar o disminuir durante un período específico.

Es una opción de acceso directo para un escenario único con un ejecutor de VUs en rampa. Si se utiliza junto con la opción VUs, el valor vus se utiliza como la opción startVUs del ejecutor.

EnvCLICode / Config fileDefault
K6_STAGES--stage <duration>:<target>, -s <duration>:<target>stagesBased on vus and duration.
Code
Shell
1// The following config would have k6 ramping up from 1 to 10 VUs for 3 minutes,
2// then staying flat at 10 VUs for 5 minutes, then ramping up from 10 to 35 VUs
3// over the next 10 minutes before finally ramping down to 0 VUs for another
4// 3 minutes.
5
6export let options = {
7 stages: [
8 { duration: '3m', target: 10 },
9 { duration: '5m', target: 10 },
10 { duration: '10m', target: 35 },
11 { duration: '3m', target: 0 },
12 ],
13};

Summary export

Guarde el informe de resumen de fin de prueba en un archivo JSON que incluya los datos de todas las métricas, comprobaciones y umbrales de la prueba. Esto es útil para obtener los resultados agregados de las pruebas en un formato legible por la máquina, para la integración con paneles de control, alertas externas, tuberías de CI, etc.

A partir de k6 v0.30.0, aunque esta característica no está obsoleta todavía, se desaconseja su uso, vea la explicación del porqué aquí. Para una mejor y más flexible exportación de JSON, así como la exportación de los datos del resumen a diferentes formatos (por ejemplo, JUnit/XUnit/etc. XML, HTML, .txt) y una completa personalización del resumen, vea el nuevo callback handleSummary().

EnvCLICode / Config fileDefault
K6_SUMMARY_EXPORT--summary-export <filename>N/Anull
Shell
1$ k6 run --summary-export export.json ~/script.js
2
3# or...
4
5$ K6_SUMMARY_EXPORT="export.json" k6 run ~/script.js

Vea un archivo de ejemplo en la página de resultados page.

Supply Env Var

Añade o sustituye una variable de entorno con VAR=valor.

Para que las variables de entorno del sistema estén disponibles en el script de k6 a través de __ENV, utilice la opción --include-system-env-vars.

EnvCLICode / Config fileDefault
N/A--env, -eN/Anull
Shell
1$ k6 run -e FOO=bar ~/script.js

System Tags

Especifique qué Tags del sistema estarán en las métricas recopiladas. Algunos recopiladores, como el de la nube, pueden requerir que se utilicen determinadas etiquetas del sistema. Puede especificar las etiquetas como un array desde los scripts JS o como una lista separada por comas a través de la CLI.

EnvCLICode / Config fileDefault
K6_SYSTEM_TAGS--system-tagssystemTagsproto,subproto,status,method,url,name,group, check,error,tls_version,scenario,service,rpc_type
1export let options = {
2 systemTags: ['status', 'method', 'url'],
3};

Summary Time Unit

Define la unidad de tiempo en resumen de fin de tests. Lo valores posibles son s (segundos), ms (milisegundos) y us (microsegundos). Si no es especificado, k6 usará la unidad más apropiada para cada valor.

EnvCLICode / Config fileDefault
K6_SUMMARY_TIME_UNIT--summary-time-unitsummaryTimeUnitnull
1export let options = {
2 summaryTimeUnit: 'ms',
3};

Summary Trend Stats

Defina qué estadísticas de las métricas de tendencia (por ejemplo, tiempos de respuesta, duraciones de grupo/de iteración, etc.) se mostrarán en el resumen de fin de prueba. Los valores posibles incluyen avg (media), med (mediana), min, max, count (desde k6 v0.26.0), así como valores de percentil arbitrarios (por ejemplo, p(95), p(99), p(99.99), etc.).

Para una mayor personalización del resumen y la exportación del mismo en varios formatos (por ejemplo, JSON, JUnit/XUnit/etc. XML, HTML, .txt, etc.), véase la nueva llamada de retorno handleSummary() introducida en k6 v0.30.0.

EnvCLICode / Config fileDefault
K6_SUMMARY_TREND_STATS--summary-trend-statssummaryTrendStatsnull
1export let options = {
2 summaryTrendStats: ['avg', 'p(95)'],
3};

Tags

Especifique las etiquetas que deben establecerse a nivel de prueba en todas las métricas. Si se ha especificado una etiqueta con el mismo nombre en una solicitud, una comprobación o una métrica personalizada, tendrá prioridad sobre una etiqueta de prueba.

EnvCLICode / Config fileDefault
N/A--tag NAME=VALUEtagsnull
1export let options = {
2 tags: {
3 name: 'value',
4 },
5};

Teardown Timeout

Especifica cuánto tiempo se permite que se ejecute la función teardown() antes de que se termine y la prueba falle.

EnvCLICode / Config fileDefault
K6_TEARDOWN_TIMEOUTN/AteardownTimeout"10s"
1export let options = {
2 teardownTimeout: '30s',
3};

Thresholds

Una colección de especificaciones de umbrales para configurar bajo qué condición(es) se considera que una prueba ha tenido éxito o no, cuando ha pasado o fallado, basándose en los datos métricos. Para obtener más información, consulte la documentación sobre Thresholds.

EnvCLICode / Config fileDefault
N/AN/Athresholdsnull
1export let options = {
2 thresholds: {
3 http_req_duration: ['avg<100', 'p(95)<200'],
4 'http_req_connecting{cdnAsset:true}': ['p(95)<100'],
5 },
6};

Throw

Un booleano, verdadero o falso, que especifica si se lanzan errores en las peticiones HTTP fallidas o no.

EnvCLICode / Config fileDefault
K6_THROW--throw, -wthrowfalse
1export let options = {
2 throw: true,
3};

TLS Auth

Una lista de objetos de configuración de certificados de cliente TLS. Cada objeto debe especificar para qué host(es)/dominio(s) es válido el certificado de cliente dado.

EnvCLICode / Config fileDefault
N/AN/AtlsAuthnull
1export let options = {
2 tlsAuth: [
3 {
4 domains: ['example.com'],
5 cert: open('mycert.pem'),
6 key: open('mycert-key.pem'),
7 },
8 ],
9};

TLS Cipher Suites

Una lista de suites de cifrado permitidas para ser utilizadas por en las interacciones SSL/TLS con un servidor. Para una lista completa de cifrados disponibles, vaya aquí.

EnvCLICode / Config fileDefault
N/AN/AtlsCipherSuitesnull (Allow all suites)
1export let options = {
2 tlsCipherSuites: [
3 'TLS_RSA_WITH_RC4_128_SHA',
4 'TLS_RSA_WITH_AES_128_GCM_SHA256',
5 ],
6};

TLS Version

Either a string representing the only SSL/TLS version allowed to be used in interactions with a server, or an object specifying the "min" and "max" versions allowed to be used.

EnvCLICode / Config fileDefault
N/AN/AtlsVersionnull (Allow all versions)
1export let options = {
2 tlsVersion: 'tls1.2',
3};
4
5// or...
6
7export let options = {
8 tlsVersion: {
9 min: 'ssl3.0',
10 max: 'tls1.2',
11 },
12};

User Agent

Una cadena que especifica la cadena de agente de usuario a utilizar en las cabeceras User-Agent cuando se envían peticiones HTTP. Si se establece como una cadena vacía no se enviará una cabecera User-Agent desde la v0.29.0.

EnvCLICode / Config fileDefault
K6_USER_AGENT--user-agentuserAgentk6/0.27.0 (https://k6.io/) (depending on the version you're using)`
1export let options = {
2 userAgent: 'MyK6UserAgentString/1.0',
3};

VUs

Un valor entero que especifica el número de VUs a ejecutar simultáneamente, utilizado junto con las opciones de iteraciones o duración. Si desea un mayor control, consulte la opción de stages o scenarios.

EnvCLICode / Config fileDefault
K6_VUS--vus, -uvus1
1export let options = {
2 vus: 10,
3};

VUs Max

⚠️ Ten en cuenta!

Esta opción quedó obsoleta en la versión 0.27.0 de k6. Véase en su lugar los escenarios y el ejecutor controlado externamente.

EnvCLICode / Config fileDefault
K6_VUS_MAX--max, -mvusMax0 (unlimited)
1export let options = {
2 vusMax: 10,
3};