Python+Pytest框架,“conftest.py文件编写如何获取token和获取日志“?

发布于:2024-09-18 ⋅ 阅读:(121) ⋅ 点赞:(0)

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、获取日志


网站公告

今日签到

点亮在社区的每一天
去签到