1. Preparación ambiental
1. Descarga la dirección de encanto:
Método 1: dirección de descarga de git https://github.com/allure-framework/allure2/releases
Encuentra la versión que quieres descargar
Método 2: Dirección de descarga: Repositorio central: io/qameta/allure/allure-commandline/2.17.3 https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/2.17.3/
Elige una versión:
2. Configure las variables de entorno de Allure
Descomprima el archivo allure descargado y busque la ruta del directorio del archivo bin
Mac:
Ponga la ruta en .bash_profile, de la siguiente manera:
PATH="/Users/XXX/allure-2.17.3/bin:${PATH}"
export PATH
o:
export /Users/XXX/allure-2.17.3/bin
Entonces:
source ~/.bash_profile
Windows: solo configúralo en la variable de entorno
Luego reinicie pycharm
3. Allure necesita compatibilidad con jdk para ejecutarse, así que recuerda instalar jdk
Descargar e instalar en línea
4. Instale el complemento allure-pytest
Se puede instalar a través de pycharm
También se puede instalar con pip install allure-pytest
dos,
Use el complemento allure-pytest para generar un archivo de informe de prueba en formato html
1. pytest --alluredir=informe (carpeta) xxx.py
El resultado de la ejecución se imprime en el terminal y, al mismo tiempo, se genera una carpeta de informes que contiene los resultados de la prueba en formato json.
Si se sigue generando, siempre se superpondrá -----> primero borre el directorio y luego genere los resultados de la prueba:
pytest --alluredir=informe --clean-alluredir xxx.py
2. Genere un informe de prueba en formato HTML:
①allure generar informe (carpeta) -----> almacenado en la carpeta allure-report por defecto
②allure generar informe -o test_report----->Especificar para almacenar en la carpeta test_report
Si la carpeta test_report ya existe:
encanto generar -c informe -o test_report
3. Cómo ejecutar a través del código, cómo refinar el informe de prueba a través de decoradores
1 caso
import pytest
import allure
# 设置一条测试用例的每个步骤(方法1)
@allure.step("测试第一步")
def step_1():
pass
@allure.step("测试第二步")
def step_2():
pass
# 按照模块子模块或功能点子功能点, 对测试用例进行分组
@allure.epic('后台管理模块')
@allure.feature('登录功能点')
@allure.story('正常登录')
def test_a():
# 设置一条测试用例的每个步骤(方法2)
with allure.step("测试第一步"):
pass
with allure.step("测试第二步"):
assert 1 == 2
with allure.step("测试第三步"):
pass
@allure.epic('后台管理模块')
@allure.feature('登录功能点')
@allure.story('用户名错误登录')
@allure.issue('http://127.0.0.1:80/zantaopms/')
@allure.testcase('http://www.baidu.com/')
# 设置测试用例的标签, 可以设置多个
@allure.tag("回归测试", "重要")
# 设置测试用例的级别 blocker > critical > normal > minor > trivial
@allure.title('测试登录:用户名错误')
@allure.description('测试登录:测试用例描述信息')
@allure.severity("blocker")
def test_b1():
step_1()
step_2()
@allure.epic('后台管理模块')
@allure.feature('商品管理')
def test_c():
assert 1 == 1
def test_d():
assert 1 == 2
def test_e():
assert 1 == 2
2. Crear una entrada de marco
import pytest
import os
if __name__ == '__main__':
result_dir = "./test_result"
report_dir = "./test_report"
# pytest.main() 相当于执行pytest命令
pytest.main(["-sv", "--alluredir=%s"%result_dir, "--clean-alluredir", "test_allure_markers.py"])
ret = os.system("allure generate --clean %s -o %s" % (result_dir, report_dir))
if ret:
print('生成测试报告失败')
else:
print('生成测试报告成功')
4. Visualización de resultados
5. Algunas funciones de allure
Marcar puntos de prueba: @allure.feature se puede usar para personalizar el título de la clase de prueba, como: iniciar sesión
Marcar caso de prueba: @allure.story se puede usar para personalizar el título del método de función, como: inicio de sesión exitoso
Casos de prueba: parametrizados/controlados por datos: @pytest.mark.parametrise
Paso de prueba: @allure.step
@pytest.allure.step: se puede usar para definir el nombre del paso de llamada para el método de función. llamada po - descripción del paso. (Recomendación: diseño jerárquico po, método de función de llamada y decorador de uso para especificar el nombre del paso)
with allure.step: registre el paso en la ubicación especificada, y el bloque de instrucciones contenido en with es la operación que debe realizar el paso.
allure.attach: agregue un archivo adjunto a la anotación, como una captura de pantalla. allure.adjuntar(nombre, cuerpo, tipo)
@allure.issue("url"): Errores asociados, como: Zen Road xxbug
@allure.testcase("url"): caso asociado, como: Zen Road xxcase