No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

11 Días
6 Hrs
32 Min
50 Seg

Rate Metric

14/27
Recursos

Aportes 5

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

dejo mi solucion:

import { Rate } from 'k6/metrics';
import http from 'k6/http';
import { randomIntBetween } from 'https://jslib.k6.io/k6-utils/1.4.0/index.js';

export const options = {
    vus: 10, duration: '10s'
};

const porcentOk = new Rate('products found');

export default function () {
    const number = randomIntBetween(1, 300)
    const res = http.get(`https://api.escuelajs.co/api/v1/products/${number}`);

    porcentOk.add(res.status === 200 ? 1 : 0);
}!

Gente aquí les dejo mi solución al reto:

import http from 'k6/http'; // importa el módulo HTTP de K6 para hacer peticiones
import { Rate } from 'k6/metrics'; // importa el módulo Metrics de K6 para manejar métricas de pruebas

export const options = {
  vus: 10, // número de usuarios virtuales que simularán la carga en la aplicación
  duration: '20s' // tiempo total de ejecución de la prueba
}

const myRate = new Rate('called_products'); // instancia un objeto de tipo Rate con nombre 'called_products'

const random = (min, max) => { // función que genera un número aleatorio en un rango dado
  return Math.floor(Math.random() * (max - min)) + min;
}

export default function testEcommerceAPI() {

  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 generado
  const 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);
}

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

Hola 🖐. Aquí dejo mi resolución del reto 😄

import http from 'k6/http';
import { Rate } from 'k6/metrics';

export const options = {
  vus: 10,
  duration: '20s'
}

const rate = new Rate("exists_product");

export default function(){
  const randomProduct = random(1, 300);// Return random value between 1 and 300
  const response = http.get("https://api.escuelajs.co/api/v1/products/" + String(randomProduct));

  // If the response status equals 400
  if(response.status === 400){
    rate.add(0);
  }
  else{
    rate.add(1);
  }
}

function random(min, max) {
  return Math.floor((Math.random() * (max - min + 1)) + min);
}

Para este caso con un if else es sencillo

import http from "k6/http";
import { Rate} from "k6/metrics";

export const options = {
    vus: 10, 
    duration: "20s"
}

const myRate = new Rate("called_products")

export default function(){
    var min = 1;
    var max = 300;
    var randomPrduct = Math.floor(Math.random() * (max - min + 1)) + min;
    const request = http.get(`https://api.escuelajs.co/api/v1/products/${randomPrduct}`);
    if (request.status ===400){
        myRate.add(0);
    }
    else{
        myRate.add(1)
    }

}