Prueba de IU con Selenium
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Realizar pruebas de interfaz de usuario (UI) como parte de la canalización de versión es una excelente manera de detectar cambios inesperados y no es necesario que sea difícil. En este artículo se describe el uso de Selenium para probar el sitio web durante una versión de implementación continua y la automatización de pruebas. Las consideraciones especiales que se aplican al ejecutar pruebas de IU se describen en consideraciones de pruebas de IU.
Normalmente, ejecutará pruebas unitarias en el flujo de trabajo de compilación y pruebas funcionales (UI) en el flujo de trabajo de versión después de implementar la aplicación (normalmente en un entorno de control de calidad).
Para obtener más información sobre la automatización del explorador Selenium, consulte:
Creación del proyecto de prueba
Como no hay ninguna plantilla para las pruebas de Selenium, la manera más fácil de empezar es usar la plantilla de prueba unitaria. Esto agrega automáticamente las referencias del marco de pruebas y le permite ejecutar y ver los resultados desde el Explorador de pruebas de Visual Studio.
En Visual Studio, abra el menú Archivo y elija Nuevo proyecto y, a continuación, elija Probar y seleccione Proyecto de prueba unitaria. Como alternativa, abra el menú contextual de la solución y elija Agregar, luego Nuevo proyecto y, a continuación, Proyecto de prueba unitaria.
Una vez creado el proyecto, agregue las referencias del controlador Selenium y del explorador usadas por el explorador para ejecutar las pruebas. Abra el menú contextual del proyecto de prueba unitaria y elija Administrar paquetes NuGet. Agregue los siguientes paquetes al proyecto:
- Selenium.WebDriver
- Selenium.Firefox.WebDriver
- Selenium.WebDriver.ChromeDriver
- Selenium.WebDriver.IEDriver
Creación de pruebas. Por ejemplo, el siguiente código crea una clase predeterminada denominada MySeleniumTests que realiza una prueba sencilla en el sitio web de Bing.com. Reemplace el contenido de la función TheBingSearchTest por el código de Selenium necesario para probar la aplicación web o el sitio web. Cambie la asignación del explorador en la función SetupTest al explorador que desea usar para la prueba.
using System; using System.Text; using Microsoft.VisualStudio.TestTools.UnitTesting; using OpenQA.Selenium; using OpenQA.Selenium.Firefox; using OpenQA.Selenium.Chrome; using OpenQA.Selenium.IE; namespace SeleniumBingTests { /// <summary> /// Summary description for MySeleniumTests /// </summary> [TestClass] public class MySeleniumTests { private TestContext testContextInstance; private IWebDriver driver; private string appURL; public MySeleniumTests() { } [TestMethod] [TestCategory("Chrome")] public void TheBingSearchTest() { driver.Navigate().GoToUrl(appURL + "/"); driver.FindElement(By.Id("sb_form_q")).SendKeys("Azure Pipelines"); driver.FindElement(By.Id("sb_form_go")).Click(); driver.FindElement(By.XPath("//ol[@id='b_results']/li/h2/a/strong[3]")).Click(); Assert.IsTrue(driver.Title.Contains("Azure Pipelines"), "Verified title of the page"); } /// <summary> ///Gets or sets the test context which provides ///information about and functionality for the current test run. ///</summary> public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } [TestInitialize()] public void SetupTest() { appURL = "http://www.bing.com/"; string browser = "Chrome"; switch(browser) { case "Chrome": driver = new ChromeDriver(); break; case "Firefox": driver = new FirefoxDriver(); break; case "IE": driver = new InternetExplorerDriver(); break; default: driver = new ChromeDriver(); break; } } [TestCleanup()] public void MyTestCleanup() { driver.Quit(); } } }
Ejecute la prueba de Selenium localmente mediante el Explorador de pruebas y compruebe que funciona.
Definición de la canalización de compilación
Necesitará una canalización de compilación de integración continua (CI) que compile las pruebas de Selenium. Para obtener más información, consulte Compilación de la aplicación de escritorio .NET para Windows.
Creación de la aplicación web
Necesitará una aplicación web para probarla. Puede usar una aplicación existente o implementar una en la canalización de versión de implementación continua (CD). El código de ejemplo anterior ejecuta pruebas en Bing.com. Para más información sobre cómo configurar su propia canalización de versión para implementar una aplicación web, consulte Implementación en Azure Web Apps.
Decida cómo implementará y probará la aplicación
Puede implementar y probar la aplicación mediante el agente hospedado por Microsoft en Azure o un agente autohospedado que instale en los servidores de destino.
Al usar el agente hospedado por Microsoft, debe usar los controladores web de Selenium que están preinstalados en los agentes de Windows (agentes denominados Hosted VS 20xx) porque son compatibles con las versiones del explorador instaladas en las imágenes del agente hospedado por Microsoft. Los trazados a las carpetas que contienen estos controladores se pueden obtener de las variables de entorno denominadas
IEWebDriver
(Internet Explorer),ChromeWebDriver
(Google Chrome) yGeckoWebDriver
(Firefox). Los controladores no están preinstalados en otros agentes, como Linux, Ubuntu y macOS. Consulte también consideraciones sobre las pruebas de IU.Al usar un agente autohospedado que implemente en los servidores de destino, los agentes deben configurarse para ejecutarse de forma interactiva con el inicio de sesión automático habilitado. Consulte Consideraciones sobre los agentes de compilación y versión y las pruebas de IU.
Inclusión de la prueba en una versión
Si no tiene una canalización de versión existente que implemente la aplicación web:
Abra la página Versiones de la sección Azure Pipelines de Azure DevOps o el centro Comipliación y versión en TFS (consulte Navegación del portal web) y elija el icono + y, a continuación, elija Crear canalización de versión.
Seleccione la plantilla Implementación de Azure App Service y elija Aplicar.
En la sección Artefactos de la pestaña Canalización, elija + Agregar. Seleccione los artefactos de compilación y elija Agregar.
Elija el icono Desencadenador de implementación continua en la sección Artefactos de la pestaña Canalización. En el panel Desencadenador de implementación continua, habilite el desencadenador para que se cree una nueva versión a partir de cada compilación. Agregue un filtro para la rama predeterminada.
Abra la pestaña Tareas, seleccione la sección Fase 1 y escriba la información de suscripción y el nombre de la aplicación web donde desea implementar la aplicación y las pruebas. Esta configuración se aplica a la tarea Implementar Azure App Service.
Si va a implementar la aplicación y las pruebas en entornos donde las máquinas de destino que hospedan los agentes no tienen instalado Visual Studio:
En la pestaña Tareas de la canalización de versión, elija el icono + de la sección Ejecutar en agente. Seleccione la tarea Instalador de plataforma de prueba de Visual Studio y elija Agregar. Deje toda la configuración en los valores predeterminados.
Puede encontrar una tarea más fácilmente mediante el cuadro de texto de búsqueda.
En la pestaña Tareas de la canalización de versión, elija el icono + de la sección Ejecutar en agente. Seleccione la tarea Prueba de Visual Studio y elija Agregar.
Si agregó la tarea Instalador de plataforma de prueba de Visual Studio a la canalización, cambie la configuración Versión de la plataforma de prueba en la sección Opciones de ejecución de la tarea Prueba de Visual Studio a Instalado por el Instalador de herramientas.
¿Cómo se pasan los parámetros al código de prueba desde una canalización de compilación?
Guarde la canalización de versión e inicie una nueva versión. Para ello, puede poner en cola una nueva compilación de CI o elegir Crear versión en la lista desplegable Versión de la canalización de versión.
Para ver los resultados de la prueba, abra el resumen de la versión en la página Versiones y elija el vínculo Pruebas .