log:

pytest的一些依赖库及插件相关知识点自行百度

报告效果图

目的

报告可读性强,用例场景层级清晰,接口报错可以快递定位

报告内容包括:用例级下多场景展示,每条用例请求的必备参数及相关结果附件展示

实现代码

# -*- coding:utf-8 -*-
# @FileName:tenant.py
# @Author  :YYQ
# @Desc    :在一台超级计算机上运行过的牛逼Python代码
import pytest
from common.log import logging
import allure
from common.read_config import rc
from common.allure_config import result
from common.http_request import http_request

test_datas = [({"tenant": "qiushi6", "platCode": "YOUZAN", "shopId": "91554527"}, "200", "场景一、请求参数正确,返回正常"),
              ({"platCode": "YOUZAN1", "shopId": "91554527"}, "200", "场景二、请求参数异常,程序处理返回正常"),
              ({"tenant": "qiushi6"}, "200", "场景三、请求参数只有租户,返回正常")]

# 用例标题栏
@allure.feature("查询卡接口")
class Test_Web():
    # 前置后置管理
    @pytest.fixture()
    def card_search(self):
        logging.info("开始执行【查询卡用例】用例")
        yield
        logging.info("用例执行结束")

    
    @pytest.mark.test   # 接口标记
    @pytest.mark.flaky(reruns=3, reruns_delay=1)  #失败重试
    @pytest.mark.parametrize("param,expected,title", test_datas)  #数据参数化
    def test_search_card02(self, card_search, param, expected, title):
        """下面这些都是单独封装的一些公共处理逻辑,http请求、附件保存、结果断言"""
        _M, _U, _T = rc.interface(service="INTERFACE_SERVICE", paths="card_search")
        _R, _C, _T = http_request(method=_M, url=_U, param=param, headers=_T)
        result(_R,'实际结果', 'json', _C, expected, title, _U, _M, param)


if __name__ == '__main__':
    pytest.main(['-s', '--alluredir=result/report','--clean-alluredir'])
# pytest -s --alluredir=result/report --clean-alluredir   执行前每次清空上次数据
# allure generate result/report  用例结果回填到报告里面

Logo

一站式 AI 云服务平台

更多推荐