Skip to content

Commit 6211010

Browse files
srperfppcano
authored andcommitted
Progress on verification API tests, at line 440
1 parent c39b030 commit 6211010

File tree

1 file changed

+39
-39
lines changed

1 file changed

+39
-39
lines changed

src/data/markdown/translated-guides/es/06 Testing Guides/01 API load testing.md

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -90,13 +90,13 @@ Cuando pruebe la API con flujos de trabajo normales como si fuesen ejecutados po
9090

9191
### Usuarios virtuales
9292

93-
Cuando modela la carga para que utilice usuarios virtuales, las opciones básicas son:
93+
Cuando modela la carga utilizando usuarios virtuales, las opciones básicas son:
9494

9595
- [`vus`](https://k6.io/docs/using-k6/k6-options/reference/#vus)
9696
- [`duration`](https://k6.io/docs/using-k6/k6-options/reference/#duration)
9797
- [`iterations`](https://k6.io/docs/using-k6/k6-options/reference/#iterations)
9898

99-
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.
100100

101101
```javascript
102102
import http from 'k6/http';
@@ -116,25 +116,25 @@ export default function () {
116116
}
117117
```
118118

119-
### Tasa de solicitudes
119+
### Flujo de solicitudes
120120

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.
122122

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/).
124124

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.
126126

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:
128128

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`).
131131
3. Establezca la tasa de iteración dividiendo las solicitudes objetivo por segundo entre el número de solicitudes por iteración.
132132

133133
`rate` = `RequestsRate ÷ RequestsPerIteration`.
134134

135135
Para alcanzar el objetivo de 50 solicitudes por segundo con el ejemplo anterior:
136136

137-
1. Establezca las opciones `timeUnit` en `1s`.
137+
1. Establezca la opción `timeUnit` en `1s`.
138138
2. El número de solicitudes por iteración es 1.
139139
3. Defina la opción `rate` en 50/1 (para que sea igual a 50).
140140

@@ -164,7 +164,7 @@ export default function () {
164164
}
165165
```
166166

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`:
168168

169169
```bash
170170
# 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
174174
iterations.....................: 1501 49.84156/s
175175
```
176176

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/).
178178

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.
180180

181181
Para ver todas las formas de modelar la carga en k6, consulte [Scenarios](https://k6.io/docs/using-k6/scenarios/).
182182

183183
## Verificar la funcionalidad con Checks (comprobaciones)
184184

185185
Tradicionalmente, las pruebas de rendimiento se centran más en:
186186

187-
- La latencia: cómo de rápido responde el sistema.
187+
- La latencia: qué tan rápido responde el sistema.
188188
- La disponibilidad: con qué frecuencia devuelve errores el sistema.
189189

190190
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:
@@ -195,11 +195,11 @@ http_req_duration..............: avg=106.14ms min=102.54ms med=104.66ms max=198.
195195
http_req_failed................: 0.00% ✓ 0 ✗ 1501
196196
```
197197
198-
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.
199199
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`.
201201
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.
203203
204204
Nuestro script ahora verifica el estado de la respuesta HTTP, los encabezados y la carga útil.
205205
@@ -245,7 +245,7 @@ my_scenario1 ✓ [======================================] 00/50 VUs 30s 50.00
245245
✓ Post response name
246246
```
247247
248-
Después de que la carga aumentara a 300 solicitudes por segundo, los resultados arrojaron 8811 solicitudes exitosas y 7 fallos:
248+
Después, si incrementamos la carga a 300 solicitudes por segundo, los resultados arrojaron 8811 solicitudes exitosas y 7 checks fallados:
249249
250250
```bash
251251
my_scenario1 ✓ [======================================] 000/300 VUs 30s 300.00 iters/s
@@ -257,24 +257,24 @@ my_scenario1 ✓ [======================================] 000/300 VUs 30s 300.
257257
↳ 99% — ✓ 8811 / ✗ 7
258258
```
259259
260-
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.
261261
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.
263263
264-
## Ponga a prueba sus objetivos de fiabilidad con «Thresholds»
264+
## Ponga a prueba sus objetivos de confiabilidad con «Thresholds»
265265
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.
267267
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:
269269
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.
272272
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.
274274
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.
276276
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).
278278
279279
```javascript
280280
export const options = {
@@ -295,15 +295,15 @@ export const options = {
295295
};
296296
```
297297
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.
299299
300300
```bash
301301
✓ http_req_duration..............: avg=104.7ms min=101.87ms med=103.92ms max=120.68ms p(90)=107.2ms p(95)=111.38ms
302302
{ expected_response:true }...: avg=104.7ms min=101.87ms med=103.92ms max=120.68ms p(90)=107.2ms p(95)=111.38ms
303303
✓ http_req_failed................: 0.00% ✓ 0 ✗ 1501
304304
```
305305
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 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"]`:
307307
308308
```bash
309309
running (0m30.1s), 00/50 VUs, 1501 complete and 0 interrupted iterations
@@ -334,15 +334,15 @@ my_scenario1 ✓ [======================================] 00/50 VUs 30s 50.00
334334
ERRO[0030] some thresholds have failed
335335
```
336336
337-
## Consideraciones a la hora de crear scripts
337+
## Consideraciones cuando se crean scripts
338338
339-
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.
340340
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.
342342
343-
### Parametrización de los datos
343+
### Parametrización de datos
344344
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.
346346
347347
Por ejemplo, imaginemos un archivo JSON con una lista de información de usuarios como:
348348
@@ -359,7 +359,7 @@ Por ejemplo, imaginemos un archivo JSON con una lista de información de usuario
359359
360360
</CodeGroup>
361361
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:
363363
364364
```javascript
365365
import { check } from 'k6';
@@ -393,13 +393,13 @@ export default function () {
393393
}
394394
```
395395
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/).
397397
398398
### Gestión de errores y aceptación de fallos
399399
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.
401401
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:
403403
404404
```javascript
405405
import { check } from 'k6';

0 commit comments

Comments
 (0)