# TestDataGenerator **Repository Path**: colorlife/TestDataGenerator ## Basic Information - **Project Name**: TestDataGenerator - **Description**: 测试数据生成器 - **Primary Language**: Java - **License**: MPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 1 - **Created**: 2020-07-09 - **Last Updated**: 2025-02-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TestDataGenerator #### 介绍 ### TestDataGenerator能做什么? > 接口写好了在测试POST或者PUT类型的接口的时候是不是感觉很难造(懒,不想动 :stuck_out_tongue_winking_eye: )JSON数据? 测试数据生成器能够解决你这个问题。 TestDataGenerator又名测试数据生成器,采用随机算法,可以根据策略生成不同类型的数据。只需要你确定了待测试数据的实体Java类,调用方法生成即可。例如:员工类中有String 类型的属性,可以随机生成null或者""这样的数据. >目前已经实现的默认策略类型如下表所示: | 类型 | 策略类 | 说明 | |--------|----------------|------------------------------------------------------------------------| | String | StringStrategy | 默认数据为null, "", " ", "123123123123"组合,如果使用Length注解,则会在min和max中取拼接长度的边界值 | | Integer| IntegerStringStrategy| 默认数据为Integer.MIN_VALUE, -1, 0, 1, 256, Integer.MAX_VALUE组合,如果使用Range注解,则会增加max的边界值 | | Double | DoubleStrategy | 默认数据为Double.MIN_VALUE, -1.0, 0.00, 1.00, 100.01, Double.MAX_VALUE | | Boolean| BooleanStrategy| 默认数据为Boolean.FALSE, null, Boolean.TRUE | | Date | DateStrategy| 默认数据为返回当前时间 | | Enum | EnumStrategy| 默认数据为根据定义的枚举随机返回一个枚举的名称 | | List | ListStrategy| 默认数据为根据定义的泛型随机返回一个泛型对象 | | 以上类型都不匹配 | DefaultStrategy| 默认数据为null | 什么?感觉上面的生成策略不符合你的需求? 没关系,你可以自己扩展策略或者替换默认策略,通过实现Strategy方法即可,详细使用请参考使用说明章节中的扩展调用内容。 --- #### 安装教程 1. 下载代码到本地 2. IDEA需要安装lombok插件,导入本项目 3. IDEA内拉取项目Maven依赖包 4. Maven打包install到本地maven仓库 5. 在你的Java项目的pom文件中添加如下maven依赖 ``` com.colorlife TestDataGenerator 0.1 ``` #### 使用说明 1. #### 普通调用 **TestUtil.getTestJsonData()** 静态方法即可生成测试Json数据,默认生成10条( **都是控制台输出** ).因为采用随机算法,如果生成的数据有偏差,调用多次即可. 下图为项目中员工类测试产生的数据. ![输入图片说明](https://images.gitee.com/uploads/images/2020/0723/164035_3c78fa6d_1095520.png "WeChat Screenshot_20200723164035.png") 2. #### 扩展调用 **TestUtil.extendStrategy()** 方法可以扩展你自定义的策略,如果需要扩展,调用生成数据方法 **TestUtil.getTestJsonData()** 前需要先调用该方法(如下所示). ``` Map strategyMap =new HashMap<>(); strategyMap.put("default",new DefaultStrategy()); TestUtil.extendStrategy(strategyMap); TestUtil.getTestJsonData(Employee.class); ```