Ir al contenido

Subir scripts y archivos de datos de k6

Cada test k6 en LoadFocus se ejecuta a partir de un script que tú escribes. El paso 1 Su script de prueba en la página del nuevo test k6 es donde subes ese script, junto con los archivos de datos que lee en tiempo de ejecución.

  • Un script de test k6, escrito en JavaScript (.js) o TypeScript (.ts). Es el único archivo obligatorio.
  • Archivos de datos, si tu script lee datos externos. Un CSV de cuentas de usuario o un JSON de payloads son los casos más comunes.

Abre Nuevo test k6. El paso 1 Su script de prueba está arriba en la página. Puedes arrastrar tus archivos al área de subida o hacer clic en Subir scripts y archivos k6 para buscarlos.

Sube el script y sus archivos de datos juntos. Terminan en el mismo directorio cuando se ejecuta el test, así que un script que lee users.csv lo encuentra justo a su lado.

Extensión Uso habitual
.js Tu script de test k6
.ts Un script de test en TypeScript
.csv Datos por fila, como cuentas o términos de búsqueda
.json Payloads estructurados o fixtures
.txt Datos en texto plano
.env, .properties Valores de configuración que lee tu script

Puedes subir hasta 10 archivos por prueba, cada uno de hasta 100 MB.

k6 lee archivos con open(), y el archivo está junto a tu script, así que basta con una ruta relativa. Carga los datos una sola vez en la etapa de init en lugar de en cada iteración, para que todos los usuarios virtuales la compartan:

import { SharedArray } from 'k6/data';
import http from 'k6/http';
const users = new SharedArray('users', function () {
return open('./users.csv')
.split('\n')
.slice(1)
.filter(Boolean)
.map((line) => {
const [username, password] = line.split(',');
return { username, password };
});
});
export default function () {
const user = users[Math.floor(Math.random() * users.length)];
http.post('https://example.com/login', {
username: user.username,
password: user.password,
});
}

SharedArray mantiene una sola copia de los datos en memoria para todos los usuarios virtuales. Sin ella, cada usuario virtual analiza su propia copia, lo que consume memoria que preferirías dedicar a la carga.

Cómo se comportan los archivos entre generadores de carga

Sección titulada «Cómo se comportan los archivos entre generadores de carga»

Un test con suficientes usuarios virtuales se ejecuta en más de un generador de carga. Cada generador de carga recibe los mismos archivos subidos, así que cada uno tiene su propia copia de tus datos.

Esto importa cuando tus datos no deben reutilizarse. Si cada fila representa una cuenta o un cupón de un solo uso, dos generadores de carga pueden elegir la misma fila, porque ninguno sabe lo que el otro ya ha tomado. Cuando un valor debe consumirse exactamente una vez, haz que el script lo solicite a un endpoint que tú controles en lugar de leerlo de un archivo.

Tus archivos aparecen listados bajo el área de subida, donde puedes eliminar los que hayas añadido por error y subir un reemplazo. Una vez que el script está en su sitio, configura tus usuarios virtuales, la duración y las ubicaciones del test, y luego inicia el test.