Files
apiautotest/test_case/test_manual_case/test_demo.py
T

43 lines
1.6 KiB
Python

# -*- coding: utf-8 -*-
# @Version: Python 3.9
# @Time : 2023/1/9 16:41
# @Author : chenyinhua
# @File : test_login_demo.py
# @Software: PyCharm
# @Desc: python脚本编写的测试用例文件
import pytest
from loguru import logger
from pytest_html import extras # 往pytest-html报告中填写额外的内容
from common_utils.func_handle import add_docstring
import allure
from case_utils.allure_handle import allure_title, allure_step
# 读取用例数据
cases = [{"title": "demo case 01", "user": "flora1", "age": 17, "run": False},
{"title": "demo case 02", "user": "lucy", "age": 17, "run": False}]
@allure.story("demo模块")
@pytest.mark.test_login_demo
@pytest.mark.parametrize("case", cases)
def test_demo(case, extra):
logger.info("-----------------------------START-开始执行用例-----------------------------")
logger.debug(f"当前执行的用例数据:{case}")
# 给当前测试方法添加文档注释
add_docstring(case.get("title", ""))(test_demo)
# 添加用例标题作为allure中显示的用例标题
allure_title(case.get("title", ""))
if case.get("run", None):
# 将用例数据显示在pytest-html报告中
extra.append(extras.json(case, name="用例数据"))
# 在allure报告中显示请求的用例数据
allure_step(step_title="用例数据", content=f"{case}")
assert case["user"] == "flora"
else:
reason = f"标记了该用例为false,不执行\\n"
logger.warning(f"{reason}")
pytest.skip(reason)
logger.info("-----------------------------END-用例执行结束-----------------------------")