我们在进行单元测试或者运行一些需要虚拟用户的数据的模块的时候,总觉得手动添加这些数据很麻烦,特别是在遇到需要添加大量用户数据的时候,为了防止浪费大量时间,可以使用下面的几个方法来获得随机用户。
先假设用户的数据只包含姓名、年龄、性别、ID
1.随机生成姓名,这里是生成的中文名字,英文名同理
Random random =new Random();
//需要更多姓氏加在数组后即可
String[] Surname = {"赵","钱","孙","李","周","吴","郑","王"};
int index = random.nextInt(Surname.length-1);
String name = Surname[index]; //获得一个随机的姓氏
/* 从常用字中选取一个或两个字作为名 */
if(random.nextBoolean()){
name+=getLastName()+getLastName();
}else {
name+=getLastName();
}
return name;
private static String getLastName() {
String str = null;
int highPos, lowPos;
Random random = new Random();
highPos = (176 + Math.abs(random.nextInt(71)));//区码,0xA0打头,从第16区开始,即0xB0=11*16=176,16~55一级汉字,56~87二级汉字
random=new Random();
lowPos = 161 + Math.abs(random.nextInt(94));//位码,0xA0打头,范围第1~94列
byte[] bArr = new byte[2];
bArr[0] = (new Integer(highPos)).byteValue();
bArr[1] = (new Integer(lowPos)).byteValue();
try {
str = new String(bArr, "GB2312"); //区位码组合成汉字
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return str;
}
2.随机年龄(18-60),使用RandomUtils工具类一行就可以搞定
RandomUtils.nextInt(18,60);
3.随机性别,同样使用Random类
String sex;
Random random =new Random();
if(random.nextBoolean()){
sex = "男";
}else {
sex = "女";
}
4.随机ID,使用UUID,别看这家伙使用起来简单,但重复概率可比买彩票中5000万的概率还小,约等于零
UUID uuid = UUID.randomUUID();