- k6 is packed with features, which you can learn all about in the - documentation. Key features include: -
+export const Features = () => { + const { t } = useI18n(); -{t('welcome.features.description')}
-- k6 is a high-performing load testing tool, scriptable in JavaScript. The - architectural design to have these capabilities brings some trade-offs: -
-- As a result, k6 does not render webpages the same way a browser does. - This also means that libraries relying on browser APIs won't be - compatible. By skipping the browser, the consumption of system - resources are dramatically decreased, making the tool significantly - more performant. -
-- k6 can still be used for{' '} - - load testing websites - - . You can even run a test from a{' '} - - recorded user session - - . -
-- JavaScript is not generally well suited for high performance. To - achieve maximum performance, the tool itself is written in Go, - embedding a JavaScript runtime allowing for easy test scripting. -
-- If you want to import npm modules or libraries using NodeJS APIs, you - can{' '} - - bundle npm modules with webpack - {' '} - and import them in your tests. -
-{t('welcome.k6-does-not.description')}
+{t('welcome.k6-does-not.browser.description')}
++ {t('welcome.k6-does-not.browser.testing.text')}{' '} + + {t('welcome.k6-does-not.browser.testing.link')} + + . {t('welcome.k6-does-not.browser.recorded-session.text')}{' '} + + {t('welcome.k6-does-not.browser.recorded-session.link')} + + . +
+{t('welcome.k6-does-not.nodejs.description')}
++ {t('welcome.k6-does-not.nodejs.import.text1')}{' '} + + {t('welcome.k6-does-not.nodejs.import.link')} + {' '} + {t('welcome.k6-does-not.nodejs.import.text2')} +
+- k6 users are typically Developers, QA Engineers, and DevOps. They use k6 - for testing the performance of APIs, microservices, and websites. Common - k6 use cases are: -
+{t('welcome.use-cases.description')}
- k6 is optimized for minimal consumption of system resources. It’s a - high-performance tool designed for running tests with high load ( + {t('welcome.use-cases.load-testing.description1')} + {' ('} { soak tests - ) in pre-production and QA environments. + {') '} + {t('welcome.use-cases.load-testing.description2')}
- k6 provides great primitives for{' '} + {t('welcome.use-cases.performance-monitoring.description1')}{' '} - performance testing automation + {t('welcome.use-cases.performance-monitoring.testing-automation')} - . You could run tests with a small amount of load to continuously - monitor the performance of your production environment. + {'. '} + {t('welcome.use-cases.performance-monitoring.description2')}
- k6 is a developer-centric, free and open-source load testing tool built - for making performance testing a productive and enjoyable experience. -
-- Using k6, you'll be able to catch performance regression and - problems earlier, allowing you to build resilient systems and robust - applications. -
+{t('welcome.what-is.description1')}
+{t('welcome.what-is.description2')}
+Para obtener información adicional, lea la documentación de Datadog Docker Agent. ++ +### DogStatsD + +El agente Datadog incluye el servicio [DogStatsD](https://docs.datadoghq.com/developers/dogstatsd/) para recoger y agregar métricas. DogStatsD implementa el protocolo [StatsD](https://github.com/etsy/statsd) con algunas extensiones. Por ejemplo, el [etiquetado de DogStatsD](https://docs.datadoghq.com/tagging/) permite recopilar métricas de k6 con etiquetas para distinguir entre solicitudes de diferentes URLs, estatus de la respuesta, grupos, etc. + +La instrucción anterior ejecuta el servicio `DogStatsD` en un [contenedor Docker](https://docs.datadoghq.com/developers/dogstatsd/?tab=containeragent#agent), pero también es posible ejecutarlo como [Host Agent](https://docs.datadoghq.com/developers/dogstatsd/?tab=hostagent#agent), [Kubernetes](https://docs.datadoghq.com/developers/dogstatsd/?tab=kubernetes#agent), and [Helm](https://docs.datadoghq.com/developers/dogstatsd/?tab=helm#agent). + + +## Ejecutar el test k6 + + +Una vez que el servicio de Datadog Agent está funcionando, ejecute la prueba con k6 y envíe las métricas al Agent con: + +
+ +Para saber más sobre todos los tipos de métricas de k6, lea la guía de [métricas de k6](/using-k6/metrics). + ++ +La primera vez que Datadog detecta la métrica `k6.http_reqs`, la integración de k6 se instala automáticamente, y el panel de control de k6 por defecto se añade a su lista de paneles. + + + +Opcionalmente, puede instalar la integración de k6 siguiendo estas instrucciones: + +1. Inicie sesión en `Datadog`. +2. En el menú de la barra lateral, seleccione `Integrations` > `Integrations`. +3. Busque `k6`, luego seleccione la integración con `k6`. +4. Haga clic en la opción de la pestaña `Configuration`. +5. Haga scroll hasta abajo y haga clic en el botón `Install integration`. diff --git a/src/data/markdown/translated-guides/es/04 Results visualization/05 InfluxDB - Grafana.md b/src/data/markdown/translated-guides/es/04 Results visualization/05 InfluxDB - Grafana.md new file mode 100644 index 0000000000..78afafa545 --- /dev/null +++ b/src/data/markdown/translated-guides/es/04 Results visualization/05 InfluxDB - Grafana.md @@ -0,0 +1,141 @@ +--- +title: 'InfluxDB + Grafana' +excerpt: '' +--- + +Puedes utilizar [Grafana](https://grafana.com/grafana/) para visualizar las métricas de k6. + +El primer paso es subir las métricas de los resultados de las pruebas a un backend de almacenamiento. Y a continuación, configurar Grafana para obtener los datos de su backend para visualizar los resultados de las pruebas. + +Este tutorial muestra cómo subir las métricas de los resultados de las pruebas a una instancia de [InfluxDB](https://github.com/influxdata/influxdb) y configurar Grafana para consultar las [métricas de k6](/using-k6/metrics) desde InfluxDB. + + + +## Instalando InfluxDB + +Las instrucciones completas de instalación están disponibles en los [documentación de InfluxDB](https://docs.influxdata.com/influxdb/v1.2/introduction/installation/). + +
+ +#### Realice una estimación de costes antes de iniciar un soak test + +El soak test puede simular días o semanas de tráfico normal en unas pocas horas. Esto significa que sus costes de infraestructura y de proveedores pueden ser significativos. + +Si está probando un sitio web, debería considerar excluir su CDN de la prueba. + +Si su sistema hace uso de servicios externos, es posible que quiera calcular el coste antes de comenzar la prueba. + ++ +## Cuando hacer soak testing? + +Estas pruebas le ayudan a descubrir los errores y problemas de fiabilidad que surgen durante un período prolongado. Muchos sistemas complejos tienen fallos de este tipo. + +Deberías ejecutar estas pruebas después de que las pruebas de carga estándar hayan tenido éxito, y de que tu sistema se haya encontrado estable al ejecutar una prueba de estrés. + +Soak Testing son el último gran paso en el camino hacia la construcción de sistemas fiables. + + +## Vea también + +- [Ejecución de pruebas a gran escala](/testing-guides/running-large-tests) \ No newline at end of file diff --git a/src/data/markdown/translated-guides/es/05 Test Types/images/load-test-2.png b/src/data/markdown/translated-guides/es/05 Test Types/images/load-test-2.png new file mode 100644 index 0000000000..0a69be23e6 Binary files /dev/null and b/src/data/markdown/translated-guides/es/05 Test Types/images/load-test-2.png differ diff --git a/src/data/markdown/translated-guides/es/05 Test Types/images/load-test.png b/src/data/markdown/translated-guides/es/05 Test Types/images/load-test.png new file mode 100644 index 0000000000..b69cd6c2c1 Binary files /dev/null and b/src/data/markdown/translated-guides/es/05 Test Types/images/load-test.png differ diff --git a/src/data/markdown/translated-guides/es/05 Test Types/images/smoke-test-terminal-output.png b/src/data/markdown/translated-guides/es/05 Test Types/images/smoke-test-terminal-output.png new file mode 100644 index 0000000000..2824e2c768 Binary files /dev/null and b/src/data/markdown/translated-guides/es/05 Test Types/images/smoke-test-terminal-output.png differ diff --git a/src/data/markdown/translated-guides/es/05 Test Types/images/smoke-test.png b/src/data/markdown/translated-guides/es/05 Test Types/images/smoke-test.png new file mode 100644 index 0000000000..7429496b2d Binary files /dev/null and b/src/data/markdown/translated-guides/es/05 Test Types/images/smoke-test.png differ diff --git a/src/data/markdown/translated-guides/es/05 Test Types/images/soak-test.png b/src/data/markdown/translated-guides/es/05 Test Types/images/soak-test.png new file mode 100644 index 0000000000..b841acd9fa Binary files /dev/null and b/src/data/markdown/translated-guides/es/05 Test Types/images/soak-test.png differ diff --git a/src/data/markdown/translated-guides/es/05 Test Types/images/spike-test.png b/src/data/markdown/translated-guides/es/05 Test Types/images/spike-test.png new file mode 100644 index 0000000000..a35079dc04 Binary files /dev/null and b/src/data/markdown/translated-guides/es/05 Test Types/images/spike-test.png differ diff --git a/src/data/markdown/translated-guides/es/05 Test Types/images/stress-test.png b/src/data/markdown/translated-guides/es/05 Test Types/images/stress-test.png new file mode 100644 index 0000000000..449dd80b03 Binary files /dev/null and b/src/data/markdown/translated-guides/es/05 Test Types/images/stress-test.png differ diff --git a/src/data/markdown/translated-guides/es/05 Test Types/images/test-types.png b/src/data/markdown/translated-guides/es/05 Test Types/images/test-types.png new file mode 100644 index 0000000000..f488149453 Binary files /dev/null and b/src/data/markdown/translated-guides/es/05 Test Types/images/test-types.png differ diff --git a/src/data/markdown/translated-guides/es/06 Testing Guides/01 API load testing.md b/src/data/markdown/translated-guides/es/06 Testing Guides/01 API load testing.md new file mode 100644 index 0000000000..de9c0a1199 --- /dev/null +++ b/src/data/markdown/translated-guides/es/06 Testing Guides/01 API load testing.md @@ -0,0 +1,246 @@ +--- +title: 'Pruebas de carga para APIs' +excerpt: 'En esta guía, aprenderás cómo hacer pruebas de carga a las APIs y cuáles son las mejores prácticas a tener en cuenta.' +--- + +Es muy importante probar los APIs usando varios métodos y herramientas de prueba. Desde las pruebas unitarias hasta las de rendimiento, además necesitan tener planes de prueba y ejecutarlos con precaución. Un tipo de prueba para las APIs consiste en agregarles carga para ver cómo se comporta la misma, de ahí el concepto: pruebas de carga. + +En esta guía, aprenderás cómo hacer pruebas de carga a las APIs y cuáles son las mejores prácticas a tener en cuenta. También conocerás nuestras herramientas, que le ayudarán a generar o convertir su documentación o pruebas de APIs existentes en scripts de k6. + +## Cómo hacer pruebas de carga para API con k6 + +k6 es nuestra herramienta de pruebas de carga para desarrolladores. Puede escribir código JavaScript para probar la carga de su API. Esto es diferente en comparación con otras herramientas, que se centran más en las pruebas simples por el forzado de uno o varios endpoints a través de solicitudes predefinidas, en la que, puede escribir un flujo de escenarios de los usuarios en JavaScript para realizar todo tipo de pruebas de carga. El uso de esta herramienta le ayudará a lograr mucho más, ya que brinda la posibilidad de: + +1. Escribir sus pruebas en este conocido lenguaje de scripting, ES5.1(+). +2. Utilizar la correlación para conectar fácilmente varias solicitudes. (Por ejemplo, puede iniciar una sesión en su API, extraer la clave de la API en la respuesta y utilizarla para realizar otras solicitudes, con una clave de la API única dedicada a esa sesión específica). +3. Tener la opción de establecer umbrales en sus peticiones para alcanzar sus SLO. +4. Automatizar sus pruebas de carga usando una herramienta CI. + +Los binarios de k6 están disponibles para varias plataformas, por lo que ya no es necesario instalar un lenguaje de ejecución. Es realmente fácil de usar al proporcionar una interfaz de línea de comandos: + +```bash +$ k6 run script.js +``` + +Usando este comando, puede ejecutar su script de prueba de carga y agregarle carga a el API. Como ya estás en la documentación, asegúrate de buscar los detalles que se adapten a tu caso de uso. Para darte un ejemplo, echa un vistazo al siguiente script, tomado de la sección [Peticiones HTTP](/using-k6/http-requests) de la documentación. Utiliza la [API k6/http](/javascript-api/k6-http) para realizar una solicitud de prueba de carga. Puedes jugar fácilmente con el ejemplo para crear tu propio script. Las siguientes secciones describen cómo hacer una prueba de carga, ya sea forzando un endpoint o probando el flujo de usuarios (escenario). + +### Benchmarking un endpoint + +Supongamos que quieres probar la carga de tu endpoint del login para ver cuántas peticiones puede manejar concurrentemente. A continuación un ejemplo: + +```javascript +import http from 'k6/http'; + +export default function () { + var url = 'http://api.yourplatform.com/login'; + var payload = JSON.stringify({ + email: 'johndoe@example.com', + password: 'PASSWORD', + }); + + var params = { + headers: { + 'Content-Type': 'application/json', + }, + }; + + http.post(url, payload, params); +} +``` + +Se muestra una petición HTTP simple, que se ejecuta una vez. Ajustando los argumentos de la línea de comandos, puede ajustar el número de peticiones concurrentes que desea realizar. Este comando creará 1000 sesiones concurrentes de (usuarios virtuales), y ejecutará esta única petición 10 veces por cada usuario virtual, por lo tanto serán 10.000 iteraciones. + +```bash +$ k6 run --vus 1000 --iterations 10000 script.js +``` + +Aunque forzar un endpoint es bueno en algunos casos, por ejemplo, si quiere probar endpoints de forma aislada, se recomienda tener en cuenta otros endpoints y escribir un script de prueba de carga basado en el escenario. + +### Pruebas de flujo de usuarios (escenarios) + +En el siguiente ejemplo, se muestran cuatro peticiones HTTP consecutivas al API de iniciar sesión, se obtiene el perfil del usuario, actualiza el perfil del usuario y, finalmente, cierra la sesión. Cada solicitud tiene características únicas, acepta algunos parámetros y finalmente devuelve una respuesta, que se comprueba con un conjunto de reglas. También hacemos una pausa después de cada solicitud y respuesta, para que la API pueda seguir el ritmo y no se vea sobrecargada. Al principio del script, también hemos añadido un conjunto de opciones que sirven para controlar el script. + +Las iteraciones son el número que especifica cuántas ejecuciones del script por VU deben ocurrir, la cual se divide por el número de VU. VUs es el número que especifica la cantidad de sesiones concurrentes de los VUs al API. Por lo tanto, de las iteraciones y los VUs se deduce que probablemente se ejecutará cada VU alrededor de 10 iteraciones, dependiendo del tiempo de respuesta del API y de la velocidad de la red. + +Como puede ver, este es un flujo de usuario bastante normal, aunque simple, que intenta imitar el comportamiento del usuario mientras usa nuestra aplicación móvil o sitio web. En aras de la simplicidad, sólo se han mostrado cuatro peticiones, pero puedes añadir fácilmente peticiones adicionales para poder tener una experiencia de usuario más realista. De esta forma podrás probar el flujo de navegación de tus usuarios en tu aplicación o plataforma. Este es el punto que distingue a k6 de la mayoría de las herramientas de pruebas de carga disponibles en la actualidad, en el sentido de que puede utilizarse para probar flujos de usuarios realistas, en lugar de limitarse a estresar un conjunto de puntos finales. + + +```javascript +import http from 'k6/http'; +import { check, sleep } from 'k6'; + +let options = { + vus: 1000, + duration: '600s', +}; +const SLEEP_DURATION = 0.1; + +export default function () { + let body = JSON.stringify({ + username: 'user_' + __ITER, + password: 'PASSWORD', + }); + let params = { + headers: { + 'Content-Type': 'application/json', + }, + tags: { + name: 'login', // first request + }, + }; + + group('simple user journey', (_) => { + // Login request + let login_response = http.post( + 'http://api.yourplatform.com/v2/login', + body, + params, + ); + check(login_response, { + 'is status 200': (r) => r.status === 200, + 'is api key present': (r) => r.json().hasOwnProperty('api_key'), + }); + params.headers['api-key'] = login_response.json()['api_key']; + sleep(SLEEP_DURATION); + + // Get user profile request + params.tags.name = 'get-user-profile'; + let user_profile_response = http.get( + 'http://api.yourplatform.com/v2/users/user_' + __ITER + '/profile', + params, + ); + sleep(SLEEP_DURATION); + + // Update user profile request + body = JSON.string({ + first_name: 'user_' + __ITER, + }); + params.tags.name = 'update-user-profile'; + let update_profile_response = http.post( + 'http://api.yourplatform.com/v2/users/user_' + __ITER + '/profile', + body, + params, + ); + sleep(SLEEP_DURATION); + + // Logout request + params.tags.name = 'logout'; + let logout_response = http.get( + 'http://api.yourplatform.com/v2/logout', + params, + ); + sleep(SLEEP_DURATION); + }); +} +``` + +## Usuarios virtuales(VU) vs. tasa de solicitudes constante + +Históricamente, hay dos tipos de categorías de herramientas de pruebas de carga: con script y sin script. Las herramientas que no dependen de un script generan peticiones a uno o varios endpoints sin ninguna correlación entre las peticiones, proporcionando la opción de definir una tasa de peticiones constante para llegar a un endpoint. Por otro lado, las herramientas que dependen de un script suelen estar diseñadas para facilitar las pruebas de flujo de usuarios, proporcionando así la opción de configurar el número de usuarios virtuales para establecer la carga de su prueba. k6 pertenece a esta categoría. + +k6 se incluye la función de [scenarios](/using-k6/scenarios), donde se pueden configurar múltiples escenarios y modelar diferentes patrones de tráfico. El motor de ejecución de k6 ha sido completamente renovado y ahora incluye soporte para diferentes [executors](/using-k6/scenarios#executors) en cada escenario. Ahora puede utilizar el ejecutor de tasa de llegada constante para [generar una tasa de solicitud constante](https://k6.io/blog/how-to-generate-a-constant-request-rate-with-the-new-scenarios-api). + +## Creación de las pruebas + + +Es posible crear una prueba, y eventualmente ejecutarla con k6, de múltiples maneras. Puedes escribir tus pruebas en tu editor favorito, convertir tus colecciones de Postman existentes y los documentos de especificación Swagger/OpenAPI en scripts o utilizar la grabación de proxy como archivos HAR y convertirlos en scripts de k6. La forma recomendada es definitivamente escribir sus propios scripts. Las otras herramientas están disponibles sólo para ayudarle con la introducción a k6. Hay un conjunto de herramientas que pueden ayudarte a crear pruebas de carga y ejecutarlas para obtener información sobre su sistema. + + + +Como es evidente en el diagrama anterior, hay cuatro herramientas diferentes para ayudar a incorporar a los usuarios existentes a k6. La mejor manera es hacer su propio script personalizado, pero puede utilizar nuestros convertidores para ayudarle a generar un script a partir de sus colecciones de postman existentes, documentos de especificación swagger, fiddler y grabaciones [HAR](
+ +Por favor, tenga en cuenta que todas estas limitaciones se ponen en marcha para proteger su sistema operativo de los archivos y aplicaciones que están mal escritas y que podrían tener fugas de memoria en grandes cantidades. Le sugerimos que no se exceda con los valores, o podría encontrar que su sistema se ralentiza o puede que se quede sin RAM. + ++ +## Rango de puertos locales + +Cuando se crea una conexión de red saliente, el núcleo asigna un puerto local (de origen) para la conexión de entre un rango de puertos disponibles. + +**> GNU/Linux** + +En GNU/Linux puedes ver este rango con: + +```bash +$ sysctl net.ipv4.ip_local_port_range net.ipv4.ip_local_port_range = 32768 60999 +``` + +Aunque 28.231 puertos pueden ser suficientes para la mayoría de los casos de uso, esto puede ser un factor limitante si estás probando con miles de conexiones. Puedes aumentarlo, por ejemplo: + +```bash +sysctl -w net.ipv4.ip_local_port_range="16384 65000" +``` + +Tenga en cuenta que este rango se aplica tanto a TCP como a UDP, así que sea conservador con los valores que elija y aumente según sea necesario. + +Para que los cambios sean permanentes, añada `net.ipv4.ip_local_port_range=16384 65000` a `/etc/sysctl.conf`. Ajustes de último recurso Si sigue experimentando problemas de red con los cambios anteriores, considere la posibilidad de activar `net.ipv4.tcp_tw_reuse`: + + +```bash +sysctl -w net.ipv4.tcp_tw_reuse=1 +``` + +Esto permitirá una función para reutilizar rápidamente las conexiones en estado TIME_WAIT, lo que potencialmente producirá un mayor rendimiento. + +**> macOS/Linux** + +En macOS el rango de puertos efímeros por defecto es de 49152 a 65535, para un total de 16384 puertos. Puede comprobarlo con el comando sysctl: + +```bash +$ sysctl net.inet.ip.portrange.first net.inet.ip.portrange.last + +net.inet.ip.portrange.first: 49152 +net.inet.ip.portrange.last: 65535 +``` + +Una vez que se le acaben los puertos efímeros, normalmente tendrá que esperar hasta que el estado TIME_WAIT expire (2 * vida máxima del segmento) hasta que pueda reutilizar un número de puerto en particular. Puede duplicar el número de puertos cambiando el rango para que comience en 32768, que es el predeterminado en Linux y Solaris. (El número máximo de puertos es 65535, por lo que no puede aumentar el extremo superior). + +```bash +$ sudo sysctl -w net.inet.ip.portrange.first=32768 + +net.inet.ip.portrange.first: 49152 -> 32768 +``` + +Tenga en cuenta que el rango oficial designado por IANA es de 49152 a 65535, y algunos cortafuegos pueden asumir que los puertos asignados dinámicamente se encuentran dentro de ese rango. Es posible que tenga que reconfigurar su cortafuegos para poder utilizar un rango mayor fuera de su red local. + +## Optimizaciones generales + +En esta sección repasaremos algunas de las optimizaciones que no dependen necesariamente de tu sistema operativo, pero que pueden afectar a tus pruebas. + +### Uso de la RAM + +Dependiendo de la prueba particular de k6: número máximo de VUs utilizadas, número y tamaño de las dependencias de JavaScript, y complejidad del propio script de prueba, k6 puede consumir grandes cantidades de RAM del sistema durante la ejecución de la prueba. Aunque el desarrollo se centra en reducir el uso de la memoria RAM en la medida de lo posible, una sola ejecución de prueba puede utilizar decenas de gigabytes de RAM en determinados escenarios. + +Como referencia, cuente que cada instancia de VU requiere entre 1MB y 5MB de RAM, dependiendo de la complejidad de su script y sus dependencias. Esto es aproximadamente entre `GB y 5GB de RAM del sistema requerido para una prueba de 1.000 VU, así que asegúrese de que hay suficiente RAM física disponible para satisfacer las demandas de su prueba. + +Si necesita disminuir el uso de RAM, puede utilizar la opción `--compatibility-mode=base`. Más información en [JavaScript Compatibility Mode](/using-k6/javascript-compatibility-mode). + +### Memoria virtual + +Además de la RAM física, asegúrese de que el sistema está configurado con una cantidad adecuada de memoria virtual, o espacio de intercambio, en caso de que se requieran ráfagas de uso de memoria más altas. + +Puedes ver el estado y la cantidad de espacio de intercambio disponible en tu sistema con los comandos swapon o free. + +No vamos a entrar en detalles de configuración de swap, pero puedes encontrar varias guías en línea. + +### Rendimiento de la red + +Dado que k6 puede generar y mantener grandes cantidades de tráfico de red, también se pone a prueba la pila de red de los sistemas operativos modernos. Bajo ciertas cargas o condiciones de red, es posible conseguir un mayor rendimiento y una mejor prestación ajustando algunos parámetros de red del sistema operativo o reestructurando las condiciones de red de la prueba. + +### TCP TIME_WAIT period + +A las aplicaciones de red TCP, como los clientes y servidores web, se les asigna un par de sockets de red (una combinación única de dirección local, puerto local, dirección remota y puerto remoto) para cada conexión entrante o saliente. Normalmente, este par de sockets se utiliza para una única sesión de solicitud/respuesta HTTP y se cierra poco después. Sin embargo, incluso después de que una conexión sea cerrada con éxito por la aplicación, el kernel puede seguir reservando recursos para reabrir rápidamente el mismo socket si llega un nuevo segmento TCP que coincida. Esto también ocurre durante la congestión de la red, donde algunos paquetes se pierden en la transmisión. Esto coloca el socket en un estado TIME_WAIT, y se libera una vez que el período TIME_WAIT expira. Este periodo se suele configurar entre 15 segundos y 2 minutos. + +El problema con el que se pueden encontrar algunas aplicaciones como k6 es el de provocar que un elevado número de conexiones acaben en el estado TIME_WAIT, lo que puede impedir que se creen nuevas conexiones de red. + +En estos escenarios, antes de realizar cambios en la configuración de red del sistema, que podrían tener efectos secundarios adversos para otras aplicaciones, es preferible tomar primero algunas precauciones comunes de prueba. Utilizar diferentes puertos o IPs del servidor + +Dado que los sockets se crean únicamente para una combinación de dirección local, puerto local, dirección remota y puerto remoto, una solución segura para evitar la congestión TIME_WAIT es utilizar diferentes puertos o direcciones IP del servidor. + +Por ejemplo, puede configurar su aplicación para que se ejecute en los puertos :8080, :8081, :8082, etc. y repartir sus peticiones HTTP entre estos endpoints. + +## Véase también + +- [Ejecución de pruebas a gran escala](/testing-guides/running-large-tests) +- [JavaScript Compatibility Mode](/using-k6/javascript-compatibility-mode) diff --git a/src/data/markdown/translated-guides/es/07 Misc/04 k6 REST API.md b/src/data/markdown/translated-guides/es/07 Misc/04 k6 REST API.md new file mode 100644 index 0000000000..4f25747d79 --- /dev/null +++ b/src/data/markdown/translated-guides/es/07 Misc/04 k6 REST API.md @@ -0,0 +1,584 @@ +--- +title: 'k6 REST API' +excerpt: '' +hideFromSidebar: true +--- + +When k6 starts, it spins up an HTTP server with a REST API that can be used to control some +parameters of the test execution. By default, that server listens on `localhost:6565`, but +that can be modified by the `--address` CLI flag. + +With this API you can see and control different execution aspects like number of VUs, Max +VUs, pause or resume the test, list groups, set and get the setup data and so on. + +You can also find practical usage examples in +[this blog post](https://k6.io/blog/how-to-control-a-live-k6-test). + +## Get Status + +**GET** `http://localhost:6565/v1/status` + +
- The k6 Cloud is a commercial SaaS product that we’ve designed - to be the perfect companion to k6 OSS. It brings ease-of-use - and convenience to your performance and load testing. -
-- This knowledge base will help you learn how to use the - features and functionality of the k6 Cloud: -
-- The k6 Cloud is a premium service to empower your team to - manage your load testing efforts: -
-- We want you to spend time building and maintaining - well-performing applications. Don’t saddle your team with the{' '} - - additional maintenance burden - {' '} - of your load testing infrastructure. --
+ The k6 Cloud is a commercial SaaS product that we’ve + designed to be the perfect companion to k6 OSS. It brings + ease-of-use and convenience to your performance and load + testing. +
++ This knowledge base will help you learn how to use the + features and functionality of the k6 Cloud: +
++ The k6 Cloud is a premium service to empower your team to + manage your load testing efforts: +
++ We want you to spend time building and maintaining + well-performing applications. Don’t saddle your team with + the{' '} + + additional maintenance burden + {' '} + of your load testing infrastructure. ++
- Please get in touch with us on{' '} - - Slack - {' '} - if you have a tool or add-on that works well with k6, and we - will list it here! -
-+ Please get in touch with us on{' '} + + Slack + {' '} + if you have a tool or add-on that works well with k6, and we + will list it here! +
+