From 685e8b8ce2e21e0732fb77ba718648458a2f9e31 Mon Sep 17 00:00:00 2001 From: floraachy <1622042529@qq.com> Date: Thu, 25 Dec 2025 15:48:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../case_generate_utils/case_data_analysis.py | 2 +- .../case_generate_utils/case_fun_generate.py | 2 +- .../case_generate_utils/conftest_template.txt | 2 +- custom_utils/data_utils/data_tools.py | 13 ------------- custom_utils/models.py | 2 +- custom_utils/requests_utils/case_dependence.py | 16 +++++++++------- custom_utils/requests_utils/request_control.py | 1 + .../projects/test_gitlink_delete_project.yaml | 1 - .../projects/test_gitlink_get_repo_category.yaml | 1 - .../projects/test_gitlink_get_repo_ignores.yaml | 1 - .../projects/test_gitlink_get_repo_language.yaml | 1 - .../projects/test_gitlink_get_repo_licenses.yaml | 1 - .../projects/test_gitlink_new_project.yaml | 3 --- .../projects/test_gitlink_upload_files.yaml | 2 -- interface/gitlink/test_api_account_login.yaml | 1 - run.py | 12 ++++++------ test_case/conftest.py | 4 ++-- 17 files changed, 22 insertions(+), 43 deletions(-) diff --git a/custom_utils/case_generate_utils/case_data_analysis.py b/custom_utils/case_generate_utils/case_data_analysis.py index 73e1748..27c668b 100644 --- a/custom_utils/case_generate_utils/case_data_analysis.py +++ b/custom_utils/case_generate_utils/case_data_analysis.py @@ -133,7 +133,7 @@ class CaseDataCheck: 'request_type': self.get_request_type, 'payload': self.case_data.get(TestCaseEnum.PAYLOAD.value[0]), 'files': self.case_data.get(TestCaseEnum.FILES.value[0]), - "think_time": self.case_data.get(TestCaseEnum.THINK_TIME.value[0]), + "wait_seconds": self.case_data.get(TestCaseEnum.WAIT_SECONDS.value[0]), "validate": self.case_data.get(TestCaseEnum.VALIDATE.value[0]), 'extract': self.case_data.get(TestCaseEnum.EXTRACT.value[0]), "case_dependence": self.case_data.get(TestCaseEnum.CASE_DEPENDENCE.value[0]) diff --git a/custom_utils/case_generate_utils/case_fun_generate.py b/custom_utils/case_generate_utils/case_fun_generate.py index b9b9086..327473b 100644 --- a/custom_utils/case_generate_utils/case_fun_generate.py +++ b/custom_utils/case_generate_utils/case_fun_generate.py @@ -279,7 +279,7 @@ def gen_case_file(filename, case_template_path, config, common_dependence, case_ "func_title": func_name, # 在测试用例中移除了测试类,直接使用测试方法 # "class_title": class_name, - "now": datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + "now": datetime.now().strftime('%Y-%m-%d %H:%M:%S') } ) diff --git a/custom_utils/case_generate_utils/conftest_template.txt b/custom_utils/case_generate_utils/conftest_template.txt index a52abc7..25cb514 100644 --- a/custom_utils/case_generate_utils/conftest_template.txt +++ b/custom_utils/case_generate_utils/conftest_template.txt @@ -12,7 +12,7 @@ import pytest from loguru import logger # 本地应用/模块导入 from settings import GLOBAL_VARS -from common_utils.requests_utils.case_dependence import CaseDependenceHandler +from custom_utils.requests_utils.case_dependence import CaseDependenceHandler @pytest.fixture(scope="module", autouse=True) def init_data(): diff --git a/custom_utils/data_utils/data_tools.py b/custom_utils/data_utils/data_tools.py index 193be15..3947225 100644 --- a/custom_utils/data_utils/data_tools.py +++ b/custom_utils/data_utils/data_tools.py @@ -98,19 +98,6 @@ def none_to_null(target): return target -def get_file_base64(file_name): - """ - 返回文文件内容的base64编码 - """ - file_path = os.path.join(FILES_DIR, file_name) - if os.path.exists(file_path): - # 如果文件是一个真实存在的路径,则返回base64编码内容 - return file_to_base64(file_path=file_path) - else: - logger.warning(f"找不到该文件,将返回空, 传入的文件名:{file_name}") - return None - - def get_filepath_base64(file_name): """ 返回文件路径的base64编码 diff --git a/custom_utils/models.py b/custom_utils/models.py index 49f47f8..a1d7208 100644 --- a/custom_utils/models.py +++ b/custom_utils/models.py @@ -78,7 +78,7 @@ class TestCaseEnum(Enum): REQUEST_TYPE = ("request_type", True) PAYLOAD = ("payload", False) FILES = ("files", False) - THINK_TIME = ("think_time", False) + WAIT_SECONDS = ("wait_seconds", False) EXTRACT = ("extract", False) VALIDATE = ("validate", True) ASSERT_SQL = ("assert_sql", False) diff --git a/custom_utils/requests_utils/case_dependence.py b/custom_utils/requests_utils/case_dependence.py index 9cad60b..586c1c9 100644 --- a/custom_utils/requests_utils/case_dependence.py +++ b/custom_utils/requests_utils/case_dependence.py @@ -97,13 +97,15 @@ class CaseDependenceHandler: self.handle_interfaces(interfaces) else: logger.error("依赖接口格式错误,跳过依赖接口处理~ --> interface 仅支持str和list格式") - - if case_dependence.get("database") and db_info: - database_dependence = case_dependence["database"] - if isinstance(database_dependence, (dict, list)): - self.handle_database_dependence(database_dependence, db_info) + if case_dependence.get("database"): + if db_info: + database_dependence = case_dependence["database"] + if isinstance(database_dependence, (dict, list)): + self.handle_database_dependence(database_dependence, db_info) + else: + logger.error("依赖数据库格式错误,跳过依赖数据库处理~ --> database 仅支持dict和list格式") else: - logger.error("依赖数据库格式错误,跳过依赖数据库处理~ --> database 仅支持dict和list格式") + logger.error("数据库依赖参数未传入db_info,跳过依赖数据库处理~") else: - logger.error("数据库依赖参数必须传入db_info, 以及检查关键字 database是否正确") + logger.debug("不存在关键字database,跳过依赖数据库处理~") return self.source diff --git a/custom_utils/requests_utils/request_control.py b/custom_utils/requests_utils/request_control.py index 3592da2..5e23463 100644 --- a/custom_utils/requests_utils/request_control.py +++ b/custom_utils/requests_utils/request_control.py @@ -424,6 +424,7 @@ class RequestControl(BaseRequest): self.api_step_record(**new_api_data) # 进行响应断言 AssertHandle(assert_data=new_api_data["validate"], response=response).assert_handle() + # todo 数据库断言 和 响应断言二选一 # 进行响应参数提取,并保存提取后的数据 if new_api_data.get("extract"): diff --git a/interface/gitlink/projects/test_gitlink_delete_project.yaml b/interface/gitlink/projects/test_gitlink_delete_project.yaml index a294267..73eef55 100644 --- a/interface/gitlink/projects/test_gitlink_delete_project.yaml +++ b/interface/gitlink/projects/test_gitlink_delete_project.yaml @@ -35,7 +35,6 @@ teststeps: expect_value: success assert_type: == type_jsonpath: $.message - assert_sql: extract: case_dependence: setup: diff --git a/interface/gitlink/projects/test_gitlink_get_repo_category.yaml b/interface/gitlink/projects/test_gitlink_get_repo_category.yaml index 68d181c..f9d190e 100644 --- a/interface/gitlink/projects/test_gitlink_get_repo_category.yaml +++ b/interface/gitlink/projects/test_gitlink_get_repo_category.yaml @@ -30,7 +30,6 @@ teststeps: message: 断言接口返回包括字段project_categories expect_value: project_categories assert_type: contains - assert_sql: extract: type_jsonpath: repo_category_ids: $.project_categories[*].id diff --git a/interface/gitlink/projects/test_gitlink_get_repo_ignores.yaml b/interface/gitlink/projects/test_gitlink_get_repo_ignores.yaml index 2bdc745..d0e3db4 100644 --- a/interface/gitlink/projects/test_gitlink_get_repo_ignores.yaml +++ b/interface/gitlink/projects/test_gitlink_get_repo_ignores.yaml @@ -25,7 +25,6 @@ teststeps: files: validate: status_code: 200 - assert_sql: extract: type_jsonpath: ignores_id: $.ignores[0].id diff --git a/interface/gitlink/projects/test_gitlink_get_repo_language.yaml b/interface/gitlink/projects/test_gitlink_get_repo_language.yaml index cb9a009..2ae1674 100644 --- a/interface/gitlink/projects/test_gitlink_get_repo_language.yaml +++ b/interface/gitlink/projects/test_gitlink_get_repo_language.yaml @@ -30,7 +30,6 @@ teststeps: message: 断言接口返回包括字段project_languages expect_value: project_languages assert_type: contains - assert_sql: extract: type_jsonpath: repo_language_ids: $.project_languages[*].id diff --git a/interface/gitlink/projects/test_gitlink_get_repo_licenses.yaml b/interface/gitlink/projects/test_gitlink_get_repo_licenses.yaml index c629ac8..b318c5b 100644 --- a/interface/gitlink/projects/test_gitlink_get_repo_licenses.yaml +++ b/interface/gitlink/projects/test_gitlink_get_repo_licenses.yaml @@ -26,7 +26,6 @@ teststeps: files: validate: status_code: 200 - assert_sql: extract: type_jsonpath: licenses_ids: $.licenses[*].id diff --git a/interface/gitlink/projects/test_gitlink_new_project.yaml b/interface/gitlink/projects/test_gitlink_new_project.yaml index dd6ded9..3d510f0 100644 --- a/interface/gitlink/projects/test_gitlink_new_project.yaml +++ b/interface/gitlink/projects/test_gitlink_new_project.yaml @@ -46,7 +46,6 @@ teststeps: message: 断言接口返回的存在id expect_value: id assert_type: contains - assert_sql: extract: type_jsonpath: project_id: $.id # 项目id @@ -81,7 +80,6 @@ teststeps: expect_value: ${login} assert_type: == type_jsonpath: $.login - assert_sql: extract: type_jsonpath: repo_id: $.id @@ -132,7 +130,6 @@ teststeps: expect_value: ${login} assert_type: == type_jsonpath: $.login - assert_sql: extract: type_jsonpath: repo_id: $.id diff --git a/interface/gitlink/projects/test_gitlink_upload_files.yaml b/interface/gitlink/projects/test_gitlink_upload_files.yaml index 5bd6546..c6a7b0d 100644 --- a/interface/gitlink/projects/test_gitlink_upload_files.yaml +++ b/interface/gitlink/projects/test_gitlink_upload_files.yaml @@ -30,7 +30,6 @@ teststeps: expect_value: TOC出库订单导入模板(2).xlsx assert_type: == type_jsonpath: $.title - assert_sql: extract: type_jsonpath: attachment_id: $.id @@ -61,5 +60,4 @@ teststeps: expect_value: 请登录后再操作 assert_type: == type_jsonpath: $.message - assert_sql: extract: diff --git a/interface/gitlink/test_api_account_login.yaml b/interface/gitlink/test_api_account_login.yaml index 17f9e5d..224ddbd 100644 --- a/interface/gitlink/test_api_account_login.yaml +++ b/interface/gitlink/test_api_account_login.yaml @@ -5,7 +5,6 @@ config: pytest_markers: - gitlink - smoke - - login - login: 登录接口 teststeps: - id: gitlink_login_01 diff --git a/run.py b/run.py index 10c4fdb..a26a8a8 100644 --- a/run.py +++ b/run.py @@ -42,14 +42,14 @@ import pytest from loguru import logger import click # 本地应用/模块导入 -from common.files_utils.files_handle import load_yaml_file -from common_utils.case_generate_utils.case_fun_generate import generate_cases -from common_utils.report_utils.send_result_handle import send_result +from common_utils.files_utils.files_handle import load_yaml_file +from custom_utils.case_generate_utils.case_fun_generate import generate_cases +from custom_utils.report_utils.send_result_handle import send_result from settings import BASE_DIR, REPORT_DIR, LOG_DIR, ENV_DIR, ALLURE_RESULTS_DIR, ALLURE_HTML_DIR, AUTO_CASE_DIR, \ - ALLURE_CONFIG_DIR, LIB_DIR + ALLURE_CONFIG_DIR from settings import LOG_LEVEL, GLOBAL_VARS, REPORT, RERUN, RERUN_DELAY, MAX_FAIL -from common.logger_utils.loguru_log import capture_logs -from common_utils.report_utils.allure_handle import generate_allure_report +from common_utils.logger_utils.loguru_log import capture_logs +from custom_utils.report_utils.allure_handle import generate_allure_report # from common_utils.report_utils.push_allure_report import push_allure_report diff --git a/test_case/conftest.py b/test_case/conftest.py index efb5fd8..d8e4dca 100644 --- a/test_case/conftest.py +++ b/test_case/conftest.py @@ -14,8 +14,8 @@ import allure from loguru import logger # 本地应用/模块导入 from settings import GLOBAL_VARS, GITLINK_DIR -from common_utils.report_utils.allure_handle import allure_title -from common_utils.requests_utils.request_control import RequestControl +from custom_utils.report_utils.allure_handle import allure_title +from custom_utils.requests_utils.request_control import RequestControl @pytest.fixture(scope="function", autouse=True)