1、新增"conftest.py"
import pytest
import logging
from 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_DATA
data = {"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 = yield
res = 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、获取日志