CursosEmpresasBlogLiveConfPrecios

Emulación de dispositivos

Clase 2 de 24 • Curso Avanzado de Automatización de Pruebas con Puppeteer

Clase anteriorSiguiente clase

Contenido del curso

Para quién es este curso?
  • 1
    ¿Para quién es este curso?

    ¿Para quién es este curso?

    04:07
Conceptos Avanzados
  • 2
    Emulación de dispositivos

    Emulación de dispositivos

    14:26
  • 3
    Modo incógnito del navegador

    Modo incógnito del navegador

    03:35
  • 4
    Creando helpers de utilidad

    Creando helpers de utilidad

    18:49
  • 5
    Capturas de pantalla

    Capturas de pantalla

    11:31
  • 6
    Visual Testing

    Visual Testing

    20:46
  • 7
    Generando PDFs

    Generando PDFs

    12:12
  • 8
    Geolocalización

    Geolocalización

    07:09
  • 9
    Probando accesibilidad

    Probando accesibilidad

    11:42
  • 10
    Puppeteer con Firefox

    Puppeteer con Firefox

    09:10
  • 11
    Medir performance: page load

    Medir performance: page load

    18:36
  • 12
    Medir performance: first contentful paint

    Medir performance: first contentful paint

    11:22
Creando nuestro propio framework
  • 13
    Inicializando nuestro framework

    Inicializando nuestro framework

    14:19
  • 14
    Creando la Base Page

    Creando la Base Page

    09:44
  • 15
    Page Object Model

    Page Object Model

    23:05
  • 16
    Hacer un E2E

    Hacer un E2E

    37:52
  • 17
    Agregar reporte

    Agregar reporte

    05:14
BDD
  • 18
    BDD y Gherkin

    BDD y Gherkin

    09:39
  • 19
    Configurando codeceptjs con Gherkin y BDD

    Configurando codeceptjs con Gherkin y BDD

    08:01
  • 20
    Creando una Prueba con Gherkin

    Creando una Prueba con Gherkin

    17:21
  • 21
    Creando un Scenario Outline

    Creando un Scenario Outline

    14:13
  • 22
    Generando reporte y agregando imágenes al reporte

    Generando reporte y agregando imágenes al reporte

    15:32
CI/CD
  • 23
    Configurando Jenkins con nuestras pruebas y creando reportes

    Configurando Jenkins con nuestras pruebas y creando reportes

    16:33
Conclusion del curso
  • 24
    Sigue aprendiendo

    Sigue aprendiendo

    02:07
    Steve Anthony Luzquiños Agama

    Steve Anthony Luzquiños Agama

    student•
    hace 3 años

    puppeteer.devices está obsoleto actualmente, ahora se debe usar: KnownDevices. Un ejemplo:

    import { KnownDevices } from 'puppeteer' const tablet = KnownDevices['iPad Pro'] await page.emulate(tablet)
      Antonio Hernandez

      Antonio Hernandez

      student•
      hace 3 años

      Steve hola, mira coloque el codigo y me salta error, podrias colocar como lo usaste, gracias

      Steve Anthony Luzquiños Agama

      Steve Anthony Luzquiños Agama

      student•
      hace 3 años

      ¿Puedes detallarme el error que tuviste? Esto debería funcionarte dentro de un describe que a su vez tiene una función it o test, asíncronas.

    Luciano Marchese

    Luciano Marchese

    student•
    hace 4 años

    Les dejo la lista de devices porque no la veo en los recursos: https://github.com/puppeteer/puppeteer/blob/main/src/common/DeviceDescriptors.ts

      Javier Fuentes Mora

      Javier Fuentes Mora

      teacher•
      hace 4 años

      Muchas gracias! lo agregaremos de todas maneras

    Yelenith Natalia Ortiz Guerrero

    Yelenith Natalia Ortiz Guerrero

    student•
    hace 2 años

    Comparto código funcional mayo 2024:

    // Emular los dispositivos de forma manual const puppeteer = require('puppeteer') describe('Emulando dispositivos de forma manual', () => { let browser let page beforeAll(async () => { browser = await puppeteer.launch({ headless: false, defaultViewport: null, }); page = await browser.newPage(); await page.goto('https://platzi.com', { waitUntil: 'networkidle0' }); }, 10000); afterAll(async () => { await browser.close(); }); test('Emular dispositivo móvil', async () => { await page.emulate({ name: 'Mi dispositivo', viewport:{ width: 375, height: 667, deviceScaleFactor: 2, //propiedad para escalar el dispositivo isMobile: true, hasTouch: true, //tactil ? isLandscape: false //si está de forma horizontal }, userAgent: 'Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-J600G) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/10.1 Chrome/71.0.3578.99 Mobile Safari/537.36', }) await new Promise((resolve) => setTimeout(resolve, 3000)); },350000) //Emulando los sitios como si fuesen de escritorio /test('Emulando un sitio de escritorio', async () => { await page.setViewport({ width: 1500, height: 800, }) await new Promise((resolve) => setTimeout(resolve, 3000)); }, 3500000) //Emulando tablets de forma vertical test('Emulando una tablet en modo vertical', async () => { const { KnownDevices } = require('puppeteer'); const tablet = KnownDevices['iPad Pro'] await page.emulate(tablet) await new Promise((resolve) => setTimeout(resolve, 3000)); }, 3500000) test('Emulando un en una tablet en modo landscape - (horizontal)', async () => { const { KnownDevices } = require('puppeteer'); const tablet = KnownDevices['iPad landscape'] await page.emulate(tablet) await new Promise((resolve) => setTimeout(resolve, 3000)); }, 3500000) //Emulando un celular test('Emulando un sitio en un celular', async () => { const { KnownDevices } = require('puppeteer'); const iphone = KnownDevices['iPhone X'] await page.emulate(iphone) await new Promise((resolve) => setTimeout(resolve, 2000)); //}, 3500000) }) })
      Mario Alexander Vargas Celis

      Mario Alexander Vargas Celis

      student•
      hace 2 años

      Gracias por el aporte

    Juan David Rojas Restrepo

    Juan David Rojas Restrepo

    student•
    hace 4 años

    Comparto mi código con la configuración de mi celular.

    const puppeteer = require('puppeteer'); describe('Emular dispositivos', () => { let browser; let page; beforeAll(async () => { browser = await puppeteer.launch({ headless: false, defaultViewport: null, }); page = await browser.newPage(); await page.goto('https://platzi.com', { waitUntil: 'networkidle0' }); }, 20000); afterAll(async () => { await browser.close(); }); test('Emular dispositivo móvil', async () => { await page.emulate({ name: 'Galaxy J6', viewport: { width: 360, height: 740, deviceScaleFactor: 4, isMobile: true, hasTouch: true, isLandscape: false, }, userAgent: 'Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-J600G) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/10.1 Chrome/71.0.3578.99 Mobile Safari/537.36', }); await page.waitForTimeout(3000); }, 40000); //Emular de forma horizontal test('Emular dispositivo móvil horizontal', async () => { await page.emulate({ name: 'Galaxy J6', viewport: { width: 740, height: 360, deviceScaleFactor: 4, isMobile: true, hasTouch: true, isLandscape: true, }, userAgent: 'Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-J600G) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/10.1 Chrome/71.0.3578.99 Mobile Safari/537.36', }); await page.waitForTimeout(3000); }, 40000); });
    JUAN DAVID ORTIZ CORREA

    JUAN DAVID ORTIZ CORREA

    student•
    hace 3 años

    👋 Hola, la lista de dispositivos al parecer ya no está en git hub, así que les comparto la que está en la documentación oficial de puppeteer https://pptr.dev/next/api/puppeteer.knowndevices , salu✌.

    Alan Riveros

    Alan Riveros

    student•
    hace 3 años

    Se rompió el link de la lista de dispositivos

      Irving Juárez

      Irving Juárez

      student•
      hace 3 años

      Te aparece un intellisense que te enseña todos los devices disponibles en el vscode

    CRISTIAN DAVID ARENAS GOMEZ

    CRISTIAN DAVID ARENAS GOMEZ

    student•
    hace 3 años

    El repositorio no funciona

      Javier Fuentes Mora

      Javier Fuentes Mora

      teacher•
      hace 3 años

      que parte no funciona? hay una rama por cada clase , estas en la rama correcta?

    Antonio Hernandez

    Antonio Hernandez

    student•
    hace 3 años
    Error.png
    A alguno le esta dando este error tengo todo el dia tratando de solucionarlo y no doy con el modo de arreglarlo
      Javier Fuentes Mora

      Javier Fuentes Mora

      teacher•
      hace 3 años

      Creo que ya lo resolvimos por twitter https://github.com/javierfuentesm/Puppeteer-platzi/tree/performance

      Javier Fuentes Mora

      Javier Fuentes Mora

      teacher•
      hace 3 años

      parece ser qu eno configuraste bien babel , y no te permite ese tipo de imports intenta con el require

    Jesus Cuadro

    Jesus Cuadro

    student•
    hace 2 años

    CODIGO DE LA CLASE 👌

    // Emular los dispositivos de forma manual test('Emulando dispositivos de forma manual', async () => { await page.emulate({ name: "Dispositivo", viewport:{ width: 375, height: 667, deviceScaleFactor: 2, isMobile: true, hasTouch: true, isLandscape: false }, userAgent: 'Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-J600G) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/10.1 Chrome/71.0.3578.99 Mobile Safari/537.36', }) await new Promise((resolve) => setTimeout(resolve, 2000)); }, 3500000) //Emulando los sitios comos si fuesen de escritorio test('Emulando un sitio de escritorio', async () => { await page.setViewport({ width: 1500, height: 800, }) await new Promise((resolve) => setTimeout(resolve, 2000)); }, 3500000) //Emulando tablets de forma horizontal test('Emulando un en una tablet en modo horizontal', async () => { const tablet = puppeteer.devices['iPad landscape'] await page.emulate(tablet) await new Promise((resolve) => setTimeout(resolve, 2000)); }, 3500000) //Emulando un celular test('Emulando un sitio en un celular', async () => { const iphone = puppeteer.devices['iPhone X'] await page.emulate(iphone) await new Promise((resolve) => setTimeout(resolve, 2000)); }, 3500000) })
    Xavier Alberto Castillo varon

    Xavier Alberto Castillo varon

    student•
    hace 9 días

    en esta url https://pptr.dev/api/puppeteer.knowndevices, estan actualizado los dispositivos que a la actualidad maneja puppeteer

    Mario Alexander Vargas Celis

    Mario Alexander Vargas Celis

    student•
    hace 2 años

    Mi codigo

    const puppeteer = require("puppeteer") const { KnownDevices } = require('puppeteer'); describe("Emulando informacion",()=>{ let browser let page beforeAll(async()=>{ browser = await puppeteer.launch({ headless:false, defaultViewport: null, //slowMo: 500 }); page = await browser.newPage(); await page.goto("https://platzi.com", {waitUntil: "networkidle2"}); },10000); afterAll(async ()=>{ await browser.close(); }) test("Emulando dispositivos de forma manual", async()=>{ await page.emulate({ name: "Mi dispositivo", viewport: { width:375, height: 667, deviceScalaFactor:2, isMobile: true, hasTouch: true, isLandscape:false }, userAgent: "Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-J600G) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/10.1 Chrome/71.0.3578.99 Mobile Safari/537.36", }); await new Promise((resolve) => setTimeout(resolve, 5000)); },35000); test("Emulando sitio de escritorio", async()=>{ await page.setViewport({ width:1280, height:800 }) await new Promise((resolve) => setTimeout(resolve, 5000)); },35000); test("Emulando sitio en una tablet", async()=>{ const tablet = KnownDevices['iPad Pro']; await page.emulate(tablet); await new Promise((resolve) => setTimeout(resolve, 5000)); },35000); test("Emulando sitio en una tablet en modo landscape", async()=>{ const tablet = KnownDevices["iPad landscape"]; await page.emulate(tablet); await new Promise((resolve) => setTimeout(resolve, 5000)); },35000); test("Emulando sitio en un celular", async()=>{ const iPhone = KnownDevices['iPhone X'] await page.emulate(iPhone); await new Promise((resolve) => setTimeout(resolve, 5000)); },35000); }); ```const puppeteer = require("puppeteer")const { KnownDevices } = require('puppeteer'); describe("Emulando informacion",()=>{    let browser    let page     beforeAll(async()=>{        browser = await puppeteer.launch({            headless:false,            defaultViewport: null,             //slowMo: 500        });         page = await browser.newPage();        await page.goto("https://platzi.com", {waitUntil: "networkidle2"});     },10000);     afterAll(async ()=>{         await browser.close();    })     test("Emulando dispositivos de forma manual", async()=>{        await page.emulate({            name: "Mi dispositivo",            viewport: {                width:375,                height: 667,                deviceScalaFactor:2,                isMobile: true,                hasTouch: true,                isLandscape:false             },            userAgent: "Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-J600G) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/10.1 Chrome/71.0.3578.99 Mobile Safari/537.36",        });         await new Promise((resolve) => setTimeout(resolve, 5000));     },35000);     test("Emulando sitio de escritorio", async()=>{         await page.setViewport({            width:1280,            height:800        })        await new Promise((resolve) => setTimeout(resolve, 5000));     },35000);     test("Emulando sitio en una tablet", async()=>{        //const { KnownDevices } = require('puppeteer');        const tablet = KnownDevices\['iPad Pro'];        await page.emulate(tablet);         await new Promise((resolve) => setTimeout(resolve, 5000));     },35000);     test("Emulando sitio en una tablet en modo landscape", async()=>{         //const { KnownDevices } = require('puppeteer');        const tablet = KnownDevices\["iPad landscape"];        await page.emulate(tablet);         await new Promise((resolve) => setTimeout(resolve, 5000));     },35000);     test("Emulando sitio en un celular", async()=>{         //const { KnownDevices } = require('puppeteer');        const iPhone = KnownDevices\['iPhone X']        await page.emulate(iPhone);        await new Promise((resolve) => setTimeout(resolve, 5000));     },35000); });
    Juan Morillo

    Juan Morillo

    student•
    hace 2 años

    Para todos los que estan tomando el curso en el 2024, la forma de llamar el dispositivo cambio y ahora se utilizaconst tabla = KnowDevices['iPad Pro']

    const dispositivoX = KnowDevices['iPad Pro']

    Les dejo el link con todos los dispositivos disponibles en la Documentacion de puppeteer:

    https://pptr.dev/next/api/puppeteer.knowndevices

    Jorge Emilio Granados Guzmán

    Jorge Emilio Granados Guzmán

    student•
    hace 2 años

    JAVA GOOD

    Ronald Riera Sanchez

    Ronald Riera Sanchez

    student•
    hace 3 años

    Pages NotFound, el link esta caído amigo...!

    Screenshot_3.jpg
    MANUEL ALEJANDRO CUELLAR GUARIN

    MANUEL ALEJANDRO CUELLAR GUARIN

    student•
    hace 3 años

    it('Emulando dispositivos de forma manual ihpone 11 pro', async () => { const browser = await puppeteer.launch({ headless: false, slowMo: 0, devtools: false, /* defaultViewport:{ width: 2100, height: 1080 }*/ defaultViewport: null }); const page = await browser.newPage(); await page.goto('https://www.comfama.com/');

    await page.emulate({ name: 'Mi dispositivo iphone 11 pro', viewport:{ width: 375, height: 812, deiveSacaleFactor: 2, isMobile: true, hasTouch: true, isLandscape: false }, userAgent: 'Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-J600G) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/10.1 Chrome/71.0.3578.99 Mobile Safari/537.36', }) await page.waitForTimeout(3000) await browser.close() }, 30000);
    Moises Abel Avila  Garcia

    Moises Abel Avila Garcia

    student•
    hace 3 años

    exxplicas my bien las clases

    Moises Abel Avila  Garcia

    Moises Abel Avila Garcia

    student•
    hace 3 años

    javier fuentes es un buen profesor

    Manuel Ledezma

    Manuel Ledezma

    student•
    hace 3 años

    Muy buena clase, me sirvió para un proyecto personal perfectamente.

    Samuel Espinoza Figueroa

    Samuel Espinoza Figueroa

    student•
    hace 2 años

    Si quieren el link de los dispositivos es el siguiente

    KnownDevices variable | Puppeteer (pptr.dev)

    const {KnownDevices} = require('puppeteer')

    it('Emular el sitio de un iphone', async () => {        const iPhone = KnownDevices['iPhone 6'];        await page.emulate(iPhone);        await page.goto('https://www.google.com');    })

    de esa forma pueden hacer sus dispositivos

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