You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Puede definir estas opciones en el script de prueba. En la siguiente prueba, 50 usuarios simultáneos ejecutan continuamente el flujo `default` durante 30 segundos.
99
+
Esto se puede definir en la seccion de opciones (options) en el script de prueba. En la siguiente prueba, 50 usuarios simultáneos ejecutan continuamente el flujo `default` durante 30 segundos.
100
100
101
101
```javascript
102
102
importhttpfrom'k6/http';
@@ -116,25 +116,25 @@ export default function () {
116
116
}
117
117
```
118
118
119
-
### Tasa de solicitudes
119
+
### Flujo de solicitudes
120
120
121
-
Al analizar el rendimiento del punto final de la API, la carga generalmente se calcula por velocidad de solicitud, ya sean solicitudes por segundo o por minuto.
121
+
Al analizar el rendimiento del punto final (endpoint) de la API, la carga generalmente se calcula por flujo de solicitudes, ya sean solicitudes por segundo o por minuto.
122
122
123
-
Para configurar las cargas de trabajo de acuerdo con una tasa de solicitud objetivo, utilice [constant arrival rate executor](https://k6.io/docs/using-k6/scenarios/executors/constant-arrival-rate/).
123
+
Para configurar las cargas de trabajo de usando un objetivo de flujo de solicitudes, utilice el ejecutor (executor) [constant arrival rate](https://k6.io/docs/using-k6/scenarios/executors/constant-arrival-rate/).
124
124
125
-
`constant-arrival-rate` establece una tasa constante de iteraciones que ejecutan la función del script. Cada iteración puede generar una o varias solicitudes.
125
+
`constant-arrival-rate` establece una tasa constante de ejecuciones sobre la función del script. Cada iteración puede generar una o varias solicitudes.
126
126
127
-
Para alcanzar un objetivo de tasa de solicitudes (`RequestsRate`), siga estos pasos:
127
+
Para alcanzar un objetivo de flujo de solicitudes (`RequestsRate`), siga estos pasos:
128
128
129
-
1. Fije la frecuencia de la tasa en la unidad de tiempo del objetivo. Por segundo o por minuto.
130
-
2.Obtenga el número de solicitudes por iteración (`RequestsPerIteration`).
129
+
1. Fije el objetivo de la frecuencia de solicitudes por unidad de tiempo, ya sea por segundo o por minuto.
130
+
2.Busque cuantas solicitudes se hacen por iteración (`RequestsPerIteration`).
131
131
3. Establezca la tasa de iteración dividiendo las solicitudes objetivo por segundo entre el número de solicitudes por iteración.
132
132
133
133
`rate` = `RequestsRate ÷ RequestsPerIteration`.
134
134
135
135
Para alcanzar el objetivo de 50 solicitudes por segundo con el ejemplo anterior:
136
136
137
-
1. Establezca las opciones`timeUnit` en `1s`.
137
+
1. Establezca la opción`timeUnit` en `1s`.
138
138
2. El número de solicitudes por iteración es 1.
139
139
3. Defina la opción `rate` en 50/1 (para que sea igual a 50).
140
140
@@ -164,7 +164,7 @@ export default function () {
164
164
}
165
165
```
166
166
167
-
Esta prueba genera el número total de solicitudes HTTP y RPS en la métrica `http_reqs`:
167
+
Esta prueba genera el número total de solicitudes HTTP y RPS (solicitudes por segundo) en la métrica `http_reqs`:
168
168
169
169
```bash
170
170
# the reported value is close to the 50 RPS target
@@ -174,17 +174,17 @@ Esta prueba genera el número total de solicitudes HTTP y RPS en la métrica `ht
174
174
iterations.....................: 1501 49.84156/s
175
175
```
176
176
177
-
Para ver un ejemplo más extenso, consulte esta publicación sobre[generating a constant request rate](https://k6.io/blog/how-to-generate-a-constant-request-rate-with-the-new-scenarios-api/).
177
+
Para ver un ejemplo más detallado, consulte la siguiente publicación:[generating a constant request rate](https://k6.io/blog/how-to-generate-a-constant-request-rate-with-the-new-scenarios-api/).
178
178
179
-
Con el ejecutor `constant-arrival-rate`, la carga será constante durante toda la prueba. Para aumentar o reducir la tasa de solicitudes, utilice el ejecutor [`ramping-arrival-rate`](https://k6.io/docs/using-k6/scenarios/executors/ramping-arrival-rate/) en su lugar.
179
+
Usando el ejecutor (executor) `constant-arrival-rate`, la carga será constante durante toda la prueba. Para aumentar o reducir el flujo de solicitudes, utilice el ejecutor [`ramping-arrival-rate`](https://k6.io/docs/using-k6/scenarios/executors/ramping-arrival-rate/) en su lugar.
180
180
181
181
Para ver todas las formas de modelar la carga en k6, consulte [Scenarios](https://k6.io/docs/using-k6/scenarios/).
182
182
183
183
## Verificar la funcionalidad con Checks (comprobaciones)
184
184
185
185
Tradicionalmente, las pruebas de rendimiento se centran más en:
186
186
187
-
- La latencia: cómo de rápido responde el sistema.
187
+
- La latencia: qué tan rápido responde el sistema.
188
188
- La disponibilidad: con qué frecuencia devuelve errores el sistema.
189
189
190
190
La métrica `http_req_duration` informa de la latencia y `http_req_failed` informa sobre la tasa de errores de las solicitudes HTTP. Estos son los resultados de la prueba anterior:
Es posible que el análisis de la prueba deba ir más allá de lo que permiten las métricas predeterminadas. Para obtener un análisis más relevante de los resultados, es posible que también desee validar las funcionalidades e informar de los errores.
198
+
Es posible que el análisis de los resultados de la prueba deba ir más allá de lo que permiten las métricas predeterminadas de k6. Para obtener un análisis más relevante de los resultados, es posible que también desee validar las funcionalidades e informar de los errores.
199
199
200
-
Algunos fallos de la aplicación ocurren solo bajo ciertas condiciones de carga, como un alto tráfico. Estos errores son difíciles de encontrar. Para encontrar la causa de los fallos más rápidamente, instrumente sus API y verifique que las solicitudes obtengan las respuestas esperadas. Para verificar la lógica de la aplicación en k6, puede usar `Checks`.
200
+
Algunos fallos de la aplicación ocurren solo bajo ciertas condiciones de carga, como un alto tráfico. Estos errores son difíciles de encontrar. Para encontrar la causa de los fallos más rápidamente, instrumente sus APIs y verifique que las solicitudes obtengan las respuestas esperadas. Para verificar la respuesta de la aplicación en k6, puede usar `Checks`.
201
201
202
-
[Checks](https://k6.io/docs/using-k6/checks/) valida las condiciones durante la ejecución de la prueba. Por ejemplo, puede usar checks de verificación y realizar un seguimiento de las respuestas de la API. Con las verificaciones (checks), puede confirmar las respuestas esperadas de la API, como el estado HTTP o cualquier dato devuelto.
202
+
[Check](https://k6.io/docs/using-k6/checks/) es un comando que valida diversas condiciones durante la ejecución de la prueba. Por ejemplo, puede usar check verificar las respuestas de la API. Con las verificaciones (checks), puede confirmar diversas respuestas de la API, como el estado HTTP o cualquier dato devuelto.
203
203
204
204
Nuestro script ahora verifica el estado de la respuesta HTTP, los encabezados y la carga útil.
De forma predeterminada, una verificación fallida no suspende ni aborta la prueba. En este sentido, una verificación difiere de cómo funcionan las aserciones para otros tipos de pruebas. Una prueba de carga puede ejecutar miles o millones de iteraciones de script, cada una con docenas de aserciones.
260
+
Una verificación fallida no suspende ni aborta la prueba por default. En este sentido, una verificación (check) difiere de cómo funcionan las aserciones (assertions) para otros tipos de pruebas. Una prueba de carga puede ejecutar miles o millones de iteraciones, cada una con docenas de aserciones.
261
261
262
-
Que haya una **pequeña tasa de fallo es aceptable**, según lo determinado por el «número de nueves» de su SLO o el presupuesto de error de su organización.
262
+
Es aceptable que haya una **pequeña tasa de fallo**, todo depende del «número de nueves» de su SLO o el presupuesto de error de su organización.
263
263
264
-
## Ponga a prueba sus objetivos de fiabilidad con «Thresholds»
264
+
## Ponga a prueba sus objetivos de confiabilidad con «Thresholds»
265
265
266
-
Cada prueba debe tener un objetivo. Las organizaciones de ingeniería establecen sus objetivos de fiabilidad utilizando los [objetivos de nivel de servicio](https://en.wikipedia.org/wiki/Service-level_objective)) (SLO, por sus siglas en inglés) para validar la disponibilidad, el rendimiento o cualquier requisito de rendimiento.
266
+
Cada prueba debe tener objetivos. Las organizaciones de ingeniería establecen sus objetivos de fiabilidad utilizando los [objetivos de nivel de servicio](https://en.wikipedia.org/wiki/Service-level_objective)) (SLO, por sus siglas en inglés) para validar la disponibilidad, el performance o cualquier objetivo de rendimiento.
267
267
268
-
Los SLO pueden definirse en ámbitos distintos, como en el nivel de un componente de infraestructura, de una API o de toda la aplicación. Algunos ejemplos de SLO podrían ser:
268
+
Los SLO pueden definirse en distintos ámbitos, como puede ser en el nivel de un componente de infraestructura, de una API, o de toda la aplicación. Algunos ejemplos de SLO podrían ser:
269
269
270
-
- El 99 % de las API que devuelven información del producto responden en menos de 600 ms.
271
-
- El 99,99 % de las solicitudes de inicio de sesión fallidas responden en menos de 1000 ms.
270
+
- El 99 % de las APIs que devuelven información del producto responden en menos de 600 ms.
271
+
- El 99.99 % de las solicitudes fallidas iniciando sesión responden en menos de 1000 ms.
272
272
273
-
Diseñe sus pruebas de carga con criterios de aprobación/fallo para validar los SLO, los objetivos de fiabilidad u otras métricas importantes. Para garantizar que su sistema logre sus SLO, realice pruebas con frecuencia, tanto en entornos de preproducción como de producción.
273
+
Diseñe sus pruebas de carga con criterios de pase/fallo para validar los SLO, los objetivos de confiabilidad, u otras métricas importantes. Para garantizar que su sistema pase sus SLOs, realice pruebas con frecuencia, tanto en los ambientes de preproducción como los de producción.
274
274
275
-
En k6, puede usar [Thresholds](https://k6.io/docs/using-k6/thresholds/) para establecer los criterios de aprobación/fallo de la prueba.
275
+
En k6, puede usar [Thresholds](https://k6.io/docs/using-k6/thresholds/) para establecer los criterios de pase/fallo de la prueba.
276
276
277
-
Este script codifica dos SLO en el objeto thresholds, uno sobre la tasa de errores (disponibilidad) y otro sobre la duración de la solicitud (latencia).
277
+
Este script codifica dos SLOs en la seccion de thresholds, uno sobre la tasa de errores (disponibilidad) y otro sobre la duración de la solicitud (latencia).
278
278
279
279
```javascript
280
280
export const options = {
@@ -295,15 +295,15 @@ export const options = {
295
295
};
296
296
```
297
297
298
-
Cuando k6 ejecuta una prueba, el resultado de la prueba indica si las métricas respetaban los umbrales (thresholds), ✅, o no, ❌. En esta ocasión, la prueba respetó ambos umbrales.
298
+
Cuando k6 ejecuta una prueba, el resultado indica si las métricas pasaron los umbrales (thresholds), ✅, o no, ❌. En esta ocasión, la prueba pasó ambos umbrales.
Cuando la prueba falla, la interfaz de línea de comandos (CLI) de k6 devuelve un código de salida distinto de cero, una condición necesaria para la automatización de la prueba. Como ejemplo de una prueba fallida, aquí tenemos el resultado de una prueba con un umbral establecido en que el 95 % de las solicitudes terminen en menos de 50 ms, `http_req_duration:["p(95)<50"]`:
306
+
Cuando la prueba falla, la interfaz de línea de comandos (CLI) de k6 devuelve un código de salida distinto de cero, una condición necesaria al automatizar pruebas. Como ejemplo de una prueba fallida, aquí tenemos el resultado de una prueba con un umbral que establece que el 95 % de las solicitudes terminen en menos de 50 ms, `http_req_duration:["p(95)<50"]`:
307
307
308
308
```bash
309
309
running (0m30.1s), 00/50 VUs, 1501 complete and 0 interrupted iterations
Si ha realizado pruebas con scripts anteriormente, la implementación de scripts de k6 debería resultarle familiar. Las pruebas de k6 están escritas en JavaScript, y el diseño de la API de k6 tiene similitudes con otros marcos de prueba.
339
+
Si tiene experiencia haciendo pruebas con scripts, la creación de scripts de k6 debería resultarle familiar. Las pruebas de k6 se escriben en JavaScript, y el diseño de la API de k6 es similar a otras plataformas de pruebas.
340
340
341
-
Pero, a diferencia de otras pruebas, las pruebas de carga ejecutan sus scripts cientos, miles o millones de veces. La presencia de la carga crea algunas preocupaciones específicas. Cuando realice pruebas de carga de una API con k6, considere los siguientes aspectos del diseño de su script.
341
+
Pero, a diferencia de otros tipos de pruebas, los scripts de pruebas de carga ejecutan sus pasos cientos, miles o millones de veces. La presencia de la carga crea algunas preocupaciones específicas. Cuando realice pruebas de carga de una API con k6, considere los siguientes aspectos al diseñar su script.
342
342
343
-
### Parametrización de los datos
343
+
### Parametrización de datos
344
344
345
-
La parametrización de los datos ocurre cuando reemplaza los datos de prueba codificados con valores dinámicos. La parametrización facilita la gestión de una prueba de carga con diversos usuarios y llamadas a la API. Un caso común para la parametrización ocurre cuando desea usar diferentes valores de `userID` y `password` para cada usuario virtual o iteración.
345
+
La parametrización de datos ocurre cuando se reemplazan los datos de prueba codificados con valores dinámicos. La parametrización facilita la gestión de una prueba de carga con diversos usuarios y llamadas a la API. Un caso común para la parametrización ocurre cuando se desea usar diferentes valores de `userID` y `password` para cada usuario virtual o iteración.
346
346
347
347
Por ejemplo, imaginemos un archivo JSON con una lista de información de usuarios como:
348
348
@@ -359,7 +359,7 @@ Por ejemplo, imaginemos un archivo JSON con una lista de información de usuario
359
359
360
360
</CodeGroup>
361
361
362
-
Puede parametrizar los usuarios con el objeto [`SharedArray`](/javascript-api/k6-data/sharedarray/) de la siguiente manera:
362
+
Puede parametrizar los usuarios usando el objeto [`SharedArray`](/javascript-api/k6-data/sharedarray/) de la siguiente manera:
363
363
364
364
```javascript
365
365
import { check } from 'k6';
@@ -393,13 +393,13 @@ export default function () {
393
393
}
394
394
```
395
395
396
-
Para obtener más información sobre la parametrización de los datos, consulte [parameterization examples](https://k6.io/docs/examples/data-parameterization/) y [Execution context variables](https://k6.io/docs/using-k6/execution-context-variables/).
396
+
Para obtener más información sobre la parametrización de datos, consulte [parameterization examples](https://k6.io/docs/examples/data-parameterization/) y [Execution context variables](https://k6.io/docs/using-k6/execution-context-variables/).
397
397
398
398
### Gestión de errores y aceptación de fallos
399
399
400
-
**Recuerde implementar la gestión de errores en la lógica de la prueba.**Bajo una carga suficientemente pesada, el sistema que se está probando (SUT) falla y comienza a responder con errores. Aunque una prueba podría estar diseñada para provocar fallos, a veces nos centramos solo en el mejor de los casos y olvidamos la importancia de tener en cuenta los errores.
400
+
**Recuerde implementar gestión de errores dentro de la lógica de la prueba.**Al recibir una carga suficientemente pesada, el sistema que se está probando (SUT) puede fallar y responder con errores. Aunque la prueba podría estar diseñada para provocar fallos, a veces nos centramos solo en los escenarios optimistas y olvidamos la importancia de la posibilidad de errores.
401
401
402
-
El script de la prueba debe gestionar los errores de la API para evitar excepciones de tiempo de ejecución y para asegurarse de que prueba cómo se comporta el SUT bajo saturación, de acuerdo con los objetivos de la prueba. Por ejemplo, podríamos extender nuestro script para hacer alguna operación que dependa del resultado de la solicitud anterior:
402
+
El script de la prueba debe gestionar los errores de la API para evitar excepciones de ejecución y para asegurarse de probar cómo se comporta el SUT al saturarse, de acuerdo con los objetivos de la prueba. Por ejemplo, podríamos extender nuestro script para hacer alguna operación dependiente del resultado de la solicitud anterior:
0 commit comments