代码拉取完成,页面将自动刷新
同步操作将从 7y/apiAutoTest 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
import pytest
from core import DataBaseMysql
from core import DataProcess
from core import ReadFileClass
from core import ReportStyle
from core import HttpRequest
rfc = ReadFileClass("config.yaml")
http_client = HttpRequest()
data_process = DataProcess(rfc)
@pytest.fixture(scope="session")
def data_clearing():
"""数据清理"""
from core import DataClear
with DataClear(rfc) as dc:
dc.backup()
yield
dc.recovery()
@pytest.fixture(scope="session")
def get_db():
"""数据库对象"""
with DataBaseMysql(rfc) as db:
yield db
@pytest.fixture(params=rfc.get_case())
def case(request):
"""用例数据,测试方法参数入参该方法名 cases即可,实现同样的参数化
目前来看相较于@pytest.mark.parametrize 更简洁。
"""
return request.param
@pytest.fixture(scope="session")
def clear_db(data_clearing):
"""同时使用数据清洗 和 数据库操作功能"""
with DataBaseMysql(rfc) as db:
yield db
# def test_start(case, get_db): # 只使用数据库操作
# def test_start(case, clear_db): # 使用数据库操作 及 数据清洗
def test_start(case): # 不使用数据库操作
"""
测试启动方法, 当需要使用 数据清洗和 数据库操作命令时将 get_db 换成 clear_db
如只需要使用 数据库操作 则添加get_db 参数, 如一个都不需要则不添加
:param case: 用例
:return:
"""
# 前置处理
title, skip, header, path, method, data_type, file, data, extra, sql, expect = case
ReportStyle.title(title)
data_process.handle_case(path, header, skip, data, file)
# 发送请求
http_client.send_request(
data_type,
method,
data_process.path,
data_process.headers,
data_process.body,
data_process.files,
)
# 后置处理
DataProcess.handle_extra(extra, http_client.response.json())
data_process.sql = sql
# data_process.handle_sql(get_db) # 使用数据库
# data_process.handle_sql(clear_db) # 使用数据清洗及 数据库
# 断言
DataProcess.assert_result(http_client.response.json(), expect)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。