Tabla de contenidos: Introducción
-
- Prefacio
- 1. Programación en Python desde el nivel básico hasta el dominio
- 2. Implementación práctica de proyectos de automatización de interfaces.
- 3. Combate real del proyecto de automatización web.
- 4. Implementación práctica del proyecto de automatización de aplicaciones.
- 5. Currículums de los fabricantes de primer nivel.
- 6. Probar y desarrollar el sistema DevOps
- 7. Herramientas de prueba automatizadas de uso común
- 8. Prueba de rendimiento de JMeter
- 9. Resumen (pequeña sorpresa al final)
Prefacio
Allure puede generar informes de prueba muy hermosos y también se puede combinar perfectamente con pytest, no solo puede representar páginas, sino también controlar la ejecución de casos de uso. La siguiente es una introducción detallada y un resumen del uso de Allure.
Entorno que necesita estar preparado:
python;
pytest;
allure-pytest;
herramienta allure;
1. descripción del caso de uso atractivo
Instrucciones | Valor del parámetro | Descripción de parámetros |
---|---|---|
@alure.epic() | descripción épica | Conceptos ágiles, describiendo y clasificando casos de uso o conjuntos de casos de uso. |
@allure.feature() | Nombre del módulo | Similar a Epic, pero de menor nivel que Epic. |
@allure.historia() | historias de usuarios | Similar a Epic, pero inferior al nivel de función. |
@allure.title (título del caso de uso) | Título del caso de uso | Cambiar el nombre del caso de uso del informe html |
@allure.testcase() | Dirección de enlace del caso de prueba | Similar al enlace |
@ encanto.edición() | defecto | Similar al enlace |
@allure.descripción() | Descripción del caso de uso | Descripción de casos de prueba. |
@encanto.paso() | Pasos | Pasos para realizar casos de prueba |
@allure.severidad() | nivel de caso de uso | bloqueador, crítico, normal, menor, trivial |
@encanto.enlace() | Enlace | Defina un enlace para mostrar en el informe de prueba (recomendado) |
@allure.archivo adjunto() | apéndice | Agregar archivos adjuntos al informe |
2. demostración práctica atractiva
# -*- coding:utf-8 -*-
import pytest
import allure
from base.log import Logger
logger = Logger(logger_name='allure', level='error').get_logger()
@pytest.fixture(scope="session") # 用例前置操作
def login_fixture():
# 比如登录获取token操作
return "token:xx"
@allure.step("用例步骤1")
def step_1():
logger.info("用例操作---------------步骤1")
return True
@allure.step("用例步骤2")
def step_2():
logger.info("用例操作---------------步骤2")
return False
@allure.step("用例步骤3")
def step_3():
logger.info("用例操作---------------步骤3")
return True
@allure.epic("可以对用例或用例集进行描述分类(若出现多个时,内容一致则自动归为一类)")
@allure.feature("对用例集或用例进行描述分类---与epic类似,只是比epic级别低")
@allure.story("对用例集或用例进行描述分类---与epic类似,只是比feature级别低")
class TestAllureDemo:
@allure.testcase("https://xxx/testcase/list",
name='用例链接testcase') # 为了更好的链接到问题分类或者bug、测试用例地址中(url、name两个参数,可不填写name;可以用@allure.link)
@allure.link("https://xxx/testcase/list", name='用例链接link') # 与testcase没有多大区别,从可读性角度还是建议选择@allure.link
@allure.issue("https://xxx/testcase/list", name='用例链接issue') # 与testcase区别在于有小虫子图标
@allure.title("用例的标题") # 可参数化标题
@allure.story("用例分类:1") # 可参数化标题
@allure.severity("critical") # 用例等级(blocker critical normal minor trivial)
def test_case_1(self, login_fixture):
"""
1.用例描述
2.用例步骤
3.预期结果
"""
logger.info(login_fixture) # 获取用例前置的信息,比如登录token
assert step_1()
assert step_2()
@allure.story("用例分类:2")
def test_case_2(self, login_fixture):
logger.info("测试用例2")
assert step_1()
assert step_3()
@allure.epic("冒烟自动化用例")
class TestDemo2:
@allure.story("用例分类:3")
def test_case_3(self, login_fixture):
logger.info("测试用例3")
step_1()
@allure.story("用例分类:4")
def test_case_4(self, login_fixture):
logger.info("测试用例4")
step_3()
3. Parámetros de la línea de comando de Allure
Cuando pytest ejecuta casos de uso, puede agregar el parámetro mark all para controlar qué casos de uso se ejecutan.
--allure-severities=SEVERITIES_SET
Comma-separated list of severity names. Tests only
with these severities will be run. Possible values
are: blocker, critical, normal, minor, trivial.
--allure-epics=EPICS_SET
Comma-separated list of epic names. Run tests that
have at least one of the specified feature labels.
--allure-features=FEATURES_SET
Comma-separated list of feature names. Run tests that
have at least one of the specified feature labels.
--allure-stories=STORIES_SET
Comma-separated list of story names. Run tests that
have at least one of the specified story labels.
--allure-link-pattern=LINK_TYPE:LINK_PATTERN
Url pattern for link type. Allows short links in test,
like 'issue-1'. Text will be formatted to full url
with python str.format().
Los ejemplos son los siguientes:
# 选择运行你要执行epic的用例
pytest --alluredir ./report/allure --allure-epics=epic对大Story的一个描述性标签
# 选择运行你要执行features的用例
pytest --alluredir ./report/allure --allure-features=模块2
# 选择运行你要执行features的用例
pytest --alluredir ./report/allure --allure-stories="用户故事:1"
4. Ejecute el script-allure para generar el informe e iniciar el informe.
Modo de ejecución uno:
ejecute pytest en modo de línea de comando para generar archivos de resultados de prueba
pytest demo.py --alluredir ./report/allure
El programa allure inicia el archivo que se ha producido.
allure serve ./report/allure
Método de ejecución dos:
escribir el método de inicio y ejecutar pytest
pytest.main([allure_demo.py, "--alluredir", "report/result"])
Utilice el proceso para iniciar el servicio de atracción.
import subprocess
subprocess.call('allure generate report/result/ -o report/html --clean', shell=True)
subprocess.call('allure open -h 127.0.0.1 -p 9999 ./report/html', shell=True)
(Ambos métodos requieren que se instale la herramienta Allure)
5. Representaciones de informes y anotaciones.
El siguiente es el diagrama del sistema de arquitectura de conocimiento de aprendizaje de ingenieros de pruebas de software más completo que compilé en 2023. |
1. Programación en Python desde el nivel básico hasta el dominio
2. Implementación práctica de proyectos de automatización de interfaces.
3. Combate real del proyecto de automatización web.
4. Implementación práctica del proyecto de automatización de aplicaciones.
5. Currículums de los fabricantes de primer nivel.
6. Probar y desarrollar el sistema DevOps
7. Herramientas de prueba automatizadas de uso común
8. Prueba de rendimiento de JMeter
9. Resumen (pequeña sorpresa al final)
En el escenario donde brilla el sol, la lucha es el brillo del florecimiento; en el viaje del viento y la lluvia, el trabajo duro alcanza la gloria sin remordimientos. ¡Persevera, avanza con valentía, riega las flores de tus ideales con tu sudor y deja que tu arduo trabajo y perseverancia creen una deslumbrante obra maestra de la vida!
La victoria es de quienes no temen las dificultades y se atreven a luchar, sólo avanzando podremos superarnos y perseguir nuestros sueños. Persevera y nunca te rindas, y nunca dejes de luchar. ¡Solo así podrás escribir tu propio capítulo glorioso y lograr posibilidades ilimitadas!
La lucha es la pasión de la vida y el trabajo duro es el escenario para realizar los sueños. No importa cuán accidentado sea el camino que tenemos por delante, la búsqueda persistente y la perseverancia inquebrantable abrirán el camino hacia el éxito. ¡Quema la fe en tu corazón, suda mucho, logra tu propia gloria y crea una vida extraordinaria!