Si quieres aprender Pytest desde cero, ¡puedes consultar esta serie de artículos!
https://www.cnblogs.com/poloyy/category/1690628.html
Introduccion oficial
- Allure Framework es una herramienta de informe de prueba multilingüe flexible y liviana, que no solo puede mostrar el contenido probado de manera muy concisa en forma de un informe web conciso, sino que también permite a todos los involucrados en el proceso de desarrollo extraer la mayor utilidad de las pruebas diarias Informacion
- Desde una perspectiva de desarrollo / garantía de calidad, el informe Allure puede acortar el ciclo de vida de los defectos comunes: puede dividir las fallas de las pruebas en pruebas de errores y daños, y puede configurar el registro, el paso, el accesorio, los archivos adjuntos, los tiempos, el historial y el TMS Sistema de integración y seguimiento de errores, para que los desarrolladores y evaluadores responsables tengan toda la información
- Desde la perspectiva de los gerentes, Allure proporciona un claro "global" que cubre las funciones cubiertas, la ubicación de la recolección de defectos, la aparición del cronograma de ejecución y muchas otras cosas convenientes
- La modularidad y escalabilidad de Allure aseguran que siempre pueda ajustar algo para que Allure sea más adecuado para usted
Introducción personal
- Para la administración, el informe de la prueba es, por supuesto, más intuitivo, conciso y claro de los datos, y Allure satisface tantos puntos anteriores, y está bien integrado con pytest
- En comparación con pytest-html, ¡el informe de Allure es realmente perfecto! !
- El único inconveniente es que la función de extensión necesita agregar un decorador al conjunto de casos de prueba
Instalar complemento
pip3 instalar allure-pytest -i http: // pypi.douban.com/simple/ --trusted-host pypi.douban.com
Inicio rápido
Esta es la estructura del paquete del código en ejecución
# Es el nombre de la carpeta de proyecto 15allure │ conftest.py │ test_1.py │ __init__ .py │ ├─test_51job │ │ conftest.py │ │ test_case1.py │ │ __init__ .py │ ├─test_toutiao │ │ test_case2.py │ ├─test_weibo │ │ conftest.py │ │ test_case3.py │ │ __init__ .py │
El conftest.py más externo
# 外层 conftest.py @ pytest.fixture (scope = " session " ) def login (): print ( " ==== Función de inicio de sesión, cuenta de devolución, token === " ) nombre = " testyy " token = " npoi213bn4 " nombre del rendimiento , impresión de token ( " ==== 退出 登录 !!! ==== " )
Prueba más externa_1.py
importar pytest @ pytest.mark.parametrize ( " n " , list (range (5 ))) def test_get_info (login, n): dormir ( 1 ) nombre, token = inicio de sesión print ( " *** Caso de uso básico: obtener información personal del usuario *** " , n) print (f " nombre de usuario: {nombre}, token: {token} " )
conftest.py bajo el paquete test_51job
importar pytest @ pytest.fixture (scope = " module " ) def open_51 (inicio de sesión): name, token = login print (f " ### user {name} abre 51job website ### " )
test_case1.py bajo el paquete test_51job
desde el momento importa dormir importar pytest @ pytest.mark.parametrize ( " n " , list (range (5 ))) def test_case2_01 (open_51, n): sleep ( 1 ) print ( " 51job, enumerar todos los casos de uso de trabajo " , n) @ pytest.mark.parametrize ( " n " , list (range (5 ))) def test_case2_02 (open_51, n): sleep ( 1 ) print ( " 51job, encuentra todos los trabajos de python " , n)
test_case2.py bajo el paquete test_toutiao
desde el momento importa dormir importar pytest @ pytest.mark.parametrize ( " n " , list (rango (5 ))) def test_no_fixture (inicio de sesión, n): sleep ( 1 ) print ( " == no __init__ caso de prueba, ingresé el título == " , inicio de sesión)
conftest.py bajo el paquete test_weibo
importar pytest @ pytest.fixture (scope = " function " ) def open_weibo (inicio de sesión): name, token = login print (f " &&& user {name} volver a la página de inicio de Weibo &&& " )
test_case3.py bajo el paquete test_weibo
desde el momento importa dormir importar pytest @ pytest.mark.parametrize ( " n " , lista (rango (5 ))) clase TestWeibo: def test_case1_01 (self, open_weibo, n): sleep ( 1 ) print ( " Comprobar Weibo Hot Search " , n) def test_case1_02 (self, open_weibo, n): sleep ( 1 ) print ( " Ver Weibo Fan Bingbing " , n)
Comando de ejecución
Para permitir que Allure recopile los resultados de la prueba durante la ejecución de la prueba, simplemente agregue la opción --alluredir y proporcione una ruta a la carpeta donde se deben almacenar los resultados
pytest -n auto --alluredir = ritmo
El resultado resultante
Como puede ver, este no es el resultado que queremos, un montón de archivos json, txt ...
Para ver el informe real después de completar la prueba, debe usar la línea de comando Allure para permitir que los resultados de la prueba generen un informe
encanto servir encanto
Luego, el informe generado se mostrará automáticamente en el navegador predeterminado
Ver suites (casos de prueba de nivel de función)
Del paquete nombre-módulo nombre-prueba caso
Ver suites (casos de prueba a nivel de clase)
Del paquete nombre-módulo nombre-clase nombre-caso de prueba
Ver detalles del caso de prueba
- parámetros : si usa @ pytest.mark.parametrize , puede ver qué parámetros y valores correspondientes se pasan en los parámetros de la derecha
- configurar : llamar a la operación previa del dispositivo
- derribar : llamar a la operación posterior a la fijación
Estructura de informe de Allure