# ShopApiTest **Repository Path**: zypdominate/ShopApiTest ## Basic Information - **Project Name**: ShopApiTest - **Description**: 一个基于 Python、用于测试商城系统 API 接口的自动化测试框架。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-01 - **Last Updated**: 2025-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Shop API 测试框架 ## 项目简介 基于 Python 的自动化测试框架,用于测试商城系统的 API 接口。采用数据驱动的设计理念,将测试数据与测试代码分离,使测试用例的维护和扩展变得更加简单高效。 ## 框架特点 - **数据驱动**: 通过 Excel 表格管理测试数据,实现测试数据与测试代码分离 - **模块化设计**: 各功能模块独立封装,职责明确,便于维护和扩展 - **环境变量管理**: 支持从响应中提取数据并存入环境变量,用于后续接口调用 - **前置 SQL 支持**: 支持执行前置 SQL 语句,便于测试数据准备 - **多种断言方式**: 支持响应断言和数据库断言,全面验证接口功能 - **日志记录**: 详细记录测试执行过程,便于问题定位和分析 - **参数化测试**: 利用 pytest 的参数化功能,支持多场景测试 - **文件上传测试**: 支持文件上传接口测试 ## 环境要求 - Python 3.8+ - 依赖包: - pytest - requests - openpyxl - loguru - jsonpath - pymysql ## 安装与配置 1. 克隆项目到本地 2. 安装依赖包: ``` pip install -r requirements.txt ``` 3. 配置数据库连接信息(config/settings.py) ## 使用方法 ### 编写测试用例 1. 在 Excel 文件中添加测试用例数据 2. 在 testcases 目录下创建对应的测试用例文件 ## 测试用例编写规范 ### Excel 测试数据格式 Excel 测试数据应包含以下列: - 用例编号 - 用例标题 - 接口地址 - 请求方法 - 请求头 - 请求参数 - 预期结果 - 前置 SQL - 提取响应字段 ### Python 测试用例示例 ```python import pytest from api_test_framework.utils.handle_excel import read_excel from api_test_framework.utils.handle_path import PathHandler from api_test_framework.utils.handle_requests import requests_api # 读取 Excel 测试数据 case_all = read_excel(PathHandler.EXCEL_PATH, "登录") # 参数化测试 @pytest.mark.parametrize("test_param", case_all) def test_login_case(test_param): # 发送请求并获取响应 resp = requests_api(test_param) # 断言已在 requests_api 中处理 ``` ## 核心功能模块说明 ### 请求处理 (handle_requests.py) 封装了 HTTP 请求的发送和处理,支持 GET、POST、PUT 等方法,以及不同的 Content-Type。 ### 数据提取 (handle_extract.py) 从响应中提取数据并存入环境变量,支持 jsonpath 表达式。 ### 数据替换 (handle_replace.py) 替换请求中的标记数据,支持环境变量替换和函数调用。 ### 断言处理 (handle_resp_assert.py, handle_db_assert.py) 支持响应断言和数据库断言,验证 API 功能的正确性。