1、新增"conftest.py"
import pytest
import loggingfrom api_keyword.api_key import ApiKey
from config import *# 获取token
# 1. 正常的请求对应的接口并且提取数据
# 2. @pytest.fixture()测试夹具(测试前置、后置操作)@pytest.fixture(scope="session")
def token_fix():print("开始运行:token_fix")# 1.实例化对象ak = ApiKey()# 2.通过对应的类调用对应的方法 --四要素url = PROJEC_URL + "?s=/api/user/login"public_data = PUBIC_DATAdata = {"accounts": USERNAME, "pwd": PASSWORD, "type": LOGINTYPE}# 发送请求res = ak.post(url=url, params=public_data, data=data)# 4.提取数据token = ak.get_text(res.json(), "$..token")# 返回数据return ak,token# 当执行一个case的时候会自动调用这个方法:把对应的数据传过来给到call
@pytest.hookimpl(hookwrapper=True, tryfirst=True)
def pytest_runtest_makereport(item, call):# 通过out = yield 定义一个生成器,在生成器中,res = out.get_result() 获取了测试结果对象out = yieldres = out.get_result()# res.when == "call": 表示正在运行调用测试函数的阶段if res.when == "call":logging.info(f"用例ID:{res.nodeid}")logging.info(f"测试结果:{res.outcome}")logging.info(f"故障表示:{res.longrepr}")logging.info(f"异常:{call.excinfo}")logging.info(f"用例耗时:{res.duration}")logging.info("**********************")
2、获取token
3、获取日志