kakawaa / data4test

Data4Test(盾测) 可以快速实现接口的自动化测试和管理,支持丰富的数据生成,支持复杂场景用例编排,适用于功能,并发,异常,模糊,场景,长时间,国际化,大数据,性能等方面的测试工作。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Data4Test (盾测)

前言

Data4Test(盾测) 可以快速实现接口的自动化测试和管理,支持丰富的数据生成,支持复杂场景用例编排,适用于功能,并发,异常,模糊,场景,长时间,国际化,大数据,性能等方面的测试工作。

背景

  • 已有的测试工具无法在一个场景里支持多应用接口的调用和执行
  • Postman, Jmeter等单机版的测试工具无法快速在开发,测试,实施等多个角色间进行数据共享
  • 接口变更无感,知道有变动,但无法快速定位到变更的接口,靠人工对接不靠谱
  • 决策引擎系统场景复杂,链路依赖达20+或更多前置数据,自动化用例维护困难,编写脚本成本过高,变更环境失败比率也较高
  • 风控系统接口请求数据字段过多,少则20+,多则100+或更多,人工输入符合特征的数据,人工构造时间成本过高
  • 统计类功能需要长时间的数据积累,需各个时间维度的测试数据,需不同频度的定时任务执行
  • 已有测试工具测试数据变更环境回放困难,需要数据用例幂等执行,且更换环境能快速落地数据进行复现
  • 实时,离线,批转流,外部数据等多方数据特征需保持一致,且数据值需关联上
  • 低并发测试需要常态化,靠手工不可能,靠脚本实现和维护成本过高
  • 被测系统支持国际化,支持多语种,需要多语种的测试数据
  • 等等,多个原因促成了本系统的诞生

功能

适用测试类型

  • 功能测试: 自动生成符合特征的测试数据,e.g.: 地址,证件号码,手机号,公司等
  • 并发测试: 单接口多测试数据的并行执行,多接口的并行执行,以及场景维度的并行执行等
  • 异常测试: 通过占位符,快速构造超长边界值,特殊字符等
  • 模糊测试: 自动生成模糊数据,开启健壮性测试(功能待充分验证)
  • 场景测试: 跨应用,多接口,多鉴权,多环境测试,同时支持实时,离线,外部数据等多方数据对齐
  • 长时间测试: 定时任务,持续构造测试数据
  • Mock测试: 构造指定特征的数据,当外部数据给被测系统使用
  • 国际化测试:根据请求语种,自动生成对应语种的测试数据,同时支持多语种的数据定义和断言判断,无需编写多个数据用例
  • 大数据测试:通过动作自动生成海量的测试数据,以及数据和场景支持执行次数控制,实现实时和离线的大数据量
  • 性能测试:支持控制并发数,开展性能压测(功能待增强)

基础特性

  • HTTP接口自由组合:接口可以跨环境,跨应用自由组合成场景进行超长链路的测试
  • 定义数据重复调用:同一数据文件可以被不同场景反复调用,可被同一场景反复调用
  • 数据文件定义声明式:通过界面编辑测试数据后,数据保存为声明式YAML文件,支持测试数据快速批量编写
  • 请求数据自动生成:通过简单的定义,系统根据定义可自动生成丰富多样的特征测试数据,减少数据的人工介入和构造
  • 返回数据精准解析:通过返回数据结构定义,可进行丰富的断言和数据取用,并提供给上下游使用
  • 丰富的动作类型: 支持生成或记录为CSV, EXCEL,同时支持模板文件生成测试数据,多方数据特征对齐
  • 丰富的断言类型:通过编写多样的断言定义,可对返回数据进行多方面的校验,并防呆机制
  • 数据文件执行幂等:通过断言数据定义,同一数据文件在同一环境可反复执行,达到幂等
  • 变量场景内无感传递:不同数据文件组合成场景,请求的变量和解析返回的变量上下文无感使用

延伸特性

  • 可根据请求头判断语言,系统自动生成对应语种的测试数据,系统参数和断言值模板可自定义多语种的测试数据
  • 支持Mock接口,返回文件的数据,并支持占位符数据的生成
  • 支持接口定义规范检查,快速感知变化的接口信息

生产环境

生产环境部署

开发环境

开发环境部署

开发须知

架构设计

系统页面

系统介绍

近长期规划

社区微信群

欢迎扫码,邀请入我们的开源社区微信群,进行沟通交流:

(申请的时候备注填写“data4test”字样。)

About

Data4Test(盾测) 可以快速实现接口的自动化测试和管理,支持丰富的数据生成,支持复杂场景用例编排,适用于功能,并发,异常,模糊,场景,长时间,国际化,大数据,性能等方面的测试工作。

License:GNU Affero General Public License v3.0


Languages

Language:Go 76.1%Language:Vue 16.6%Language:CSS 6.0%Language:JavaScript 0.4%Language:TypeScript 0.4%Language:Shell 0.2%Language:Python 0.1%Language:Makefile 0.1%Language:HTML 0.0%