批量构造数据常见于性能测试中,大多数功能测试也会用到。不同的构造方法效率不同,下面是利用awk方法进行批量数据构造,效率较高。
使用说明
构造批量数据常用于性能测试。如果没有Linux服务器,可以安装Cygwin工具执行awk指令。
awk批量数据创建
$ awk -v data_format='136%03d|100|99 ' 'BEGIN{for(i=0;i<=3;i++)printf(data_format,i)}' 136000|100|99 136001|100|99 136002|100|99 136003|100|99
说明:
1、data_format值表示数据模板记录,%03d表示不足3位,前补0。
2、for循环表示构造数据的起始值和结束值。上述实例表示构造136000~136003数据记录。
awk批量构造数据并重定向到指定文件
awk -v data_format='136%03d|100|99 ' 'BEGIN{for(i=0;i<=999;i++)printf(data_format,i)}' > data.unl
模板记录包含2个变量数据构造
awk -v data_format='136%03d|100%02d|99 ' 'BEGIN{for(i=0;i<=99;i++)for(j=0;j<=99;j++)printf(data_format,i,j)}' > data.unl
文件按指定行数或大小分割
如果需要将构造的数据进行拆分,如何处理?
(1)按照指定行数拆分文件。将data.unl文件拆分成每单个文件包含10000行数据,拆分文件名前缀为split_data,后缀为2个长度的数字。其中-d表示以数字为后缀,-a 2表示后缀长度为2,split_data表示拆分文件前缀名。
split -l 10000 data.unl -d -a 2 split_data
(2)按照指定单个文件大小拆分文件。将data.unl文件拆分成每单个文件大小为10k,拆分文件名前缀为split_data,后缀为2个长度的数字。
split -b 10k data.unl -d -a 2 split_data