Serie Pytest (20) -Allure combinado con pytest, uso detallado de allure.step (), allure.attach

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)

 

Supongo que te gusta

Origin www.cnblogs.com/poloyy/p/12716659.html
Recomendado
Clasificación