# data4test **Repository Path**: darkcoode/data4test ## Basic Information - **Project Name**: data4test - **Description**: No description available - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-20 - **Last Updated**: 2024-12-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Data4Test (盾测) - [中文文档](./README.md) - [EnglishDoc](./README_EN.md) ### 前言 - Data4Test(盾测) 一款旨在通过编写结构化的测试数据或测试指令,通过声明式语句定义,即可开展复杂系统的自动化测试工作,让复杂系统的自动化测试变得容易,可用于功能,并发,异常,模糊,场景,长时间,国际化,大数据,性能等方面的测试工作 ### 背景 #### 应用背景 - Data4Test是一款专为解决复杂业务系统的测试工作开展,而设计的自动化测试平台。在决策引擎系统,在风控业务系统上,进行了深度应用。 - 测试任务管理达150+,自动化场景用例达1500+,自动化数据文件用例达5000个+,自动化数据用例执行达100W次+,使用用户达100+ - 使用迭代3年+,横跨几十+个应用和多个产品,支撑公司ToB产品线的测试工作,并在多个B端客户现场进行实施和应用,支撑客户现场的测试验收工作和日常迭代工作等 - 使用角色涉及测试,开发,实施,客户,产品等,通过该系统,可轻松完成自动化测试,获取丰富的测试数据。 #### 诞生背景 - 1、已有的测试工具无法在一个场景里快速支持多应用接口的调用和执行 - 2、Postman, Jmeter等本地版的测试工具无法快速在开发,测试,实施等多个角色间进行测试数据共享 - 3、接口变更无感,知道有变动,但无法快速定位到变更的接口,靠人工对接不靠谱 - 4、决策引擎系统场景复杂,链路依赖达20+或更多前置数据,自动化用例维护困难,编写脚本成本过高,变更环境失败比率也较高 - 5、风控系统接口请求数据字段过多,少则20+,多则100+或更多,人工输入符合特征的数据,人工构造时间成本过高 - 6、统计类功能需要长时间的数据积累,需各个时间维度的测试数据,需不同频度的定时任务执行 - 7、已有测试工具测试数据变更环境回放困难,需要数据用例幂等执行,且更换环境能快速落地数据进行复现 - 8、实时,离线,批转流,外部数据等多方数据特征需保持一致,且数据值需关联上 - 9、低并发测试需要常态化,靠手工不可能,靠脚本实现和维护成本过高 - 10、被测系统支持国际化,支持多语种,需要多语种的测试数据,且已建设的用例能直接复用,减少建设成本 - 11、部分接口存在加密或逻辑写在前端需要进行UI自动化或其他,需要脚本的管理和执行 - 等等,多个原因促成了本系统的诞生和持续迭代研发 ### 系统 #### 在线体验 - 访问地址:http://101.35.3.10:9088/ - 默认用户和密码:admin / admin (建议初次登录后创建个人用户进行体验) - (说明:不可当生产环境使用哦) #### 本地快速试用 - 下载docker-compose.yml - 切换到下载目录 - 启动服务:docker-compose up -d - 默认访问:http://127.0.0.1:9088 - 默认用户:admin / admin #### 系统特性 - 1、使用友好:可视化界面控制台类Postman使用风格,上手快,无门槛 - 2、编写友好:标准化数据文件YAML格式,声明式语句,批量编写快,无需编写脚本 - 3、扩展灵活:可自定义各类脚本的执行引擎,按需扩展 - 4、运维友好:日志可在线查看,定位系统或执行问题可在线排查 - 5、文档友好:使用操作及指导文件均在线,可方便查看和使用 - 6、跨平台友好:Golang程序,可编译各种跨平台的执行文件 ### 功能 #### 功能特性 - 1、支持接口管理,接口变更及追踪,支持swagger接口一键导入和接口规范检查 - 2、支持测试数据类Postman风格的可视化编写和YAML文件批量编写 - 3、支持标准化数据文件丰富的断言判断类型以供结果校验 - 4、支持标准化数据文件丰富的内置特征数据自动生成和特征数据组装生成 - 5、支持标准化数据文件导出文件快速校验 - e.g.: CSV/EXCEL/YAML/JSON - 6、支持标准化数据文件JSON格式入参N层嵌套定义变量替换 - 7、支持标准化数据文件关联入参,使用输出List变量为整体引用 - 8、支持非标准化各类脚本数据文件的管理和执行 - e.g.: python, shell, jmeter, dos,等等,可任意扩展脚本执行引擎 - 9、支持场景编排标准化数据文件和非标准化脚本文件,管理和执行 - 10、支持多种类型的场景控制:串行中断/串行比较/串行比较/普通并发/并发比较 - 11、支持各类任务的管理:自定义/一次/每天/每周 - 12、支持场景,任务关联多环境同时执行和调度 - 13、支持历史数据回放,历史数据/场景再来一次, 场景继续测试 - 14、支持各类自定义格式的三方Mock数据生成以及在线调用 - 15、支持生成可控的多态测试数据供上下游接口或功能调用 - e.g:CSV/EXCEL/TXT/YAML/XML/JSON - 16、支持未自动化接口一键查看 - 17、其他…… #### 适用测试类型 - 1、功能测试: 正向路径功能测试,自定义或自动生成符合特征的测试数据 - 2、并发测试: 单接口多测试数据的并行执行,多接口的并行执行,以及场景维度的并行执行等 - 3、异常测试: 通过占位符,快速构造超长边界值,特殊字符等 - 4、模糊测试: 自动生成模糊数据,开启健壮性测试 - 5、场景测试: 复杂场景可视化编排,支持跨应用,多接口,多鉴权,多环境测试,同时支持实时,离线,外部数据等多方数据对齐 - 6、长时间测试: 定时任务,持续构造测试数据 - 7、Mock测试: 构造指定特征的数据,当外部数据给被测系统使用 - 8、国际化测试:根据请求语种,自动生成对应语种的测试数据,同时支持多语种的数据定义和断言判断,无需编写多个数据用例 - 9、大数据测试:通过动作自动生成海量的测试数据,以及数据和场景支持执行次数控制,实现实时和离线的大数据量 - 10、性能测试:支持控制并发数,支持调用Jmeter脚本,开展性能压测 - 11、UI测试:通过脚本的形式完成UI自动化 - 12、其他自动化任务:测试报告生成,提效类脚本等 #### 架构设计 - [架构图](./mgmt/doc/file/arch/arch.md) #### 系统页面 - [控制台运行域](./image/控制台运行域页面.jpg) - [控制台场景域](./image/控制台场景域页面.png) - [控制台数据历史域](./image/控制台数据历史域页面.png) - [管理域产品列表](./image/管理域产品页面功能介绍.png) - [管理域数据列表](./image/管理域数据列表功能介绍.png) - [管理域场景列表](./image/管理域场景列表功能介绍.png) - [管理域定时任务](./image/管理域定时任务列表功能介绍.png) #### 系统介绍 - [特性简介](./mgmt/doc/file/function/feature_introduction.md) - [模块功能](./mgmt/doc/file/function/module_function.md) - [接口管理](./mgmt/doc/file/design/api_mgmt_design.md) - [用例管理](./mgmt/doc/file/design/testcase_design.md) - [场景管理](./mgmt/doc/file/design/playbook_design.md) - [数据文件管理](./mgmt/doc/file/design/data_file_design.md) - [任务管理](./mgmt/doc/file/design/task_design.md) - [Mock应用](./mgmt/doc/file/design/mock_design.md) #### 近长期规划 - [长期规划](./mgmt/doc/file/plan/blue_print.md) - [近期规划](./mgmt/doc/file/plan/todo.md) - [性能测试](./mgmt/doc/file/design/perf_design.md) #### 开发须知 - [变更须知](./mgmt/doc/file/development/must_know.md) - [更新记录](./mgmt/doc/file/update/change_log.md) - [发布记录](./mgmt/doc/file/update/release.md) #### 生产环境 [生产环境部署](./deploy/README.md) #### 开发环境 [开发环境部署](./mgmt/doc/file/development/dev_env.md) ### 其他 #### 周边技术 - yaml文件语法:https://www.runoob.com/w3cnote/yaml-intro.html - 正则编写:https://www.runoob.com/regexp/regexp-syntax.html #### 微信公众号 公众号:Data4Test 欢迎扫码关注更新动态,系统使用小技巧会陆续上线 #### 社区微信群 欢迎扫码,邀请加入我们的开源社区微信群,进行沟通交流 如需联系开发作者,请添加微信:liuhuocjx 或 扫一扫添加 (申请时备注“data4test”字样)