# generated-data **Repository Path**: jeanlv/generated-data ## Basic Information - **Project Name**: generated-data - **Description**: 生成测试数据的小工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-08-13 - **Last Updated**: 2023-02-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 测试数据生成功能 ## 技术栈 - 开发框架:SpringBoot 2.5.3 - 模板框架:Mustache - 工具包类:Hutool - 测试报告框架:Allure2 - 数据生成框架faker、bank_card :Python拥有的类库 注意: 本工程才用python3的包,因此本地需要安装python3环境(Python2是不可使用的),还需要安装如下包: ```shell pip install bank_card pip install faker ``` ## 构造测试数据示例 当前有一个新增用户信息的一个接口,该接口入参信息包含该用户信息,及朋友列表信息 ```json { "userId": "65", "userName": "吴娜", "email": "15275935660@qq.com", "phone": "18814235009", "friends": [ { "userId": "81", "userName": "陈秀荣", "email": "15907477506@qq.com", "phone": "15933993963" }, { "userId": "52", "userName": "黎建国", "email": "15026681367@qq.com", "phone": "18524987499" }, { "userId": "4", "userName": "高琳", "email": "18206665967@qq.com", "phone": "15138876923" } ] } ``` 这是一个userInfo新增用户信息的接口的请求主体示例,由于我们要应对不同场景,就需要构造不同的测试数据,那么问题来了,如果手工构造,会面临如下问题: 1. 如果请求主体字段过多 2. 手动构建容易出错 3. 有些固定字段不需要改动 因此,我们的需求是根据我们设定的场景,来设置不同的请求数据。 本项目只是一个简单的示例,需求是请求接口,就更换请求主体不同的数据。 ## 生成数据工具类 构造不同的测试数据,我们将此成为Faker技术,因此编写了一个FakerUtils工具类,比如:时间戳、随即数,随机姓名、电话号码等……本工程使用了Python的Faker类,在做调研时,Java相关的工具包或者三方开发的平台都没有比较的好的构造数据的三方,因此采用了Python的一个类库,但是带来的问题是,若python执行失败,Java是捕捉不到的,这个需要注意 ## 使用 本地启动工程后,请求接口:http://127.0.0.1:8088/v1/data/user/info 每请求一次,就会生成不同数据的返回体