import{Rate}from'k6/metrics';importhttpfrom'k6/http';import{ randomIntBetween }from'https://jslib.k6.io/k6-utils/1.4.0/index.js';exportconst options ={vus:10,duration:'10s'};const porcentOk =newRate('products found');exportdefaultfunction(){const number =randomIntBetween(1,300)const res = http.get(`https://api.escuelajs.co/api/v1/products/${number}`); porcentOk.add(res.status===200?1:0);}!
Buena esa del operador ternario
Excelente solucion
En mi caso el porcentaje no cambiaba entonces la solución fue cambiar el if a:
if (request404.status === 400) {
myRate.add(0);
}
es decir, al final es un error del tipo 400 no 404
Gente aquí les dejo mi solución al reto:
importhttpfrom'k6/http';// importa el módulo HTTP de K6 para hacer peticionesimport{Rate}from'k6/metrics';// importa el módulo Metrics de K6 para manejar métricas de pruebasexportconst options ={vus:10,// número de usuarios virtuales que simularán la carga en la aplicaciónduration:'20s'// tiempo total de ejecución de la prueba}const myRate =newRate('called_products');// instancia un objeto de tipo Rate con nombre 'called_products'constrandom=(min, max)=>{// función que genera un número aleatorio en un rango dadoreturnMath.floor(Math.random()*(max - min))+ min;}exportdefaultfunctiontestEcommerceAPI(){const random_product =random(1,300);// llama a la función random para obtener un número aleatorio entre 1 y 300// realiza una petición GET a la API con el número aleatorio generadoconst request = http.get(`https://api.escuelajs.co/api/v1/products/${random_product}`);// si el estado de la respuesta es 400, agrega un valor de 0 a la métrica 'called_products', de lo contrario agrega 1 request.status===400? myRate.add(0): myRate.add(1);}
Hola 🖐. Aquí dejo mi resolución del reto 😄
importhttpfrom'k6/http';import{Rate}from'k6/metrics';exportconst options ={vus:10,duration:'20s'}const rate =newRate("exists_product");exportdefaultfunction(){const randomProduct =random(1,300);// Return random value between 1 and 300const response = http.get("https://api.escuelajs.co/api/v1/products/"+String(randomProduct));// If the response status equals 400if(response.status===400){ rate.add(0);}else{ rate.add(1);}}functionrandom(min, max){returnMath.floor((Math.random()*(max - min +1))+ min);}