Files
apiautotest/utils/case_generate_utils/case_template.txt

47 lines
1.8 KiB
Plaintext

# -*- coding: utf-8 -*-
# @Time : ${now}
# 标准库导入
# 第三方库导入
import pytest
import allure
# 本地应用/模块导入
from config.global_vars import GLOBAL_VARS
from utils.requests_utils.request_control import RequestPreDataHandle, RequestHandle, after_request_extract
from utils.assertion_utils.assert_control import AssertHandle
from utils.requests_utils.case_dependence import case_dependence_handle
# 公共依赖
# 用例数据
cases = ${case_data}
@allure.epic("${allure_epic}")
@allure.feature("${allure_feature}")
class ${class_title}Auto:
@allure.story("${allure_story}")
@pytest.mark.auto
@pytest.mark.parametrize("case", cases, ids=["{}".format(case["title"]) for case in cases])
def ${func_title}_auto(self, case):
# 前置依赖处理
if case.get("case_dependence"):
case_dependence_handle(case_dependence=case["case_dependence"].get("setup", None), source=GLOBAL_VARS)
# 处理请求前的用例数据
case_data = RequestPreDataHandle(request_data=case, global_var=GLOBAL_VARS).request_data_handle()
# 发送请求
response = RequestHandle(case_data=case_data, global_var=GLOBAL_VARS).http_request()
# 进行响应断言
AssertHandle(assert_data=case_data["assert_response"], response=response).assert_handle()
# 进行数据库断言
AssertHandle(assert_data=case_data["assert_sql"], db_info=GLOBAL_VARS["db_info"]).assert_handle()
# 断言成功后进行参数提取
res = after_request_extract(response, case_data.get("extract", None))
for k, v in res.items():
GLOBAL_VARS[k] = v
# 后置依赖处理
if case.get("case_dependence"):
case_dependence_handle(case_dependence=case["case_dependence"].get("teardown", None), source=GLOBAL_VARS)