Si quieres aprender Pytest desde cero, ¡puedes consultar esta serie de artículos!
https://www.cnblogs.com/poloyy/category/1690628.html
Prólogo
Además de admitir las características de pytest (fixture, parametrize, xfail, skip), allure en sí también tiene potentes funciones que se pueden usar en pytest
@ allure.step
- El punto más importante del informe de fascinación es que permite pasos muy detallados para cada caso de prueba.
- El decorador @ allure.step () permite que los casos de prueba muestren un proceso de prueba más detallado en el informe de encanto
Código de muestra
# ! / usr / bin / env python # - * - codificación: utf-8 - * - "" " __title__ = __Time__ = 2020-04-08 21:24 __Author__ = pequeñas notas de prueba de piña __Blog__ = https: // www. cnblogs.com/poloyy/ "" " import allure @ allure.step ( " primer paso " ) def Pass_step (): pass @ allure.step ( " segundo paso " ) def step_with_nested_steps (): nested_step () @allure. step ( " tercer paso " ) def nested_step (): nested_step_with_arguments ( 1,'abc ' ) @ allure.step ( " 第四 步 {0} , {arg2} " ) def nested_step_with_arguments (arg1, arg2): pass @ allure.step ( " 第五 步" ) def test_with_nested_steps (): Pass_step () step_with_nested_steps ()
Visualización de casos de prueba en allure
Punto de conocimiento
- step () tiene solo un parámetro, que es el título, lo que pasa, lo que se muestra en allure
- Puede ser como una cadena de Python, admite parámetros posicionales y parámetros de palabras clave {0}, {arg2}, puede ver el cuarto paso, si los parámetros de la función no coinciden, obtendrá un error
- El escenario de uso del paso () me da la sensación de que será más útil al anidar entre métodos, de lo contrario solo se mostrará un paso, similar a la figura a continuación
allure.attach (muy útil)
Función: el informe Allure también admite la visualización de muchos tipos diferentes de archivos adjuntos, que pueden complementar los resultados de la prueba; generar lo que desee, muy bueno
: : Allure.attach (cuerpo, nombre, tipo de archivo adjunto, extensión)
Lista de parámetros
- cuerpo : el contenido que se mostrará (archivo adjunto)
- nombre : nombre del archivo adjunto
- attachment_type : tipo de adjunto, es allure.attachment_type una dentro de
- extensión : la extensión del archivo adjunto (menos utilizado)
¿Qué tipos de archivos adjuntos proporciona allure.attachment_type?
Sintaxis 2: allure.attach.file (fuente, nombre, tipo de archivo adjunto, extensión)
fuente: ruta del archivo, equivalente a transferir un archivo
Otros parámetros son los mismos que los anteriores.
Código para uno de los casos de prueba
# ! / usr / bin / env python # - * - codificación: utf-8 - * - "" " __title__ = __Time__ = 2020-04-08 21:24 __Author__ = pequeñas notas de prueba de piña __Blog__ = https: // www. cnblogs.com/poloyy/ "" " import allure import pytest @ pytest.fixture def attach_file_in_module_scope_fixture_with_finalizer (request): allure.attach ( ' Agregar un archivo adjunto en el dispositivo pre-operación txt ' , ' accesorio accesorio frontal ' , allure.attachment_type .TEXT) def finalizer_module_scope_fixture (): allure.attach ( 'Txt añadir una operación de fijación en el que el accesorio trasero ', ' Accesorio后置附件' , allure.attachment_type.TEXT) request.addfinalizer (finalizer_module_scope_fixture) def test_with_attacments_in_fixture_and_finalizer (attach_file_in_module_scope_fixture_with_finalizer): pasar def test_multiple_attachments (): allure.attach ( ' <head> </ head> <body>一个HTML页面</body> ' , ' Adjuntar con tipo HTML ' , allure.attachment_type.HTML) allure.attach.file ( ' ./reports.html ' , attach_type = allure.attachment_type.HTML)
Ver el resultado después de correr
Este es un archivo adjunto txt
Este es un allure.attach () para insertar un fragmento de HTML y allure.attach.file () para importar un archivo HTML existente (informe pytest-html)