前言:
测试工作中,有很多时间需要造数据来测一些功能,或者在性能测试中需要造大量的数据来进行性能测试,且我们需要批量创建的无非是手机号,身份号,邮箱号等数据,接下来我总结几个我自己走通了的方法
手机号/身份证号
方法1--excel
通过excel创建一条数据,下拉的方式,选中数据框,右下角如果出现加粗的十字符号,下拉即可,想要多少拉多少,优点:快,缺点,数据量大不适合,拉到手抽筋
选中单元格,序列,自动填充,分分钟造想要的数据量,假如需要几万条数据,这里直接选中一列去生成数据,反正只会多不会少,我试了一列有上一条数据了
方法2
通过python函数循环跑代码,写入到文件就可以了,脚本附上
身份号:
import random
from ExcelHandler import ExcelHandler
# import time
def gen_mobilephone():
ID_card = '52263119960426' + random.choice(['0','1','2','3','4','5','6','7','8','9'])
for i in range(0, 4):
if len(ID_card) == 17:
break
ID_card = ID_card + str(random.randint(0, 17))
ID_card=ID_card+str(random.choice(['0','1','2','3','4','5','6','7','8','9','X']))
return ID_card
# if __name__=="__main__":
# print(gen_mobilephone())
n=0
while n<500000:
date_01 = ExcelHandler(r'C:\Users\dell\Desktop\id_card.xlsx').get_data('id_card')
ExcelHandler(r'C:\Users\dell\Desktop\id_card.xlsx').write(file=r'C:\Users\dell\Desktop\id_card.xlsx', name='id_card',
row=2+n, column=1,
data=gen_mobilephone())
n=n+1
手机号:
import random
from common.ExcelHandler import ExcelHandler
import time
def gen_mobilephone():
phone = '1' + random.choice(['3', '5', '6', '7', '8', '9'])
for i in range(0, 9):
if len(phone) == 11:
break
phone = phone + str(random.randint(0, 9))
return phone
n=0
while n<500000:
date_01 = ExcelHandler(r'C:\Users\dell\Desktop\phone.xlsx').get_data('phone1')
ExcelHandler(r'C:\Users\dell\Desktop\ceshi.xlsx').write(file=r'C:\Users\dell\Desktop\phone.xlsx', name='phone1',
row=2+n, column=1,
data=gen_mobilephone())
n=n+1
方法3
jmeter BeanShell预处理程序,通过固定前置+拼接随机数造成一个手机号或者身份证号,姜变量引用到请求参数就可,这些用于测试足够,但是如果校验身份证合法性的可能需要另想办法了
String[] FirstThreeNumber = {"134","135","136","137","138","139","147","150","152","157","158","159","172","178","182","183","184","187","188","198","130","131","132","145","155","156","166","171","175","176","185","186","166","133","149","153","173","177","180","181","189","199"};
//随机获取前三位手机号的index
int n= (int)(Math.random() * FirstThreeNumber.length);
//获取手机前三位
String yy = FirstThreeNumber[n];
//循环获取手机号后8位
for(int i = 0; i < 8; i++)
{
int x = (int)(Math.random() * 9);
yy = yy + x;
};
vars.put("phone", yy);