# test_api_code **Repository Path**: Mygitee_ID/test_api_code ## Basic Information - **Project Name**: test_api_code - **Description**: Python+Requests+Pytest+Allure+YAML+CSV 接口自动化框架 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-29 - **Last Updated**: 2024-04-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 接口自动化测试框架使用手册 ### 1.概述 该项目是一个接口自动化测试框架,使用 Python 编写,结合 Pytest 进行测试执行和管理。它采用了常见的接口测试工具和框架,包括 Requests 库进行接口请求,Allure 生成测试报告。 ### 2.所用到的库 1. **Requests**: 用于发送 HTTP 请求。 2. **Pytest**: 用于管理和执行测试用例。 3. **Allure**: 用于生成漂亮且详细的测试报告。 4. **YAML**: 用于编写测试用例文件。 5. **CSV**: 用于存储测试数据。 ### 3.项目目录结构 ```plaintext test_api_code ├─ commons │ ├─ logger_util.py │ ├─ parameters_util.py │ ├─ request_util.py │ └─ yaml_util.py ├─ config.yaml ├─ data │ ├─ wan_article_list.csv │ ├─ wan_cancel_collect.csv │ ├─ wan_collect_articles.csv │ ├─ wan_collect_list.csv │ └─ wan_login.csv ├─ debug_talk.py ├─ extract.yaml ├─ logs │ └─ log_2024_01_16_15_01_50.log ├─ pytest.ini ├─ reports ├─ requirements.txt ├─ run.py ├─ temps └─ testcases └─ test_project ├─ conftest.py ├─ test_api_pinter.py ├─ wan_login.yaml ├─ wan_login.csv ├─ wan_article_list.yaml ├─ wan_cancel_collect.yaml ├─ wan_collect_articles.yaml └─ wan_collect_list.yaml ``` ### 4.编写 YAML 测试用例文件 在 `testcases` 目录下,为每个接口编写 YAML 格式的测试用例文件。例如,创建 `wan_login.yaml` 文件: ```yaml - name: $csv{case_name} base_url: ${get_base_url(base_wanandroid_url)} parameters: case_name-status_code-errorCode-curPage-pages: 'test_project/data/wan_login.csv' request: method: post url: /user/login headers: null data: username: $csv{username} password: $csv{password} extract: token: $.data.token assert: - equals: status_code: $csv{status_code} - equals: errorCode: $csv{errorCode} ``` ### 5.编写 CSV 数据文件 在 `testcases/data` 目录下,为每个测试用例编写 CSV 格式的数据文件。例如,创建 `wan_login.csv` 文件: ```csv case_name,username,password,status_code,errorCode 成功登录,user1,password123,200,0 登录失败,user2,wrongpassword,401,1001 ``` ### 6.编写测试用例文件 `test_api.py` 在 `testcases` 目录下,为每个测试模块编写测试用例文件。例如,创建 `test_api.py` 文件: ```python import allure import pytest from commons.request_util import RequestUtil from commons.parameters_util import read_testcase_file @allure.epic("项目名称:接口自动化测试项目") @allure.feature("模块名称:xx管理模块") @pytest.mark.usefixtures('handle') class TestApi: # wan登录接口 @allure.story("接口名称:wan登录接口") @pytest.mark.parametrize('caseinfo', read_testcase_file('test_project/wan_login.yaml')) def test_wanandroid_login(self, caseinfo): allure.dynamic.title(f"{caseinfo['name']}") RequestUtil().standard_yaml(caseinfo) ``` ### 7.注意事项 1. **路径注意**: 在编写 YAML 文件和 CSV 文件时,确保路径的正确性,特别是相对路径的引用。 2. **数据替换**: 使用 `$csv{}` 格式进行参数化,确保在 CSV 文件中有对应的数据。 3. **报告生成**: 运行测试时,确保 `pytest.ini` 文件中的配置正确,以便生成 Allure 报告。 4. **测试顺序**: 如果测试用例之间有依赖关系,请确保它们的执行顺序被正确配置。 5. **模块拓展**: 随着测试用例的增加,按照模块进行组织,方便管理和维护。