CursosEmpresasBlogLiveConfPrecios

Opciones, stages y virtual users

Clase 7 de 27 • Curso de Performance Testing en Node.js con K6

Contenido del curso

Introducción al performance testing

  • 1
    ¿Por qué hacemos testing?

    ¿Por qué hacemos testing?

    05:14 min
  • 2
    ¿Cuándo necesitamos performance testing?

    ¿Cuándo necesitamos performance testing?

    03:18 min
  • 3
    Performance testing en front-end: Lighthouse y WebPageTest

    Performance testing en front-end: Lighthouse y WebPageTest

    08:59 min
  • 4
    Performance testing en back-end: K6

    Performance testing en back-end: K6

    02:59 min

Creando nuestra suite de tests

  • 5

    Instalación de K6 en Linux, MacOS, Windows y Docker

    00:58 min
  • 6
    Crea tu primer test en K6 e interpreta los resultados

    Crea tu primer test en K6 e interpreta los resultados

    06:27 min
  • 7
    Opciones, stages y virtual users

    Opciones, stages y virtual users

    Viendo ahora
  • 8
    Smoke testing, stress testing y spike testing

    Smoke testing, stress testing y spike testing

    09:47 min
  • 9
    Load testing y soak testing

    Load testing y soak testing

    06:02 min
  • 10

    Ejecución de Tests Masivos en Local con K6

    01:26 min
  • 11
    Exportando los resultados

    Exportando los resultados

    05:50 min

Custom Metrics

  • 12
    Counter Metric

    Counter Metric

    08:52 min
  • 13
    Gauge Metric

    Gauge Metric

    09:24 min
  • 14
    Rate Metric

    Rate Metric

    05:26 min
  • 15
    Trend Metric

    Trend Metric

    05:31 min

Criterios de aceptación

  • 16
    Checks Y Thresholds

    Checks Y Thresholds

    07:35 min
  • 17
    Opciones de los Thresholds

    Opciones de los Thresholds

    07:04 min

Visualizando resultados

  • 18
    Dashboard de resultados

    Dashboard de resultados

    04:10 min
  • 19
    Creando nuestro dashboard local

    Creando nuestro dashboard local

    05:25 min

Ejecución remota y resultados en la nube

  • 20
    Testing en la nube

    Testing en la nube

    04:40 min
  • 21
    Enviando resultados a K6 Cloud

    Enviando resultados a K6 Cloud

    06:54 min
  • 22
    Ejecutando tests en K6 Cloud

    Ejecutando tests en K6 Cloud

    07:45 min

Bonus: Integraciones de K6

  • 23
    Conoce todas las integraciones de K6

    Conoce todas las integraciones de K6

    03:05 min
  • 24
    Creando un dashboard en New Relic

    Creando un dashboard en New Relic

    11:58 min
  • 25
    Integrando tus test a un flujo de trabajo profesional

    Integrando tus test a un flujo de trabajo profesional

    10:55 min
  • 26
    Performance test en CI/CD

    Performance test en CI/CD

    12:18 min

Despedida

  • 27
    ¿Con qué puedes continuar tu aprendizaje?

    ¿Con qué puedes continuar tu aprendizaje?

    01:28 min
Tomar examen

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads
        Daniel Achury

        Daniel Achury

        student•
        hace 3 años

        Hola, agregue nuevo paso al stage que se venia trabajando, me parece interesando como en el step 2 se sostienen los request, esta prueba esta bastante interesante agregarla a un conjunto de pruebas.

        export const options ={ stages:[ { duration: '60s', target:10 },{ duration: '180s', target:10 },{ duration: '60s', target:0 } ] }
          Sergio Estrella

          Sergio Estrella

          teacher•
          hace 3 años

          ¡Muy buen aporte! Así es, si en un stage tenemos el mismo número de VU's que en el anterior, le estamos diciendo que los mantenga por ese tiempo. . Otro truco es que, si empezamos con

          export const options ={ stages:[ { duration: '0s', target:10 }, ... ] }

          Le estamos diciendo que arrance con 10VU's el test, y no con 0 ;)

          Gerardo Alberto Soto Alvarez del Castillo

          Gerardo Alberto Soto Alvarez del Castillo

          student•
          hace 3 años

          Hola, no se si es normal, pero a mí despues de los 4 minutos si vi una disminución de los VUs hasta llegar a 0 VUs, ¿está bien?

          VUs.png

        Milton Andrés Sanabria

        Milton Andrés Sanabria

        student•
        hace 3 años

        he usado jmeter ahí no se usan lo que acá llaman virtual users sino hilos, virtual user e hilos serán lo mismo?

        Juan Hernandez

        Juan Hernandez

        student•
        hace 3 años

        Hola! yo estoy atorado, cuando trato de utilizar la funcion sleep, obtengo este error:

        level=error msg="TypeError: Not a function: [object Object]\n\tat file:///-:22:10(11)\n" executor=ramping-vus scenario=default source=stacktrace

        Este es mi código:

        import http from "k6/http" import sleep from "k6" export const options = { stages:[ { duration: '60s', target:10 },{ duration: '180s', target:10 },{ duration: '60s', target:0 } ] }; export default function () { let response = http.get("https://myapp.com/session"); sleep(1) }

        Si comento la linea del sleep(1), se ejecutan correctamente 🤔

          Juan Hernandez

          Juan Hernandez

          student•
          hace 3 años

          Encontré el error, esto sucede por que olvidé colocar el import dentro de llaves:

          antes: import sleep from "k6" despues import { sleep } from "k6"
        David steven Abril Pulecio

        David steven Abril Pulecio

        student•
        hace un mes

        Results: EXECUTION

        iteration_duration.............: avg=1.15s min=1.14s med=1.14s max=1.54s p(90)=1.15s p(95)=1.15s

        iterations.....................: 1827 7.576731/s

        vus.....: 1 min=1 max=10

        vus_max.: 10 min=10 max=10

        Daiana Isabel Gamez Vivas

        Daiana Isabel Gamez Vivas

        student•
        hace 5 meses
        •
        editado

        import http from "k6/http";

        import { sleep } from "k6";

        //60 sg lleguemos a 10 vus, mantener por 180sg y en la ultima etapa de 60 sg llegar a cero

        export const options = {

          stages: [

            {

              duration: "60s", target: 10

            },

            {

              duration: "180s", target: 10

            },

            {

              duration: "60s", target: 0

            }

          ]

        }

        export default function () {

          let response = http.get("https://api.escuelajs.co/api/v1/products");

          sleep(1);

        }

        Luis Eduardo Burgos Florez

        Luis Eduardo Burgos Florez

        student•
        hace 8 meses

        import { sleep } from "k6";import http from "k6/http";     export const options ={    stages:[        {         duration:"60s",         target:10,    },{        duration:"180s",        target:10,       }, {duration:"60s",        target:0, },],    }    export default function(){        let response = http.get("https://qa-mios.groupcos.com")         sleep(1); }

        PS D:\k6\pruebas\plaz> k6 run .\stages_prueba1.js

        /\ Grafana /‾‾/

        /\ / \ |\ __ / /

        / \/ \ | |/ / / ‾‾\

        / \ | ( | (‾) |

        / __________ \ |_|\_\ \_____/

        execution: local

        script: .\stages_prueba1.js

        output: -

        scenarios: (100.00%) 1 scenario, 10 max VUs, 5m30s max duration (incl. graceful stop):

        * default: Up to 10 looping VUs for 5m0s over 3 stages (gracefulRampDown: 30s, gracefulStop: 30s)

        █ TOTAL RESULTS

        HTTP

        http_req_duration.......................................................: avg=64.94ms min=60.71ms med=64.67ms max=83.62ms p(90)=67.11ms p(95)=67.84ms

        { expected_response:true }............................................: avg=64.94ms min=60.71ms med=64.67ms max=83.62ms p(90)=67.11ms p(95)=67.84ms

        http_req_failed.........................................................: 0.00% 0 out of 2284

        http_reqs...............................................................: 2284 7.598845/s

        EXECUTION

        iteration_duration......................................................: avg=1.06s min=1.06s med=1.06s max=1.26s p(90)=1.06s p(95)=1.06s

        iterations..............................................................: 2284 7.598845/s

        vus.....................................................................: 1 min=1 max=10

        vus_max.................................................................: 10 min=10 max=10

        NETWORK

        data_received...........................................................: 1.3 MB 4.3 kB/s

        data_sent...............................................................: 244 kB 810 B/s

        running (5m00.6s), 00/10 VUs, 2284 complete and 0 interrupted iterations

        default ✓ [======================================] 00/10 VUs 5m0s

        PS D:\k6\pruebas\plaz>

        Luis Eduardo Burgos Florez

        Luis Eduardo Burgos Florez

        student•
        hace 8 meses

        Buen día hoy iniciando mis clases en platzi envío mi prueba según lo indicado atento a comentarios

        import { sleep } from "k6";import http from "k6/http";     export const options ={    stages:[        {         duration:"60s",         target:10,    },{        duration:"180s",        target:10,       }, {duration:"60s",        target:0, },],    }    export default function(){        let response = http.get("https://qa-mios.groupcos.com/api/auth/login")         sleep(1);

        /\ Grafana /‾‾/

        /\ / \ |\ __ / /

        / \/ \ | |/ / / ‾‾\

        / \ | ( | (‾) |

        / __________ \ |_|\_\ \_____/

        execution: local

        script: .\stages_prueba1.js

        output: -

        scenarios: (100.00%) 1 scenario, 10 max VUs, 5m30s max duration (incl. graceful stop):

        * default: Up to 10 looping VUs for 5m0s over 3 stages (gracefulRampDown: 30s, gracefulStop: 30s)

        █ TOTAL RESULTS

        HTTP

        http_req_duration.......................................................: avg=64.94ms min=60.71ms med=64.67ms max=83.62ms p(90)=67.11ms p(95)=67.84ms

        { expected_response:true }............................................: avg=64.94ms min=60.71ms med=64.67ms max=83.62ms p(90)=67.11ms p(95)=67.84ms

        http_req_failed.........................................................: 0.00% 0 out of 2284

        http_reqs...............................................................: 2284 7.598845/s

        EXECUTION

        iteration_duration......................................................: avg=1.06s min=1.06s med=1.06s max=1.26s p(90)=1.06s p(95)=1.06s

        iterations..............................................................: 2284 7.598845/s

        vus.....................................................................: 1 min=1 max=10

        vus_max.................................................................: 10 min=10 max=10

        NETWORK

        data_received...........................................................: 1.3 MB 4.3 kB/s

        data_sent...............................................................: 244 kB 810 B/s

        running (5m00.6s), 00/10 VUs, 2284 complete and 0 interrupted iterations

        default ✓ [======================================] 00/10 VUs 5m0s }

        Oscar Monsalve

        Oscar Monsalve

        student•
        hace 10 meses

        Explicación de por qué se usó sleep y cuál es su utilidad. Lo comparto porque tuve que investigar aparte ya que no había entendido y tal vez alguien más no haya entendido tampoco.

        Sleep es útil para simular un comportamiento humano real, ya que un humano no hace solicitudes una tras otra sin parar.

        Con sleep(1). Le estamos diciendo a cada VU que espere 1 segundo antes de ejecutar la siguiente iteración del script. Es recomendable usarlo cuando no se busca estresar el sistema, sino simular una carga realista sin sobrecargar el servidor.

        Si NO se pone el sleep, cada VU enviará tantas solicitudes pueda enviar por segundo, dependiendo de la latencia de la API. El test será más agresivo y simulará un escenario de "estrés", no de "carga controlada".

        Juan David Zamudio Patiño

        Juan David Zamudio Patiño

        student•
        hace 10 meses

        Este fue mi resultado, sin embargo veo diferencias con respecto a lo realizado por mis compañeros

        Miguel Andres Silva Morales

        Miguel Andres Silva Morales

        student•
        hace un año

        Config Stages:

        Results:

        Paul Martin Vargas Portugal

        Paul Martin Vargas Portugal

        student•
        hace 2 años

        Según lo que solicitaron me salió esto al final.

        Jefferson Riobueno

        Jefferson Riobueno

        student•
        hace 3 años

        Estos fueron mis resultados

        Captura de pantalla de 2023-06-17 20-55-12.png