pytest 现学现用(二)

准备工作完成后,就是用例的规划了。我准备按照这个思路来:

  1. 先梳理出基础的业务流程,找到相关接口,先写这些接口的用例,写完再根据业务流程做接口组合测试。
    接口主要分为两类:WEB页面调用后端的接口,提供给第三方的业务接口。
    提供给第三方的业务接口,之前已经用RF写过了,并且集成到了jenkins。
    这次主要就是处理WEB页面调用后端的接口,从鉴权的角度,这类接口分成2小类,需要鉴权or NOT。
    因为只有我一个人,所以肯定是优先冒烟测试先完成。
    整体的鉴权相关设计思路:
  2. 登录接口不要鉴权,该接口返回的token是除去它以外全部接口所必须的。所以用户就弄两个,一个用来测试登录,一个作为预置的测试账户,作为全局token获取用户。
  3. 获取token放在tests目录下的conftest.py中,结果存到redis中失效时间用token的有效期。存之前先看能不能取出来,能取到就跳过登录获取token,直接返回取到的token。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author  : 小橙子的爸比 (279453094@qq.com)
# @Version        : 1.0
# @Update Time    : 2025/1/4 下午7:44
# @File           : conftest.py
# @IDE            : PyCharm
# @Desc           : 文件描述信息
import json
import httpx
from jsonpath import jsonpath
from db.database_factory import DatabaseFactory
from utils.nb_logger import httpx_log
from utils.nb_logger import pytest_log
import pytest
from config.env_config import EnvInfo, ApiUri


def pytest_runtest_makereport(item, call):
    """钩子函数收集失败的断言信息存入日志文件"""
    if call.excinfo is not None:
        msg = {
   
            "module": item.location[0],
            "function": item.name,
            "line": item.location[1],
            "message": str(call.excinfo.value).replace("\n", ":")
        }
        pytest_log.error(json.dumps(msg, indent=4, ensure_ascii=False))


headers = EnvInfo().stitching_headers()


@pytest.fixture(scope="session", autouse
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值