Java基于Javafaker生成测试数据

1. 前言

老板说,明天甲方要来看产品,你得造点数据,而且数据必须是“真”的,演示效果要好看一些,这样他才会买我们的产品,我好明年给你换个嫂子。一般开发接到这种过分要求都不会很乐意去做,这完全是体力劳动,而且很棘手。今天胖哥教你一招,让你做出逼真的“假”数据。

2. javafaker

我们Java是有可以生成仿真数据的框架的,这里我安利一个Javafaker的框架,你只需要在项目中引入:

    <dependency>
      <groupId>com.github.javafaker</groupId>
      <artifactId>javafaker</artifactId>
      <version>1.0.2</version>
    </dependency>

忘记说了它主要的使用场景就是为了制造仿真测试数据,而并不是用来造假。

然后胖哥来演示一下它的用法,先定义一个Java Bean :

/**
 * User info.
 *
 * @author felord.cn
 * @since 10 :50
 */
@Data
public class UserInfo {
 /**
  * 真实姓名
  */
 private String realName;
 /**
  * 手机
  */
 private String cellPhone;
 /**
  * 大学
  */
 private String universityName;
 /**
  * 城市
  */
 private String city;
 /**
  * 地址
  */
 private String street;
}

然后声明一个Faker对象,你可以根据需要进行本地化声明,如果是使用中国的:

Faker fakerWithCN = new Faker(Locale.CHINA);

你要是想造点美帝的数据就改成这样:

Faker fakerWithUS = new Faker(Locale.US);

这里我们使用中国来生成模拟10条仿真数据:

for (int i = 0; i < 10; i++) {

  UserInfo userInfo = new UserInfo();

  userInfo.setRealName(fakerWithCN.name().fullName());
  userInfo.setCellPhone(fakerWithCN.phoneNumber().cellPhone());
  userInfo.setCity(fakerWithCN.address().city());
  userInfo.setStreet(fakerWithCN.address().streetAddress());
  userInfo.setUniversityName(fakerWithCN.university().name());
  System.out.println("userInfo = " + userInfo);

}

我们来看下结果:

是不是看上去跟真的一样,但是一定要用到正途,不要用到歪门邪道上。

3. 总结

用了javafaker之后我们不但可以完成老板提出的需求,而且可以减少我们平常使用测试的时候用各种test填充的局面。好了今天的分享就到这里。我是 码农小胖哥,多多关注,分享更多有用的编程干货。

以上就是Java基于Javafaker生成测试数据的详细内容,更多关于Javafaker生成测试数据的资料请关注我们其它相关文章!

(0)

相关推荐

  • MongoDB支持的java数据类型和测试例子

    mongodb的java数据类型有: Object Ids 自动IDRegular Expressions 正则表达式搜索记录Dates/Times 时间Database References 数据基础结构Binary Data 二进制流Timestamp Data 时间标记戳Code Data 代码数据Embedded Documents 嵌入式文档Arrays 数组类型 详细参考原来英文 http://docs.mongodb.org/ecosystem/drivers/java-types

  • Java调用WebService接口作测试

    1.选择一个WebService接口作测试 假设 WebService url 为 http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx(查询手机归属地) 通过网页看到接口有两个,也可看到参数以及返回值 该接口来源于 http://www.webxml.com.cn/zh_cn/web_services.aspx (WebService接口大全) 选择该手机号查询归属地,是由于简单,其他接口都复杂一点,老是出现解析组件 's:schema'

  • java实现连接mysql数据库单元测试查询数据的实例代码

    1.按照javaweb项目的要求逐步建立搭建起机构,具体的类包有:model .db.dao.test; 具体的架构详见下图: 2.根据搭建的项目架构新建数据库test和数据库表t_userinfo并且添加对应的测试数据; (这里我使用的是绿色版的数据库,具体的下载地址:http://pan.baidu.com/s/1mg88YAc) 具体的建立数据库操作详见下图: 3.编写包中的各种类代码,具体参考代码如下: UserInfo.java /** * FileName: UserInfo.jav

  • Java实现OJ多组测试数据的输入方法

    Java:必须是public class Main提交,并且不能带包名,输入和输出的格式一定要按照题目要求的去写,否则提交不过.输入不可用文件输入. 就比如说要输入多组数据,每行一组,进行加法,输出的时候每行输出一个. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a,b; while(sc.

  • Java Unsafe类实现原理及测试代码

    Unsafe类介绍 第一次看到这个类时被它的名字吓到了,居然还有一个类自名Unsafe?读完本文,大家也能发现Unsafe类确实有点不那么安全,它能实现一些不那么常见的功能. Unsafe类使Java拥有了像C语言的指针一样操作内存空间的能力,同时也带来了指针的问题.过度的使用Unsafe类会使得出错的几率变大,因此Java官方并不建议使用的,官方文档也几乎没有.Oracle正在计划从Java 9中去掉Unsafe类,如果真是如此影响就太大了. Unsafe类提供了以下这些功能: 一.内存管理.

  • Java接口测试Cookie与token原理解析

    一.Cookie与token机制测试 Cookie与Session token机制 cookie/session机制需要在服务端保存大量的session信息,造成严重负担,而token机制则避免记录大量信息,采用服务器签发的token完成验证. 1.客户端使用用户名跟密码请求登录 2.服务端收到请求,去验证用户名与密码 3.验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端 4.客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local S

  • java连接mysql数据库及测试是否连接成功的方法

    本文实例讲述了java连接mysql数据库及测试是否连接成功的方法.分享给大家供大家参考,具体如下: package com.test.tool; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement

  • Java自动化测试中多数据源的切换(实例讲解)

    在做自动化测试时,数据驱动是一个很重要的概念,当数据与脚本分离后,面对茫茫多的数据,管理数据又成了一个大问题,而数据源又可能面对多个,就跟在开发过程中,有时候要连接MYSQL,有时候又要连接SQL SERVER一样,如何做到快速切换?下面的示例中,我们将从一个数据源开始,一步步的演示下去: 一. 用外部文件做数据驱动的基本写法 1.1 我们在做数据驱动时,把数据存储在JAVA的属性文件中:data.properties username=test password=123456 1.2 解析pr

  • Java使用JDBC向MySQL数据库批次插入10W条数据(测试效率)

    使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: 通过使用addBatch()和executeBatch()这一对方法可以实现批量处理数据. 不过值得注意的是,首先需要在数据库链接中设置手动提交,connection.setAutoCommit(false),然后在执行Statement之后执行connection.commit(). import java.io.Bu

  • Java mockito单元测试实现过程解析

    待测试的服务接口: public interface ItemService { String getItemNameUpperCase(String itemId); } 预览 待测试的服务的实现类: @Service public class ItemServiceImpl implements ItemService { @Resource private ItemRepository itemRepository; @Override public String getItemNameU

随机推荐