El documento habla sobre Selenium y Docker. Explica que Selenium es un framework de pruebas funcionales y que Docker permite ejecutar contenedores de Selenium. También muestra cómo configurar Selenium y Docker de forma conjunta usando archivos YAML y ejecutar las pruebas desde Azure DevOps.
Este documento describe las buenas prácticas de integración continua y automatización de pruebas usando Jenkins y Selenium. La integración continua permite integrar el proyecto a medida que avanza y detectar errores rápidamente mediante la ejecución automática de pruebas. Jenkins es una herramienta fácil de usar con plugins que permiten automatizar tareas como el despliegue y monitoreo. Selenium puede automatizar pruebas funcionales en diferentes navegadores y lenguajes de programación.
Este documento define Selenium y describe sus componentes principales. Selenium es un entorno de pruebas para aplicaciones web que permite grabar y reproducir pruebas a través de Selenium IDE. Incluye un lenguaje de dominio específico llamado Selanese para escribir pruebas en varios lenguajes de programación. Los principales componentes de Selenium son Selenium IDE, Selenium Client API, Selenium Remote Control y Selenium WebDriver.
El documento describe las herramientas Selenium IDE y Selenium RC que permiten automatizar pruebas en sitios web. Selenium IDE graba secuencias de navegación para crear casos de prueba que luego son exportados a diferentes lenguajes de programación y ejecutados por Selenium RC en un navegador. El proceso involucra grabar y exportar casos de prueba con Selenium IDE, enviar órdenes a Selenium RC a través de HTTP, y ejecutar las órdenes en un navegador.
Este documento define Selenium y describe sus componentes principales. Selenium es un entorno de pruebas para aplicaciones web que permite grabar y reproducir pruebas a través de Selenium IDE. Incluye un lenguaje de dominio específico llamado Selanese para escribir pruebas en varios lenguajes de programación. Los principales componentes de Selenium son Selenium IDE, Selenium Client API, Selenium Remote Control y Selenium WebDriver.
Pruebas de integración con Docker en Azure DevOpsSoftware Guru
Este documento describe cómo implementar pruebas de integración con Docker en Azure DevOps. Explica los conceptos de pruebas de integración, Docker y Azure DevOps. Luego detalla los pasos para crear una imagen Docker con SQL Server, ejecutar un contenedor Docker para las pruebas y configurar un pipeline en Azure DevOps para compilar la imagen, ejecutar el contenedor y realizar las pruebas de integración.
En este webinar, aprenderá cómo las empresas pueden aprovechar la nube de AWS para automatizar los pipelines de desarrollo de software. Este enfoque permite que su equipo sea más ágil, mejorando su capacidad para entregar aplicaciones y servicios rápidamente.
Meetup TestingUy 2018 - Selenium en la actualidadTestingUy
Expositor: Joaquín Moreira
Debido al reciente cambio en el formato de las extensiones del navegador Mozilla Firefox (versión 55), las extensiones basadas en formato XPI no son soportadas y en consecuencia, la extensión de Selenium IDE. Sin embargo y más alla de esto, Selenium sigue siendo una potente herramienta. En esta charla veremos una introducción a Selenium, hablaremos de la SeleniumConf, se discutirá sobre lo que se pierde con este cambio y se evaluarán alternativas a Selenium IDE. Cerraremos con una demo de una herramienta alternativa y gratis a Selenium IDE.
Debido al reciente cambio en el formato de las extensiones del navegador Mozilla Firefox (versión 55), las extensiones basadas en formato XPI no son soportadas y en consecuencia, la extensión de Selenium IDE. Sin embargo y más allá de esto, Selenium sigue siendo una potente herramienta. En esta charla veremos una introducción a Selenium, hablaremos de la SeleniumConf, se discutirá sobre lo que se pierde con este cambio y se evaluarán alternativas a Selenium IDE. Cerraremos con una demo de una herramienta alternativa y gratis a Selenium IDE.
Presentación generada en base a experiencias en proyectos y cursos llevados adelante por el Centro de Ensayos de Software (www.ces.com.uy).
Este documento describe las buenas prácticas de integración continua y automatización de pruebas usando Jenkins y Selenium. La integración continua permite integrar el proyecto a medida que avanza y detectar errores rápidamente mediante la ejecución automática de pruebas. Jenkins es una herramienta fácil de usar con plugins que permiten automatizar tareas como el despliegue y monitoreo. Selenium puede automatizar pruebas funcionales en diferentes navegadores y lenguajes de programación.
Este documento define Selenium y describe sus componentes principales. Selenium es un entorno de pruebas para aplicaciones web que permite grabar y reproducir pruebas a través de Selenium IDE. Incluye un lenguaje de dominio específico llamado Selanese para escribir pruebas en varios lenguajes de programación. Los principales componentes de Selenium son Selenium IDE, Selenium Client API, Selenium Remote Control y Selenium WebDriver.
El documento describe las herramientas Selenium IDE y Selenium RC que permiten automatizar pruebas en sitios web. Selenium IDE graba secuencias de navegación para crear casos de prueba que luego son exportados a diferentes lenguajes de programación y ejecutados por Selenium RC en un navegador. El proceso involucra grabar y exportar casos de prueba con Selenium IDE, enviar órdenes a Selenium RC a través de HTTP, y ejecutar las órdenes en un navegador.
Este documento define Selenium y describe sus componentes principales. Selenium es un entorno de pruebas para aplicaciones web que permite grabar y reproducir pruebas a través de Selenium IDE. Incluye un lenguaje de dominio específico llamado Selanese para escribir pruebas en varios lenguajes de programación. Los principales componentes de Selenium son Selenium IDE, Selenium Client API, Selenium Remote Control y Selenium WebDriver.
Pruebas de integración con Docker en Azure DevOpsSoftware Guru
Este documento describe cómo implementar pruebas de integración con Docker en Azure DevOps. Explica los conceptos de pruebas de integración, Docker y Azure DevOps. Luego detalla los pasos para crear una imagen Docker con SQL Server, ejecutar un contenedor Docker para las pruebas y configurar un pipeline en Azure DevOps para compilar la imagen, ejecutar el contenedor y realizar las pruebas de integración.
En este webinar, aprenderá cómo las empresas pueden aprovechar la nube de AWS para automatizar los pipelines de desarrollo de software. Este enfoque permite que su equipo sea más ágil, mejorando su capacidad para entregar aplicaciones y servicios rápidamente.
Meetup TestingUy 2018 - Selenium en la actualidadTestingUy
Expositor: Joaquín Moreira
Debido al reciente cambio en el formato de las extensiones del navegador Mozilla Firefox (versión 55), las extensiones basadas en formato XPI no son soportadas y en consecuencia, la extensión de Selenium IDE. Sin embargo y más alla de esto, Selenium sigue siendo una potente herramienta. En esta charla veremos una introducción a Selenium, hablaremos de la SeleniumConf, se discutirá sobre lo que se pierde con este cambio y se evaluarán alternativas a Selenium IDE. Cerraremos con una demo de una herramienta alternativa y gratis a Selenium IDE.
Debido al reciente cambio en el formato de las extensiones del navegador Mozilla Firefox (versión 55), las extensiones basadas en formato XPI no son soportadas y en consecuencia, la extensión de Selenium IDE. Sin embargo y más allá de esto, Selenium sigue siendo una potente herramienta. En esta charla veremos una introducción a Selenium, hablaremos de la SeleniumConf, se discutirá sobre lo que se pierde con este cambio y se evaluarán alternativas a Selenium IDE. Cerraremos con una demo de una herramienta alternativa y gratis a Selenium IDE.
Presentación generada en base a experiencias en proyectos y cursos llevados adelante por el Centro de Ensayos de Software (www.ces.com.uy).
Este documento proporciona información sobre una presentación sobre SQL Server en contenedores Docker. Incluye la agenda de la presentación, una introducción a Docker y contenedores, los beneficios de usar contenedores, y ejemplos de cómo implementar SQL Server en contenedores de Docker.
DotNet 2019 | Luis Fraile - Tests de integración con .NET Core, Docker y Azur...Plain Concepts
Este documento describe cómo usar contenedores de servicios y trabajos de contenedor en Azure DevOps Pipelines para ejecutar pruebas de integración de manera más rápida y económica. Explica que los contenedores de servicios se usan como recursos compartidos y los trabajos de contenedor permiten compilar e integrar el código dentro de contenedores gestionados por el agente de Azure Pipelines. Finalmente, muestra un ejemplo de configuración YAML para implementar esta estrategia.
Este documento presenta una introducción a Azure App Service y Web App con Containers, incluyendo cómo desplegar e instalar contenedores, la integración con Azure DevOps, y la diferencia entre contenedores y máquinas virtuales. También explica conceptos clave como Docker images, Docker containers, y servicios en Azure para ejecutar contenedores como Azure App Service y Web App for Containers.
Testing de integración en Azure DevOps con Docker - Plain Concepts DevOps dayPlain Concepts
Con la ayuda de Azure DevOps, sus pipelines, y utilizando contenedores Docker, podemos definir nuestras pruebas automatizadas de un modo más eficiente, asegurando su ejecución y facilitando su mantenimiento y puesta en marcha. Ven a esta charla a descubrir cómo incluir todo esto en tus desarrollos.
Esta es la presentación usada para el Docker MeetUp que se realiza el 8 de Junio de 2016 en el Google Campus de Madrid.
En la sesión se describe cómo encaja el modelo de contenedores Docker para clientes que gestionan un centro de datos con el modelo tradicional. Docker se presenta como el mejor aliado para implantar el modelo de trabajo DevOps en empresas con centro de datos propio.
After tests marzo 2017: Pruebas de Integración Automatizadas con DockerFernando Llaca Romero
Este documento describe cómo implementar pruebas de integración automatizadas usando contenedores Docker. Explica los conceptos básicos de pruebas de integración y las herramientas Docker y Jenkins. Luego detalla cómo configurar un plan de integración continua basado en contenedores Docker, abordando desafíos como la instalación, configuración de red, almacenamiento de datos de prueba y escalabilidad. Finalmente, muestra una demostración práctica de cómo ejecutar pruebas de integración dentro de contenedores Docker.
Este documento presenta Docker, una plataforma de contenedores que permite empaquetar aplicaciones junto con todas sus dependencias para ejecutarlas de forma aislada. Explica los beneficios de Docker para desarrolladores y startups, como facilitar el despliegue de aplicaciones y la gestión en la nube. También describe el ecosistema de Docker incluyendo clientes, servidores, imágenes, registros y buenas prácticas de orquestación y monitorización.
Pruebas automatizadas de aceptación en aplicaciones webGiannis Morales
Este documento describe cómo automatizar pruebas de aceptación en aplicaciones web utilizando las herramientas RSpec y Selenium. Explica brevemente los tipos de pruebas, incluidas las pruebas de aceptación, y los beneficios de automatizar las pruebas, como reducir costos y evitar plazos incumplidos. Luego proporciona una introducción a RSpec y Selenium, describiendo que RSpec hace que los casos de prueba sean fáciles de leer y que Selenium permite desarrollar scripts de prueba para aplicaciones web en vari
Este documento presenta una sesión sobre ejecutar Dynamics 365 Business Central (anteriormente conocido como NAV) en contenedores Docker. La sesión incluye una introducción a Docker y contenedores, imágenes disponibles para BC/NAV, la arquitectura de BC/NAV en Docker, y cómo ampliar la funcionalidad de las imágenes estándar de Microsoft modificando scripts de configuración. El orador también muestra herramientas como NavContainerHelper y Portainer y provee enlaces a recursos adicionales.
Este documento presenta las estrategias de pruebas en DevOps. Explica que las pruebas deben ser parte integral del ciclo de desarrollo continuo e integración (CI/CD). Detalla diferentes tipos de pruebas como pruebas unitarias, de API, de interfaz de usuario y de rendimiento. Finalmente, concluye que la mejor estrategia de pruebas es la que decida en conjunto todo el equipo.
Este documento describe los conceptos y prácticas clave de DevOps. Explica que DevOps implica trabajar de forma colaborativa entre equipos de desarrollo y operaciones para entregar software de forma rápida y fiable mediante la automatización y la integración continua. También destaca la importancia de la cultura, como fomentar la difusión del conocimiento y la orientación al cliente.
Net Core + Docker + Kubernetes + Azure DevopsAndrés Londoño
Presentación realizada para el meetup de MED.NET el día 27 de junio de 2019, con el objetivo de explicar de forma clara y a través de un ejercicio en vivo, como desplegar un aplicativo .Net Core contenerizado con docker y desplegado a Azure Kubernetes Service utilizando Azure Devops.
DevOps permite acelerar el ciclo de desarrollo de software mediante la automatización y la integración continua de los procesos de desarrollo, pruebas y despliegue. Amazon ha adoptado prácticas DevOps como equipos pequeños con responsabilidades compartidas, microservicios y despliegues continuos automatizados a través de servicios como AWS CodeCommit, AWS CodePipeline y AWS CodeDeploy. Estos servicios permiten a los equipos de Amazon realizar más de 50 millones de despliegues por año de forma rápida, confiable y sin tiempo de
DevOpsDays Madrid 2020 - Audita y evalua la seguridad de tu infraestructuraAlejandro García Miravet
Este documento describe Inspec, un framework de código abierto para realizar pruebas y auditorías de seguridad de infraestructura y aplicaciones. Inspec permite crear pruebas fáciles de entender para validar el estado de los recursos y compararlos con las expectativas mediante comparadores integrados. Inspec incluye recursos integrados para probar muchas plataformas y también permite crear recursos personalizados. Las pruebas se pueden empaquetar en perfiles reutilizables.
Este documento presenta las herramientas y procesos de DevOps de Amazon, incluyendo AWS CodeDeploy para despliegues automatizados, AWS CodePipeline para entrega continua, y AWS CodeCommit para control de versiones. Explica cómo Amazon utiliza arquitecturas de microservicios y equipos pequeños para lograr más de 50 millones de despliegues al año de forma rápida y confiable. También describe cómo otras organizaciones pueden implementar procesos similares de DevOps utilizando estas herramientas administradas de AWS.
Este documento describe diferentes técnicas para probar aplicaciones Angular, incluyendo TDD, BDD, pruebas unitarias, y pruebas E2E. Explica cómo escribir pruebas para cada tipo de test, así como herramientas como Karma, Protractor y Jasmine que pueden usarse para automatizar las pruebas. También cubre temas como componentes, $scope, $compile y $httpBackend para simular backends.
DevSecOps se refiere a la unión de personas, procesos y herramientas para permitir la entrega continua de valor a los usuarios finales de manera segura. Integra las prácticas de seguridad en el ciclo de desarrollo de software para automatizar la entrega de aplicaciones más seguras de forma rápida. El objetivo es que los equipos de desarrollo y seguridad colaboren estrechamente para identificar y mitigar vulnerabilidades lo antes posible en el proceso de desarrollo.
Este documento presenta sobre Azure Service Fabric, una plataforma de Microsoft para construir y administrar microservicios y contenedores. Se discute cómo Service Fabric permite implementar aplicaciones como microservicios independientes que se pueden escalar individualmente. También cubre los modelos de programación, herramientas de desarrollo y monitoreo, y cómo Service Fabric puede usarse para modernizar aplicaciones existentes o crear nuevas aplicaciones basadas en microservicios.
El documento presenta una introducción al curso "Test Automation using Selenium WebDriver & Grid" impartido por Luis Ruiz. Se explica brevemente qué es Selenium, sus componentes principales como WebDriver, IDE y Grid. También se describen los objetivos del curso, la configuración de dependencias de Maven y una práctica sobre la jerarquía y métodos de WebDriver.
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...micarnavaltupatrimon
Mi Carnaval es la plataforma que permite conectar al usuario con la cultura y la emoción del Carnaval de Blancos y Negros en la ciudad de Pasto, esta plataforma brinda una amplia oferta de productos, servicios, tiquetería e información relevante para generarle valor al usuario, además, la plataforma realiza un levantamiento de datos de los espectadores que se registran, capturando su actividad e información relevante para generar la analítica demográfica del evento en tiempo real, con estos datos se generan modelos predictivos, que permiten una mejor preparación y organización del evento, de esta manera ayudando a reducir la congestión, las largas filas y, así como a identificar áreas de alto riesgo de delincuencia y otros problemas de seguridad.
Este documento proporciona información sobre una presentación sobre SQL Server en contenedores Docker. Incluye la agenda de la presentación, una introducción a Docker y contenedores, los beneficios de usar contenedores, y ejemplos de cómo implementar SQL Server en contenedores de Docker.
DotNet 2019 | Luis Fraile - Tests de integración con .NET Core, Docker y Azur...Plain Concepts
Este documento describe cómo usar contenedores de servicios y trabajos de contenedor en Azure DevOps Pipelines para ejecutar pruebas de integración de manera más rápida y económica. Explica que los contenedores de servicios se usan como recursos compartidos y los trabajos de contenedor permiten compilar e integrar el código dentro de contenedores gestionados por el agente de Azure Pipelines. Finalmente, muestra un ejemplo de configuración YAML para implementar esta estrategia.
Este documento presenta una introducción a Azure App Service y Web App con Containers, incluyendo cómo desplegar e instalar contenedores, la integración con Azure DevOps, y la diferencia entre contenedores y máquinas virtuales. También explica conceptos clave como Docker images, Docker containers, y servicios en Azure para ejecutar contenedores como Azure App Service y Web App for Containers.
Testing de integración en Azure DevOps con Docker - Plain Concepts DevOps dayPlain Concepts
Con la ayuda de Azure DevOps, sus pipelines, y utilizando contenedores Docker, podemos definir nuestras pruebas automatizadas de un modo más eficiente, asegurando su ejecución y facilitando su mantenimiento y puesta en marcha. Ven a esta charla a descubrir cómo incluir todo esto en tus desarrollos.
Esta es la presentación usada para el Docker MeetUp que se realiza el 8 de Junio de 2016 en el Google Campus de Madrid.
En la sesión se describe cómo encaja el modelo de contenedores Docker para clientes que gestionan un centro de datos con el modelo tradicional. Docker se presenta como el mejor aliado para implantar el modelo de trabajo DevOps en empresas con centro de datos propio.
After tests marzo 2017: Pruebas de Integración Automatizadas con DockerFernando Llaca Romero
Este documento describe cómo implementar pruebas de integración automatizadas usando contenedores Docker. Explica los conceptos básicos de pruebas de integración y las herramientas Docker y Jenkins. Luego detalla cómo configurar un plan de integración continua basado en contenedores Docker, abordando desafíos como la instalación, configuración de red, almacenamiento de datos de prueba y escalabilidad. Finalmente, muestra una demostración práctica de cómo ejecutar pruebas de integración dentro de contenedores Docker.
Este documento presenta Docker, una plataforma de contenedores que permite empaquetar aplicaciones junto con todas sus dependencias para ejecutarlas de forma aislada. Explica los beneficios de Docker para desarrolladores y startups, como facilitar el despliegue de aplicaciones y la gestión en la nube. También describe el ecosistema de Docker incluyendo clientes, servidores, imágenes, registros y buenas prácticas de orquestación y monitorización.
Pruebas automatizadas de aceptación en aplicaciones webGiannis Morales
Este documento describe cómo automatizar pruebas de aceptación en aplicaciones web utilizando las herramientas RSpec y Selenium. Explica brevemente los tipos de pruebas, incluidas las pruebas de aceptación, y los beneficios de automatizar las pruebas, como reducir costos y evitar plazos incumplidos. Luego proporciona una introducción a RSpec y Selenium, describiendo que RSpec hace que los casos de prueba sean fáciles de leer y que Selenium permite desarrollar scripts de prueba para aplicaciones web en vari
Este documento presenta una sesión sobre ejecutar Dynamics 365 Business Central (anteriormente conocido como NAV) en contenedores Docker. La sesión incluye una introducción a Docker y contenedores, imágenes disponibles para BC/NAV, la arquitectura de BC/NAV en Docker, y cómo ampliar la funcionalidad de las imágenes estándar de Microsoft modificando scripts de configuración. El orador también muestra herramientas como NavContainerHelper y Portainer y provee enlaces a recursos adicionales.
Este documento presenta las estrategias de pruebas en DevOps. Explica que las pruebas deben ser parte integral del ciclo de desarrollo continuo e integración (CI/CD). Detalla diferentes tipos de pruebas como pruebas unitarias, de API, de interfaz de usuario y de rendimiento. Finalmente, concluye que la mejor estrategia de pruebas es la que decida en conjunto todo el equipo.
Este documento describe los conceptos y prácticas clave de DevOps. Explica que DevOps implica trabajar de forma colaborativa entre equipos de desarrollo y operaciones para entregar software de forma rápida y fiable mediante la automatización y la integración continua. También destaca la importancia de la cultura, como fomentar la difusión del conocimiento y la orientación al cliente.
Net Core + Docker + Kubernetes + Azure DevopsAndrés Londoño
Presentación realizada para el meetup de MED.NET el día 27 de junio de 2019, con el objetivo de explicar de forma clara y a través de un ejercicio en vivo, como desplegar un aplicativo .Net Core contenerizado con docker y desplegado a Azure Kubernetes Service utilizando Azure Devops.
DevOps permite acelerar el ciclo de desarrollo de software mediante la automatización y la integración continua de los procesos de desarrollo, pruebas y despliegue. Amazon ha adoptado prácticas DevOps como equipos pequeños con responsabilidades compartidas, microservicios y despliegues continuos automatizados a través de servicios como AWS CodeCommit, AWS CodePipeline y AWS CodeDeploy. Estos servicios permiten a los equipos de Amazon realizar más de 50 millones de despliegues por año de forma rápida, confiable y sin tiempo de
DevOpsDays Madrid 2020 - Audita y evalua la seguridad de tu infraestructuraAlejandro García Miravet
Este documento describe Inspec, un framework de código abierto para realizar pruebas y auditorías de seguridad de infraestructura y aplicaciones. Inspec permite crear pruebas fáciles de entender para validar el estado de los recursos y compararlos con las expectativas mediante comparadores integrados. Inspec incluye recursos integrados para probar muchas plataformas y también permite crear recursos personalizados. Las pruebas se pueden empaquetar en perfiles reutilizables.
Este documento presenta las herramientas y procesos de DevOps de Amazon, incluyendo AWS CodeDeploy para despliegues automatizados, AWS CodePipeline para entrega continua, y AWS CodeCommit para control de versiones. Explica cómo Amazon utiliza arquitecturas de microservicios y equipos pequeños para lograr más de 50 millones de despliegues al año de forma rápida y confiable. También describe cómo otras organizaciones pueden implementar procesos similares de DevOps utilizando estas herramientas administradas de AWS.
Este documento describe diferentes técnicas para probar aplicaciones Angular, incluyendo TDD, BDD, pruebas unitarias, y pruebas E2E. Explica cómo escribir pruebas para cada tipo de test, así como herramientas como Karma, Protractor y Jasmine que pueden usarse para automatizar las pruebas. También cubre temas como componentes, $scope, $compile y $httpBackend para simular backends.
DevSecOps se refiere a la unión de personas, procesos y herramientas para permitir la entrega continua de valor a los usuarios finales de manera segura. Integra las prácticas de seguridad en el ciclo de desarrollo de software para automatizar la entrega de aplicaciones más seguras de forma rápida. El objetivo es que los equipos de desarrollo y seguridad colaboren estrechamente para identificar y mitigar vulnerabilidades lo antes posible en el proceso de desarrollo.
Este documento presenta sobre Azure Service Fabric, una plataforma de Microsoft para construir y administrar microservicios y contenedores. Se discute cómo Service Fabric permite implementar aplicaciones como microservicios independientes que se pueden escalar individualmente. También cubre los modelos de programación, herramientas de desarrollo y monitoreo, y cómo Service Fabric puede usarse para modernizar aplicaciones existentes o crear nuevas aplicaciones basadas en microservicios.
El documento presenta una introducción al curso "Test Automation using Selenium WebDriver & Grid" impartido por Luis Ruiz. Se explica brevemente qué es Selenium, sus componentes principales como WebDriver, IDE y Grid. También se describen los objetivos del curso, la configuración de dependencias de Maven y una práctica sobre la jerarquía y métodos de WebDriver.
Similar a Selenium + Docker: ¡Qué me es-test container! (20)
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...micarnavaltupatrimon
Mi Carnaval es la plataforma que permite conectar al usuario con la cultura y la emoción del Carnaval de Blancos y Negros en la ciudad de Pasto, esta plataforma brinda una amplia oferta de productos, servicios, tiquetería e información relevante para generarle valor al usuario, además, la plataforma realiza un levantamiento de datos de los espectadores que se registran, capturando su actividad e información relevante para generar la analítica demográfica del evento en tiempo real, con estos datos se generan modelos predictivos, que permiten una mejor preparación y organización del evento, de esta manera ayudando a reducir la congestión, las largas filas y, así como a identificar áreas de alto riesgo de delincuencia y otros problemas de seguridad.
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...micarnavaltupatrimon
Mi Carnaval es la plataforma que permite conectar al usuario con la cultura y la emoción del Carnaval de Blancos y Negros en la ciudad de Pasto, esta plataforma brinda una amplia oferta de productos, servicios, tiquetería e información relevante para generarle valor al usuario, además, la plataforma realiza un levantamiento de datos de los espectadores que se registran, capturando su actividad e información relevante para generar la analítica demográfica del evento en tiempo real, con estos datos se generan modelos predictivos, que permiten una mejor preparación y organización del evento, de esta manera ayudando a reducir la congestión, las largas filas y, así como a identificar áreas de alto riesgo de delincuencia y otros problemas de seguridad.
Hola, soy Troy McClure, y quizá me recuerden de otras charlas como: “Más allá del botón derecho publicar” o “Azure Alerts: ¿Has probado a reiniciar?”.
En esta ocasion vengo a intentar contaros “¿Qué es selenium?”
Para ello, antes debemos entender qué es el functional testing.
El functional testing o pruebas funcionales son aquellas que están destinadas a asegurar que un Sistema informático, sea cual sea, hace lo que se espera de él y además, cumple con la especificación dada.
Dentro del functional testing hay diferentes fases o tareas, como podéis ver en el diagrama, como son la toma de requisitos, la definición de los casos de uso o la planificación y ejecución de los test.
Existen, según su tipología, diferentes tipos de test funcionales. Algunos de estos tipos son test:
De regresión, que permiten evitar que cualquier modificación introducida en vuestras aplicaciones provoque un bug previamente verificado en fases anteriores de testing.
De compatibilidad, que permiten asegurar que la aplicación funciona en diferentes entornos, navegadores…
De aceptación, que aunque se pueden considerer parte del functional testing, a menudo se separan en una categoría aparte.
Evidentemente, estas pruebas pueden ser ejecutadas manualmente, pero la gracia es que se ejecuten de forma automática, de manera que se puedan integrar como parte de un proceso de testing integral… ¿De qué está formado este proceso de testing?
Pues hay diferentes tipos de tests, según el grado de profundidad que se prueba.
Los más conocidos por nosotros los desarrolladores son los Unit test y los Integration Tests.
Unit test es aquel conjunto de test que está pensado para probar una sola pieza del sistema, sin interacción con otras piezas o servicios, a fin de asegurar que el funcionamiento es el esperado.
Integration test, por su lado, es aquel conjunto de test pensados para asegurar una interacción correcta entre dos o más piezas de la aplicación. Sirven, por ejemplo, para verificar que la aplicación funciona cuando consume servicios externos o remotos en vez de servicios mockeados.
Estos dos tipos de test son los más conocidos por los desarrolladores, pero en un Plan de test integral, a veces hay otro tipo de usuarios que son los encargados normalmente de llevar a cabo los test funcionales y de aceptación. Estos son, los QA o, incluso, el propio usuario final, que valida funcionalmente la aplicación y acepta la solución existente como válida según la especificación inicial.
Así que… tenemos estos dos tipos de usuarios…
Nosotros, los developers, solemos ver a los QA y a los usuarios como…
… un demonio.
Su único objetivo en la vida es fastidiarnos, encontrando errores o interpretando las definiciones del producto de una manera que nunca fue o nunca entendimos así.
Por contra, ellos, los QAs o el propio usuario final, tiende a ver a los developers…
… así. Como Ralph. “Yo me llamo Ralph!”
Para un QA, un developer es alguien que no tiene en cuenta las mil y una características con las que cuenta un sistema, un navegador, el negocio… Para ellos, normalmente no vemos el producto como un todo.
Nada más lejos de la realidad…
Así pues, ahora que sabemos qué es el Functional Testing, Podemos volver a la pregunta inicial. ¿Qué es Selenium?
Si antes hemos hablado de Test Funcionales, de ejecuciones automáticas y de un plan integral de test en vuestra aplicación, Selenium es una de las herramientas que podemos utilizar para conseguirlo.
Selenium es un motor de ejecución de pruebas funcionales WEB, que permite ejecutar tests funcionales sobre una o varias plataformas y navegadores a la vez, utilizando un mismo código de testing. Pero quizá, llegados a este punto, es mejor que os lo enseñe con un ejemplo…
Demostrar:
Selenium usando Katalon en Firefox.
Selenium usando Visual Studio con C# y .NET Core 2.1
Llegados a este punto, y dado que todo el mundo sabe qué es Docker…
Bueno, quizá no todo el mundo sabe que es docker. Veamos…
Formalmente, Docker es un sistema de despliegue de aplicaciones basado en contenedores.
Que qué es un contenedor…
Un contenedor de docker es un entorno de ejecución aislado que proporciona uno o más puntos de entrada y que permite ejecutar aplicaciones en sistemas host sin necesidad de tener instalado el software que se quiere ejecutar. Únicamente hace falta tener el motor de docker funcionando.
¿Y qué pasa cuando para que una solución funcione necesitamos varias aplicaciones funcionando a la vez?
Para eso existe, entre otros sistemas… (no voy a entrar a Kubernetes y otros orquestadores…), la composición mediante docker-compose.
Docker compose es una herramienta que utiliza docker para formar conjuntos de varios contenedores que se ejecutan a la vez pero cada uno en un subsistema distinto. Es útil, por ejemplo, cuando tu aplicación, que corre en .NET Core y un contenedor Windows, se tiene que comunicar con otro contenedor que tiene una base de datos MySQL, en su propio sistema Linux.
Mediante docker Compose, se pueden arrancar todos estos servicios a la vez, definir relaciones entre ellos, puntos de entrada…
¿Y todo esto a qué viene? Pues resulta que Selenium tiene dos versiones preparadas para trabajar sobre contenedores Docker.
Por un lado, las imágenes self-contained especificas por navegador.
Estas imágenes incluyen:
Selenium instalado (en linux)
Una instancia del navegador correspondiente (Firefox, Chrome…)
La ventaja de estas imágenes es que permiten solo levantar aquel navegador que necesitas, para así lanzar las pruebas funcionales de forma explícita para dicho navegador…
Pero hemos dicho que queremos hacerlo genérico e integrar todos los navegadores posibles en nuestro plan de pruebas integral, ¿no?
Para eso, nos conviene utilizar lo que se conoce como Selenium Hub.
Selenium Hub es un motor de Selenium al que se pueden suscribir N drivers de ejecución. De esta manera, registrando los motores de Firefox y Chrome, podemos ejecutar tests sobre cualquiera de estos motores atacando a un único punto de entrada.
Vamos a verlo.
Demostrar:
Levantar grid con Docker Compose
Ejecutar tests de firefox desde Selenium
Apagar grid
Ya terminamos…
Todo esto, debe poderse automatizar de alguna manera… y ahí es donde VSTS… digo… Azure DevOps entra en escena.
Desde Azure DevOps podemos configurar nuestros pipelines para levantar un grid de Selenium (Selenium Hub + Drivers), ejecutar las pruebas funcionales disponibles, recoger los resultados y eliminar el grid previamente levantado… sin pasar por servicios externos!
Vamos a verlo.
Demostrar:
Build definition en Azure DevOps
Release definition en Azure DevOps
Ejecutar Release definition.
Antes de terminar, quiero daros unas pocas advertencias acerca de toda esta solución que os planteo.
Los contenedores Selenium evolucionan constantemente, y cosas que hoy funcionan, mañana con una version más actual no tienen por qué funcionar.
Por otro lado, cuando trabajéis con proyectos .NET Framework, y dado que los steps de build y test deben ser ejecutados desde un agente Windows, actualmente no es posible levantar el grid de selenium directamente en el agente, que obligatoriamente tiene que ser Linux. Es necesario, por tanto, definir un endpoint donde levantar vuestro grid (por ejemplo vía AKS o ACS, ambos servicios de manejo de contenedores en Azure) y conectaros allí desde vuestro agente de release / build.
Y por ultimo, no cualquier agente hosted de linux sirve. Por algún motive que no tengo muy claro, el Linux Preview no funciona. Por lo que he leído, se trata de un problema de contexto de ejecución, que impide que la IP de entrada al contenedor sea visible desde el propio agente. Usad en su lugar el agente Ubuntu.