Utilice TestStack.White para realizar pruebas automatizadas de la interfaz de usuario de Windows (1).

 Referencia   https://www.dazhuanlan.com/2019/09/04/8c18f8874287/

Este artículo presentará brevemente TestStack.White, un conjunto de pruebas automatizadas de IU de Windows, y realizará pruebas automatizadas de IU de Windows en un programa sumador simple de Windows Form.

 

Prefacio

Me inscribí en el curso "Pruebas automáticas y desarrollo práctico TDD" de SkillTree hace unos meses, y fui bautizado por el curso de 3 días de 91 hermanos. Por fin, tengo una comprensión relativamente completa de las pruebas unitarias / TDD / BDD, y finalmente puedo usarlo en la práctica., Aunque muchas partes todavía están tanteando y aprendiendo, también han ganado mucho del importante concepto de probar primero. Además de deshacerse del dilema de siempre atarse las manos y los pies al refactorizar en el pasado , la velocidad de revelado y la función Se ha mejorado la calidad.

En la clase, Brother 91 dedicó mucho esfuerzo a la introducción de Web UI Testing, pero debido al entorno de trabajo actual, todavía hay muchos sistemas que usan el desarrollo de Windows Form. En los ejercicios del curso, también pregunté si hay un suite similar a la prueba de interfaz de usuario de Windows de Selenium. Desafortunadamente, el hermano 91 estudió principalmente las pruebas automáticas de la Web, por lo que no obtuvo una respuesta. Después de explorar, encontró una suite de prueba de interfaz de usuario de Windows automatizada de TestStack.White, aunque a diferencia de Selenium, puede registrar fácilmente el script de operación y convertirlo en un programa de prueba de C #., Pero no es demasiado difícil usar directamente el programa para operar los componentes en el formulario de Windows sobre la base de la familiaridad con los componentes relacionados del formulario de Windows. Además, White también tiene un conjunto de patrones de objetos de página similar a las pruebas web llamado Screen Objects, que puede extraer la lógica de operación de la interfaz de usuario de una capa de abstracción para reducir el acoplamiento entre la lógica de prueba y la lógica de operación, y luego tendrá tiempo para estudiarlo más tarde. Compártelo después de verlo.

Acerca de TestStack.White

TestStack.White (en lo sucesivo, White) es una suite que envuelve el marco de prueba de automatización de la interfaz de usuario "UIAutomation" que tiene Windows, y hace que sea más conveniente escribir programas de prueba para la interfaz de usuario de Windows. A continuación, vamos a presentarlo brevemente. Cómo usar blanco

Programa a probar

Primero, creé un proyecto sumador y configuré la ruta de salida del programa en C: temp, y el nombre del programa era AddCalculator.exe. En los siguientes proyectos de prueba, abriremos automáticamente el programa sumador en el programa de prueba. Ingrese el número y presione el botón de cálculo, luego verifique que el resultado producido sea correcto.

Pantalla sumadora

 

Procedimiento del botón "Agregar"

        private void btnAdd_Click(object sender, EventArgs e)
        {
            var result = Convert.ToInt32(txtNum1.Text) + Convert.ToInt32(txtNum2.Text);
            lblResult.Text = result.ToString();
        }

Desde la pantalla del programa y el programa, se puede ver que probablemente hay varios pasos en el proyecto de prueba si se va a verificar el resultado.

  1. El programa debe ejecutarse primero
  2. Encuentre el componente de control de dos dígitos e ingrese el valor a probar
  3. Busque el botón "agregar" y deje que active el evento Click
  4. Busque la etiqueta del resultado y compruebe si el contenido es correcto

Completa el proyecto de prueba

Con la práctica básica del programa, podemos crear directamente un proyecto de prueba y agregar el paquete TestStack.White a través de la administración de paquetes NuGet.

install-package TestStack.White

Luego agregue una clase de prueba y agregue el siguiente programa

    [TestClass]
    public class CalculatorFormUITest
    {
        private Application application { get; set; }
        private Window window { get; set; }

        [TestInitialize]
        public void TestInitialize()
        {
            var applicationPath = "C:\temp\AddCalculator.exe";
            application = Application.Launch(applicationPath);
            window = application.GetWindow("加法器", InitializeOption.NoCache);
        }

        [TestCleanup]
        public void TestCleanup()
        {
            application.Close();
        }
    }

Las declaraciones de la aplicación y la ventana se utilizan para almacenar la aplicación abierta y los datos de la ventana. Estas dos variables se obtendrán durante TestInitialize. En TestInitialize, primero use Application.Launch () para abrir nuestro archivo ejecutable, y luego use application.GetWindow () para obtener el contenido de la ventana que queremos probar. El primer parámetro de application.GetWindow () es el título de la ventana.

Lo que hace TestCleanup es simple, simplemente cierre la ventana.

El contenido de TestInitialize y TestCleanup nos permite abrir la ventana para ser probado al comienzo de cada prueba, y cerrar la ventana una vez finalizada la prueba; luego agregar un nuevo método de prueba para simular la operación de la IU y los resultados de la verificación:

        [TestMethod]
        public void TestMedthod_Num1_Is_3_And_Num1_Is_5_Then_Result_Is_8()
        {
            // Arrange
            var txtNum1 = window.Get("txtNum1");
            txtNum1.Text = "3";

            var txtNum2 = window.Get("txtNum2");
            txtNum2.Text = "5";

            var expected = "8";

            // Act
            var button = window.Get("btnAdd");
            button.Click();

            // Assert
            var lblResult = window.Get("lblResult");
            var actual = lblResult.Text;

            Assert.AreEqual(expected, actual);
        }

En Arrange, usamos window.Get <control class> ("nombre del componente") para obtener el componente y el contenido que se va a configurar, y luego usamos el método window.Get para que se presione el botón durante Act., Pero el tipo se cambia a Button y al nombre correcto del componente, y finalmente Assert toma la etiqueta que muestra el resultado y luego verifica si el resultado es el mismo que el esperado.

Después de ejecutar este método de prueba, puede ver el resultado como en la siguiente figura

El programa de prueba ejecutará automáticamente el formulario Windows Form desarrollado, encontrará el comportamiento de simulación de control correspondiente y luego verificará el resultado.

El programa relacionado se puede descargar aquí: https://github.com/wellwind/WhiteUiTestingSamples/tree/master/Sample01

Conclusión

Este artículo presenta brevemente el uso de TestStack.White para automatizar la prueba de Windows Desde, busque el componente correspondiente buscando directamente el nombre de la interfaz de usuario y manipule automáticamente el comportamiento del componente, y luego pruebe si el resultado después del comportamiento es correcto.

Use un programa sumador simple para representar la interfaz de usuario compleja que realmente queremos probar, y luego busque el control correspondiente en el proyecto de prueba, simule el comportamiento real de la operación y finalmente verifique la exactitud del resultado de la operación.

White tiene muchas funciones para buscar componentes de IU, lo que puede facilitarnos la realización de pruebas automatizadas para Windows Form. Los detalles de esta parte se presentarán más adelante.

Además de White, TestStack también ha lanzado algunos conjuntos de pruebas útiles. Por ejemplo, aquellos que usan el sistema de desarrollo BDD pueden estudiar TestStack.BDDfy; al escribir programas de prueba para programas ASP.NET MVC, también puede usar TestStack.FluentMVCTesting para hacer los programas de prueba son más coloquiales. Si está interesado, puede consultarlo en el GitHub de TestStack.

Agregar barra de progreso cuando se lee la página

 

[VB.NET] TextBox juzga si se presiona Enter después de ingresar

Supongo que te gusta

Origin blog.csdn.net/mainmaster/article/details/109856674
Recomendado
Clasificación