Loading repository data…
Loading repository data…
charlyautomatiza / repository
Repositorio que forma parte del workshop de la academia Performance 360. Contiene scripts de pruebas de rendimiento desarrollados con K6 y una GitHub Actions para la ejecución continua de las pruebas en CI/CD.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Este repositorio contiene scripts de pruebas de rendimiento desarrollados con K6 y una GitHub Actions para la ejecución continua de las pruebas en CI/CD.
Antes de ejecutar las pruebas, asegúrate de tener K6 instalado en tu sistema. Sigue las instrucciones en la documentación oficial.
git clone https://github.com/charlyautomatiza/k6-performance-360.git
cd k6-performance-360
Para realizar una ejecución local:
k6 run ./src/script.js
Para usar K6 WebDashboard:
K6_WEB_DASHBOARD=true k6 run ./src/script.js
Para guardar el reporte como un archivo HTML, podemos ejecutar el siguiente comando
K6_WEB_DASHBOARD=true K6_WEB_DASHBOARD_EXPORT=html-report.html k6 run ./src/script.js
Para ejecutar un test de browser, podemos ejecutar el siguiente comando:
K6_BROWSER_HEADLESS=true k6 run ./src/browser.js
Observe que la variable de ambiente K6_BROWSER_HEADLESS debe ser definida como true para ser ejecutada en herramientas de integración contínua. Para ejecución y depuración en local, es útil usar la variable con el valor definido como false para ejecutar el browser en primer plano.
K6_BROWSER_HEADLESS=false k6 run ./src/browser.js
Para probar los ejemplos de ejecución externa deberás tener instalado un cliente http como por ejemplo Postman o .
Importante: todos los cURLs utilizados pueden ejecutarse desde la línea de comandos o también pueden importarse desde tu cliente de preferencia.
Puedes utilizar una request de tipo GET mediante la API de K6
curl --request GET \
--url http://localhost:6565/v1/status \
--header 'Content-Type: application/json'
Puedes utilizar una request de tipo PATCH a la API de K6, similar a la siguiente
curl --request PATCH \
--url http://localhost:6565/v1/status \
--header 'Content-Type: application/json' \
--data '{
"data": {
"attributes": {
"paused": true
},
"id": "default",
"type": "status"
}
}'
Se destaca lo siguiente del paso anterior:
paused: true -> pausa la ejecución.Puedes utilizar una request de tipo PATCH a la API de K6, similar a la siguiente
curl --request PATCH \
--url http://localhost:6565/v1/status \
--header 'Content-Type: application/json' \
--data '{
"data": {
"attributes": {
"paused": false,
"vus": 40
},
"id": "default",
"type": "status"
}
}'
Se destaca lo siguiente del paso anterior:
paused: false -> Reanuda la ejecución.vus: 40 -> tiene que ser un valor mayor a la cantidad de VUs actual y menor o igual a la cantidad máxima de VUs definida en el script.Este tipo de ejecución es una opción para simular carga distribuida desde múltiples generadores de , la API de K6 no proporcionará versatilidad para gestionar este tipo de ejecución desde una máquina host.
Para el caso de que se cuente con infra propia puede ser una opción a ser considerada en combinación, por ejemplo, con el uso e implementación de herramientas como NGROK
Este repositorio incluye una GitHub Actions configurada para ejecutar pruebas continuamente en el branch principal. La acción está definida en el archivo k6-runner.yml.
Este proyecto está bajo la licencia Creative Commons CC0 1.0 Universal.