¿También puedes usar Markdown para escribir casos de uso automatizados? Debes conocer este artefacto automatizado.

01 ¿Qué es el calibre?

Gauge es un marco BDD para escribir y ejecutar pruebas de aceptación . Tiene las siguientes características:

  • Utilice la sintaxis simple y flexible de Markdown para describir el comportamiento

  • Admite múltiples plataformas (Windows, Linux, macOS) y múltiples lenguajes (C#, Java, Javascript, Python, Ruby)

  • Admite extensión de complemento

  • Admite fuentes de datos externas y basadas en datos (archivos CSV)

  • Soporte VS Código

El uso de la sintaxis Markdown para describir comportamientos es el aspecto más especial de Gauge. A continuación, daremos una explicación detallada, incluida la preparación del entorno, la inicialización del proyecto, la redacción de casos de uso, la unidad de datos, la operación, los informes de prueba, etc.

02 Preparación del entorno

1.Instalar Python

La instalación de Python es relativamente simple y no se describirá aquí. Lo único a tener en cuenta es que se requiere la versión de Python >=2.7

2. Descargue calibre-1.1.1-windows.x86_64.exe

Dirección de descarga: https://github.com/getgauge/gauge/releases

La instalación es relativamente simple, simplemente haga clic en Siguiente y finalmente configure la variable de entorno para la ruta donde se encuentra calibre.exe. Ingrese calibre -v en cmder. Si se genera la información de la versión, significa que la instalación se ha realizado correctamente.

imagen

3. Instale el complemento VS Code

Instalar el complemento de calibre en VS Code

imagen

03 Inicialización del proyecto

En el directorio virtual_workshop de la unidad E, cree un directorio de proyecto calibre_study, cambie a este directorio y use el comando calibre init python para inicializar el proyecto.

imagen

La inicialización realizó algunos trabajos, como la creación de capas de directorios y la configuración del entorno, y dio un ejemplo (ver ejemplo.spec, step_iml.py): este es un proyecto sobre las estadísticas de vocales en palabras en inglés.

imagen

A continuación se explica la función de cada directorio:

  • env: directorio de configuración del entorno

  • registros: directorio de registro

  • specs: directorio que describe el comportamiento. El archivo de especificaciones almacenado aquí se escribe utilizando la sintaxis MarkDown.

  • step_impl: directorio de implementación, use python u otros lenguajes para realizar el comportamiento descrito en el archivo de especificaciones

04 Escritura de casos de uso

1. Escribir archivo de descripción

Dado que está impulsado por el comportamiento, primero debe haber una descripción del comportamiento y luego la implementación del comportamiento. Por lo tanto, es crucial cómo escribir archivos de especificaciones para describir comportamientos y cómo implementarlos. Ahora existe un requisito como este:

Descripción del requisito

Para probar el tipo y la longitud de un nombre, el tipo de nombre es generalmente una cadena y la longitud del nombre es la suma de cada carácter.

Tipo de nombre de prueba

El tipo de nombre "xxxx" es "cadena"

Longitud del nombre de la prueba

La longitud del nombre "xxxx" es "4"

En el directorio de especificaciones, cree un archivo de descripción name.spec. Utilice la sintaxis MarkDown para implementarlo de la siguiente manera:

imagen

Primero explique las reglas para escribir archivos de descripción:

En casos de prueba anteriores, existen conceptos de conjuntos de pruebas, conjuntos de pruebas, escenarios de prueba y pasos de prueba, que también se aplican a Gauge. Puede pensar en el directorio Specs como un conjunto de pruebas. Cada archivo de especificaciones que se encuentra debajo es un conjunto de pruebas. Cada conjunto de pruebas contiene uno o más escenarios de prueba, y cada escenario de prueba contiene una o más pruebas. Si lo entiendes así, muchas cosas quedarán claras de un vistazo.

A continuación, explicaremos el método básico de escritura del archivo de especificaciones del archivo de descripción con ejemplos.

(1) Especificaciones del equipo de prueba

Sólo puede haber una marca para el inicio del archivo de especificaciones. Cada especificación contiene al menos un escenario de prueba. El método de escritura específico es "# descripción" y, por supuesto, también se pueden agregar comentarios a continuación.

  • Esto describe principalmente los módulos funcionales de la prueba, como el nombre de la función.

# Nombre

Este es un archivo de especificaciones que describe el tipo y la longitud del nombre.

(2)Escenario de prueba Escenario

Cada escenario contiene al menos un paso de prueba. El método de escritura específico es "## descripción".

  • Esto describe principalmente el escenario de prueba, como probar el tipo y la longitud del nombre, es una descomposición de los módulos funcionales.

## Tipo de nombre de prueba

* El tipo de "Beck" debe ser "string"

(3)Paso de prueba Paso

El paso de prueba puede incluir los datos de prueba "Beck" y el resultado esperado "cadena", o no. El método de escritura específico es "* descripción"

  • Cada paso es un desglose del escenario de prueba.

## Tipo de nombre de prueba

* El tipo de "Beck" debe ser "string"

2. Escribir método de implementación

Una vez preparado el archivo de descripción, es necesario implementar el lenguaje y la relación entre el archivo de descripción y el método de implementación. Un breve resumen es el siguiente:

imagen

Como se muestra en la figura anterior, cada método de prueba es una implementación de la descripción del paso de prueba. Solo necesita definir un método para implementar este paso. Pero aquí surge la pregunta, ¿ cómo debemos expresar los pasos con los datos de las pruebas y los resultados esperados?

  • Es muy simple. Las posiciones de todos los parámetros reales se pueden representar mediante <nombre de variable>. Los pasos solo son responsables de la descripción. La lógica específica de obtener datos, procesar datos, extraer resultados reales y afirmaciones se implementa mediante el método de prueba. Aquí hay una sensación de separación de datos.

Con base en esta idea, cree un módulo name_impl.py en el directorio step_impl, luego introduzca el método step del módulo getgauge.python, luego escriba los métodos de prueba test_name_type y test_name_length, agregue el decorador @step en el método de prueba, en el decorador Los parámetros son el contenido de la descripción, pero se parametrizan usando <nombre del parámetro> . Los parámetros en el decorador se pueden pasar al método de prueba.

imagen

05 Basado en datos

Supongamos que queremos probar varios nombres. Obviamente, no es realista escribir descripciones de pasos línea por línea y definir métodos de prueba uno por uno, por lo que necesitamos usar un controlador de datos . Gauge admite tablas y archivos csv. Primero echemos un vistazo a la tabla:

01 formulario

La tabla debe definirse en el archivo de descripción name.spec. Trate el formulario como un paso y primero debe preparar los escenarios y pasos correspondientes.

imagen

Implemente el método de recorrido por lotes de tablas test_all_names_by_table en name.spec y agregue el decorador @step(). El parámetro del decorador también describe el contenido en el paso "Todos los nombres que tienen tipo y longitud" , pero también debe agregar la variable < table> después de ella. La variable table representa el objeto de la tabla, por lo que el parámetro es " Todos los nombres que tienen tipo y longitud <table> " .

Entonces, ¿cómo recorrer cada valor de la tabla?

Usando table.get_column_values_with_name (nombre de la columna), puede obtener un objeto iterable que consta de cada valor de la columna correspondiente y luego usar un bucle for para recorrerlo en secuencia.

imagen

02 archivo CSV

Cree un nuevo directorio de recursos en el proyecto calibre_study para almacenar archivos csv. Puede definir un archivo nombres.csv para almacenar nuestros datos de prueba.

imagen

Luego agregue una descripción en el archivo de descripción nombre.spec. Al igual que la tabla, debe configurar los escenarios y los pasos. Luego debe agregar una referencia a la dirección del archivo csv <table:resources/names.csv> en el descripción del paso.

imagen

Finalmente, implemente el paso de descripción de datos csv en name_impl.py, cree un método test_all_names_by_csv_file, agregue el decorador @step y el parámetro sea parte de la descripción " Todos los nombres proporcionados por <table> ".

Lo que hay que tener en cuenta aquí es:

La tabla representa un objeto csv. Los datos obtenidos al recorrer la tabla son los datos de cada fila, como ["Beck", "string", "4"] en la primera fila. Los elementos de este objeto iterable se descomponen y asignan para nombrar por turno., escriba, longitud y obtenga todos los valores en el archivo csv.

imagen

06 correr

Hasta ahora, hemos escrito 4 casos de uso nosotros mismos, resumámoslos juntos:

Ejemplo

método

Ubicación de almacenamiento de datos

Observación

Pruebe el tipo de un solo nombre.

prueba_nombre_tipo(nombre, tipo)

Nombre del archivo de descripción.spec

Pruebe la longitud de un solo nombre

test_name_length(nombre, tipo)

Nombre del archivo de descripción.spec

Probar el tipo y la longitud de varios nombres (tabla)

test_all_names_by_table(tabla)

Nombre del archivo de descripción.spec

Uso de table.get_column_values_with_name (nombre de columna)

Pruebe el tipo y la longitud de varios nombres (archivo csv)

test_all_names_by_csv_file(tabla)

nombres.csv en el directorio de recursos

1. Referencia a la ruta csv en el archivo de descripción.

2. Recorre la tabla para obtener los datos de cada fila.

¿Cómo ejecutar estos casos de uso?

  • Gauge proporciona muchos métodos, que incluyen: ejecutar todos los archivos de especificaciones en lotes, ejecutar archivos de especificaciones específicos y ejecutar escenarios específicos bajo archivos de especificaciones específicos.

1. Ejecute todos los archivos de especificaciones

Método: recorrido de calibre

或 especificaciones de ejecución del calibre

¿Por qué hay 6 casos de uso aquí?

Debido a que también ejecuta las muestras oficiales, hay 2 elementos más.

imagen

2. Ejecute un archivo de especificaciones específico

Si solo desea ejecutar los 4 casos de uso bajo nombre.spec, debe agregar el nombre del archivo de especificación especificado.

方法:gauge run specs/name.spec

Puede ver que solo se ejecutaron 4 casos de uso.

imagen

3. Ejecute un escenario específico bajo un archivo de especificaciones específico.

Hay 4 escenarios en name.spec, correspondientes a 4 casos de uso. Si solo desea ejecutar uno de los escenarios en este momento, como el escenario de lectura de datos de la tabla, ¿cómo debería escribirlo en este momento?

方法:gauge run specs/name.spec:13

¿Qué es este 13?

En realidad, es el número de línea de la escena correspondiente en el archivo name.spec.

imagen

Como puede ver, solo se ejecutó un escenario Probar varios nombres por tabla.

imagen

07 Informe de prueba

Después de ejecutarlo, se generará automáticamente un directorio de informes. Index.html es el informe de prueba final y su ruta relativa es: informes/html-report/index.html

imagen

Utilice el navegador para abrir el informe y siento que la "apariencia" no es mala y que todo se ha ejecutado correctamente aquí. ¿Qué tal? ¿No planea probar un marco de prueba automatizado de BDD tan conveniente y rápido?

imagen

Finalmente: se ha compilado y subido el video tutorial completo de prueba de software a continuación. Los amigos que lo necesiten pueden obtenerlo ellos mismos [garantizado 100% gratis]

Documento de entrevista de prueba de software

Debemos estudiar para encontrar un trabajo bien remunerado. Las siguientes preguntas de la entrevista provienen de los últimos materiales de entrevista de empresas de Internet de primer nivel como Alibaba, Tencent, Byte, etc., y algunos jefes de Byte han dado respuestas autorizadas. Después de terminar esto set Creo que todos pueden encontrar un trabajo satisfactorio según la información de la entrevista.

Supongo que te gusta

Origin blog.csdn.net/AI_Green/article/details/133132446
Recomendado
Clasificación