1. Generar informe HTML
Hay muchos complementos para que pytest genere HTML, como pytest-html, pytest-testreport, etc. A continuación se presentará cómo utilizar el complemento pytest-testreport para generar informes de prueba HTML.
1.1 Instalar el complemento
pip install pytest-testreport
Nota: Si ha instalado el complemento pytest-html, desinstálelo primero; de lo contrario, puede haber conflictos.
1.2 Introducción al uso de complementos
Cuando use pytest para ejecutar una prueba, si desea usar pytest-testreport para generar un informe de prueba, puede agregar el parámetro --report para especificar el nombre del archivo del informe al ejecutar la prueba, y podrá lograrlo.
Otros parámetros de funcionamiento:
--title : especifica el título del informe
--tester: especifica el probador en el informe
--desc: especifica la descripción del elemento en el informe.
--template: especifica el estilo de la plantilla del informe (1 o 2)
-
Ejecución de línea de comando:
pytest --report=musen.html --title=测试报告 --tester=木森 --desc=项目描述 --template=2
Si desea aprender sobre pruebas automatizadas, aquí le recomiendo un conjunto de videos. Se puede decir que este video es el primer tutorial de prueba de automatización de interfaz en toda la red en la estación B. Al mismo tiempo, la cantidad de usuarios en línea ha aumentado. Llegó a 1000 y hay notas para cobrar y varios Intercambio técnico de Lu Dashen: 798478386
-
El código se ejecuta usando pytest.main
import pytest
pytest.main(['--report=musen.html',
'--title=柠檬班上课报告',
'--tester=测试员',
'--desc=报告描述信息',
'--template=2'])
-
El estilo del informe generado es el siguiente
estilo uno
estilo dos
Aquí se presentará la generación de informes en formato HTML y luego le diré cómo integrar el informe Allure.
2. Integrar el informe Allure
Si desea integrar informes de Allure en pytest, primero debe descargar Allure y configurar el entorno.
2.1, configuración del entorno atractivo
1. Descargar atractivo:
地址:https://github.com/allure-framework/allure2/releases
Después de descargar y descomprimir
2. Configuración de variables de entorno
Coloque la ruta del directorio bin de la ruta del atractivo después de la descompresión del atractivo en la variable de entorno
3. Instale el complemento pytest de Allure
pip install allure-pytest
2.2 Generar informe de atracción
Después de instalar y configurar el entorno de Allure, cuando use pytest para ejecutar el caso de prueba, puede especificar generar Allure para informar a través de los parámetros del complemento Allure.
Parámetros de operación:
--alluredir: especifica la ruta donde se guardan los informes de atracción
-
ejecución de línea de comando
pytest --alluredir=reports
-
El código se ejecuta usando pytest.main
import pytest
pytest.main(['--alluredir=reports'])
2.3 Iniciar servicio de atracción
Ingrese el siguiente comando en la terminal de comandos para iniciar el servicio de atracción
# 命令:allure serve 生成的报告路径
allure serve reports
Ejecute el comando anterior, después de que se inicie el servicio Allure, se abrirá automáticamente el navegador y mostrará la página del servicio Allure.
2.4, métodos incorporados de uso común
Agregar captura de pantalla de error
-
encanto.adjuntar
def error_save_screenshot(driver,file_path, desc):
# 对当前页web页面进行截图
driver.save_screenshot(file_path)
# 将截图保存到allure报告中
with open(file_path, "rb") as f:
file = f.read()
allure.attach(file, "失败截图", allure.attachment_type.PNG)
Agregue el nombre del caso de uso en el informe.
-
encanto.título
import allure
class TestLogin:
@allure.title('登录用例')
def test_login(self):
pass
Establecer dinámicamente el nombre del caso de uso en el caso de uso parametrizado
-
encanto.dinamico.titulo
# 用例数据
casedatas = [
{'title': '反向用例1','data':"xxx"},
{'title': '反向用例2','data':"xxx"},
{'title': '反向用例3','data':"xxx"}
]
class TestLogin:
@pytest.mark.parametrize('item',casedatas )
def test_demo(self, item):
# 动态设置报告中的用例名称
allure.dynamic.title(item['title'])
Agregar descripción de característica en el informe
-
encanto.historia
@allure.story('登录功能')
class TestLogin:
@allure.title('登录用例')
def test_login(self):
pass
Agregue el nombre del paquete en el informe.
-
encanto.suite
@allure.suite('登录测试套件')
class TestLogin:
@allure.title('登录用例')
def test_login(self):
pass