# api_mall **Repository Path**: nuko99/api_mall ## Basic Information - **Project Name**: api_mall - **Description**: 商城接口自动化 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-30 - **Last Updated**: 2026-03-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JcMall基于PO模型设计的场景式接口自动化测试框架 #### 主要实现 此框架主要实现根据页面对接口进行封装,实现接口数据与代码逻辑剥离,在test_case包中调用页面类中封装的接口方法以测试用例的形式构造用户场景,并可结合db_datas中从数据库获取实际数据进行断言来测试后端逻辑,优点是跳过前端直接测试后端逻辑,实现测试左移大大提高测试效率,特别适合后端业务逻辑复杂的系统,保证核心逻辑的正确性; #### 特点 1. 所有接口按照页面类建模封装,方便维护管理; 2. 在测试用例中直接调用页面类中封装好的接口方法,构造用户场景; 3. 在测试用例中可引入db_datas模块中对数据库的数据查询,方便实现数据校验; 4. 通过yaml统一维护管理接口数据,通过使用模板技术,支持测试用例的参数化; 5. 完善的日志模块记录接口详细的调用信息,方便问题复现与定位排查; 6. 框架结合pytest与allure生成精美详细的测试报告; 7. 执行模块run.py能方便的与Jenkins做持续集成并在Jenkins上生成测试报告; 8. 该框架封装了独立的邮件发送模块,测试执行完成后可实现批量发送测试报告压缩包; #### 模块介绍 1. common: config.yaml可配置测试用例的执行路径、执行特定标签的测试用例;配置测试报告的邮件参数; log.py 是框架的日志模块,实现框架中日志输出到指定文件或控制台; 2. send_mail.py 实现测试报告通过邮件进行发送; zip_file.py 文件压缩模块 3. db_datas:实现数据库的连接,以及根据模块进行测试数据的封装查询; 4. py_page: base_api.py 是框架的核心,该模块实现对requests的二次封装,读取测试用例中的接口请求数据,并通过模板技术实现接口请求入参的参数化来支持测试用例的参数化; 5. yaml_api: 按页面对api进行分类管理,通过yaml格式统一维护测试接口的接口数据,base_api.py获取该数据实现对接口的请求; 6. test_case: 按模块进行测试用例的编写,通过conftest+fixture机制解决接口公共依赖token的获取与传入,同时测试用例中可实现导入db_datas对数据库查询来验证场景,并与allure测试报告集成; 7. test_datas: 用于存放测试用例参数化的测试数据,通过yaml格式统一管理,实现测试用例的数据驱动; 8. report_zip: allure生成的测试报告经过zip_file.py模块压缩后的存放目录; 9. result: allure生成的测试数据,用于生成测试报告; 10. allure-report: 测试完毕后生成的allure测试报告; 11. run.py: 框架的执行模块,通过运行该模块实现测试用例的执行-allure测试数据的生成-allure测试报告的生成-对测试报告压缩打包-把测试报告邮件发送; #### 框架的运行 在test_case中设计测试场景,在测试用例(方法)中调用py_page中封装的接口构成后端的业务场景编写测试用例; 在命令行执行 python run.py即可执行测试并自动生成报告,发送报告邮件;