Reglas de escritura de casos de uso y métodos de ejecución de casos de uso de la serie pytest

¡Acostúmbrate a escribir juntos! Este es el décimo día de mi participación en el "Nuggets Daily New Plan · April Update Challenge", haz clic para ver los detalles del evento .

1. Introducción a pytest

Pytest es un marco de unidad de Python muy maduro, que es más flexible y fácil de usar que unittest

Pytest se puede combinar con Selenium, Requests y Appium para realizar la automatización web, la automatización de la interfaz y la automatización de aplicaciones.

pytest puede omitir casos de prueba y volver a intentar casos fallidos

pytest y allure pueden generar informes de prueba muy bonitos

pytest se puede integrar continuamente con Jenkins

pytest tiene muchos complementos muy potentes, y estos complementos pueden lograr muchas operaciones prácticas

Los complementos comúnmente utilizados son los siguientes:

pytest-html: genera pruebas automatizadas en formato HTML

pytest-xdist: ejecución distribuida de casos de prueba, concurrencia multi-CPU

pytest-ordering: se utiliza para cambiar el orden de ejecución de los casos de prueba

pytest-rerunfailures: volver a ejecutar después de fallar la prueba

allure-pytest: para generar hermosos informes de prueba

2. Reglas de escritura de casos de uso

2.1 Reglas de nomenclatura de módulos

El nombre del módulo debe comenzar con prueba y un guión bajo o terminar con un guión bajo y prueba

2.2 Reglas de nomenclatura de clases de prueba

El nombre de la clase de prueba debe comenzar con Test y no puede tener un método init

2.3 Reglas de denominación de métodos de prueba

Los métodos de prueba deben comenzar con el guión bajo de prueba

3. Cómo funciona el caso de uso

3.1 La función principal se ejecuta

3.1.1 Ejecutar todos los casos de uso

pytest.main()
复制代码

3.1.2 Casos de uso para ejecutar módulos específicos

pytest.main(['-vs', 'test_login.py'])
复制代码

3.1.3 Ejecute el caso de uso en el directorio especificado:

pytest.main(['-vs', './interface_testcase'])   
复制代码

3.1.4 Especificar el caso de uso para ejecutar a través de modeid

nodeid consiste en nombre de módulo, separador, nombre de clase, nombre de método, nombre de función

3.1.4.1 Ejecutar el caso de uso especificado bajo el módulo especificado

pytest.main(['-vs', './interface_testcase/test_interface.py::test_04_func'])
复制代码

3.1.4.2 Ejecutar el caso de uso especificado bajo la clase de prueba especificada bajo el módulo especificado

pytest.main(['-vs', './interface_testcase/test_interface.py::TestInterface::test_03_zhiliao'])
复制代码

3.2 Modo de línea de comandos

3.2.1 Ejecutar todo

Ejecutar pytest directamente

3.2.2 Casos de uso para ejecutar módulos específicos

pytest -vs test_login.py`
复制代码

3.2.3 Ejecutar el caso de uso en el directorio especificado

pytest -vs ./interface_testcase
复制代码

3.2.4 Especificar el caso de uso para ejecutar a través de modeid

5.2.4.1 Ejecutar el caso de uso especificado bajo el módulo especificado

pytest -vs ./interface_testcase/test_interface.py::test_04_func
复制代码

3.2.4.2 Ejecutar el caso de uso especificado bajo la clase de prueba especificada bajo el módulo especificado

pytest -vs ./interface_testcase/test_interface.py::TestInterface::test_03_zhiliao
复制代码

3.3 Ejecutar leyendo el archivo de configuración pytest.ini (la forma más común)

El archivo pytest.ini es el archivo de configuración central para el marco de pruebas unitarias de pytest

3.3.1 Ubicación

Por lo general, en el directorio raíz del proyecto.

3.3.2 Codificación

Debe ser ANSI, puede usar notepad ++ para modificar el formato de codificación

3.3.3 Función

Cambiar el comportamiento predeterminado de pytest

Ejemplos de contenido son los siguientes:

[pytest]
addopts = -vs # 命令行的参数,用空格分隔
testpaths = '../pytest_project' # 测试用例的路径
python_files = test*.py # 模块名的规则
python_classes = Test* # 类名的规则
python_functions = test # 方法名的规则
复制代码

Reglas de ejecución: tanto si se está ejecutando la función principal como si se está ejecutando el modo de línea de comandos, obtenga y lea este archivo de configuración

Supongo que te gusta

Origin juejin.im/post/7085503482542686244
Recomendado
Clasificación