将测试用例中的测试类移除(如class TestDemoAuto),直接使用测试方法(如def test_demo_auto)
This commit is contained in:
@@ -200,15 +200,19 @@ def gen_case_file(filename, case_template_path, case_common, common_dependence,
|
||||
marker = is_valid_marker(case_marker)
|
||||
if marker and isinstance(marker, str):
|
||||
# !! 注意这里的4个空格,必须要有4个空格!!
|
||||
current_case_template.append(f" @pytest.mark.{marker}\n")
|
||||
# current_case_template.append(f" @pytest.mark.{marker}\n")
|
||||
# 由于在测试用例中移除了测试类,直接使用测试方法,因此此处不需要空格了,可以直接顶格写
|
||||
current_case_template.append(f"@pytest.mark.{marker}\n")
|
||||
if marker and isinstance(marker, dict):
|
||||
for k, v in marker.items():
|
||||
# !! 注意这里的4个空格,必须要有4个空格!!
|
||||
current_case_template.append(f" @pytest.mark.{k}('{v}')\n")
|
||||
# current_case_template.append(f" @pytest.mark.{k}('{v}')\n")
|
||||
# 由于在测试用例中移除了测试类,直接使用测试方法,因此此处不需要空格了,可以直接顶格写
|
||||
current_case_template.append(f"@pytest.mark.{k}('{v}')\n")
|
||||
# 将用例数据的名称作为测试用例文件名称, 如test_login_demo
|
||||
func_name = filename
|
||||
# 方法名test_demo的类名是TestDemo
|
||||
class_name = "".join([word.capitalize() for word in func_name.split("_")])
|
||||
# 方法名test_demo的类名是TestDemo(在测试用例中移除了测试类,直接使用测试方法,所以下行代码注释)
|
||||
# class_name = "".join([word.capitalize() for word in func_name.split("_")])
|
||||
|
||||
if common_dependence:
|
||||
# 如果存在公共依赖,则对公共依赖进行处理: 识别到模板中的关键字“公共依赖”,往下一行插入pytest的fixture,作用域级别是class
|
||||
@@ -240,7 +244,8 @@ def gen_case_file(filename, case_template_path, case_common, common_dependence,
|
||||
"common_dependence": common_dependence,
|
||||
"case_data": case_data,
|
||||
"func_title": func_name,
|
||||
"class_title": class_name,
|
||||
# 在测试用例中移除了测试类,直接使用测试方法
|
||||
# "class_title": class_name,
|
||||
"now": datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||||
}
|
||||
)
|
||||
@@ -258,7 +263,8 @@ def gen_case_file(filename, case_template_path, case_common, common_dependence,
|
||||
"case_markers": case_markers,
|
||||
"case_data": case_data,
|
||||
"func_title": func_name,
|
||||
"class_title": class_name,
|
||||
# 在测试用例中移除了测试类,直接使用测试方法
|
||||
# "class_title": class_name,
|
||||
"now": datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# @Time : ${now}
|
||||
# @Time : ${DATE} ${TIME}
|
||||
# @Author : floraachy
|
||||
# @File : ${NAME}.py
|
||||
# @Software: ${PRODUCT_NAME}
|
||||
# @Desc:
|
||||
|
||||
# 标准库导入
|
||||
# 第三方库导入
|
||||
@@ -19,29 +23,27 @@ 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=lambda x: x["title"])
|
||||
def ${func_title}_auto(self, case):
|
||||
# 前置依赖处理
|
||||
if case.get("case_dependence") and case["case_dependence"].get("setup"):
|
||||
dependence_results = dependence_handler.case_dependence_handle(
|
||||
case_dependence=case["case_dependence"]["setup"],
|
||||
db_info=GLOBAL_VARS["db_info"])
|
||||
GLOBAL_VARS.update(dependence_results if dependence_results else {})
|
||||
# 处理请求前的用例数据 -> 发送请求 -> 响应/数据库断言 -> 断言成功后进行参数提取
|
||||
if GLOBAL_VARS.get("db_info"):
|
||||
res = RequestControl().api_request_flow(request_data=case, global_var=GLOBAL_VARS, db_info=GLOBAL_VARS["db_info"])
|
||||
else:
|
||||
res = RequestControl().api_request_flow(request_data=case, global_var=GLOBAL_VARS)
|
||||
GLOBAL_VARS.update(res)
|
||||
# 后置依赖处理
|
||||
if case.get("case_dependence") and case["case_dependence"].get("teardown"):
|
||||
dependence_results = dependence_handler.case_dependence_handle(
|
||||
case_dependence=case["case_dependence"]["teardown"],
|
||||
db_info=GLOBAL_VARS["db_info"])
|
||||
GLOBAL_VARS.update(dependence_results if dependence_results else {})
|
||||
@allure.story("${allure_story}")
|
||||
@pytest.mark.auto
|
||||
@pytest.mark.parametrize("case", cases, ids=lambda x: x["title"])
|
||||
def ${func_title}_auto(case):
|
||||
# 前置依赖处理
|
||||
if case.get("case_dependence") and case["case_dependence"].get("setup"):
|
||||
dependence_results = dependence_handler.case_dependence_handle(
|
||||
case_dependence=case["case_dependence"]["setup"],
|
||||
db_info=GLOBAL_VARS["db_info"])
|
||||
GLOBAL_VARS.update(dependence_results if dependence_results else {})
|
||||
# 处理请求前的用例数据 -> 发送请求 -> 响应/数据库断言 -> 断言成功后进行参数提取
|
||||
if GLOBAL_VARS.get("db_info"):
|
||||
res = RequestControl().api_request_flow(request_data=case, global_var=GLOBAL_VARS, db_info=GLOBAL_VARS["db_info"])
|
||||
else:
|
||||
res = RequestControl().api_request_flow(request_data=case, global_var=GLOBAL_VARS)
|
||||
GLOBAL_VARS.update(res)
|
||||
# 后置依赖处理
|
||||
if case.get("case_dependence") and case["case_dependence"].get("teardown"):
|
||||
dependence_results = dependence_handler.case_dependence_handle(
|
||||
case_dependence=case["case_dependence"]["teardown"],
|
||||
db_info=GLOBAL_VARS["db_info"])
|
||||
GLOBAL_VARS.update(dependence_results if dependence_results else {})
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user