vdbench测试生成器

vdbench测试生成器

背景

vdbench测试是根据配置文件进行测试的,有的时候我们需要循环的进行不同的测试用例进行测试,并且进行数据的大量填充,大小文件进行交错的填充来检测环境的稳定性

分析

我们定义几组不同的配置文件,然后根据配置文件定义测试的次数,然后定义总次数,以及测试目录,然后生成配置文件,再使用脚本按顺序进行测试并记录结果

实现

写几个模版配置文件

这个没有什么特殊的地方,根据自己的需要编写即可
测试的目录留空

1
anchor=

编写run.ini配置文件

安装解析ini的软件

1
yum install crudini

这个是用于定义上面配置文件的运行组合的

1
2
3
4
5
6
7
8
9
10
11
[runcase]
run1=base-big-1M
run2=base-mid-500K
run3=base-small-100K
[runtime]
run1=1
run2=2
run3=1
total=8
[rundir]
rundir=/mnt

生成测试配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#! /bin/sh
unalias cp
i=0
rundir=`crudini --get run.ini rundir rundir`
total=`crudini --get run.ini runtime total`
while (( total > 0 ))
do
#echo $num
for runcase in `crudini --get run.ini runcase`
do
runtime=`crudini --get run.ini runtime $runcase`
for run in `seq $runtime`
do
i=$(( $i + 1 ))
#echo $run
myrun=`crudini --get run.ini runcase $runcase`
mytest=$myrun-$i
echo $mytest
mkdir runcase/$mytest -p
total=$(( $total - 1 ))
cp -ra $myrun runcase/$mytest/case.conf
sed -i "s#anchor=*,#anchor=${rundir}/${mytest},#" runcase/$mytest/case.conf
done
done

done

运行测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#! /bin/sh
vdbench=/root/vdbench50407/vdbench
unalias cp
i=0
rundir=`crudini --get run.ini rundir rundir`
total=`crudini --get run.ini runtime total`
while (( total > 0 ))
do
#echo $num
for runcase in `crudini --get run.ini runcase`
do
runtime=`crudini --get run.ini runtime $runcase`
for run in `seq $runtime`
do
i=$(( $i + 1 ))
#echo $run
myrun=`crudini --get run.ini runcase $runcase`
mytest=$myrun-$i
echo $mytest
total=$(( $total - 1 ))
dofile=runcase/$mytest/dodo
if [ ! -f "$dofile" ]; then
$vdbench -f runcase/$mytest/case.conf -o runcase/$mytest/output
touch runcase/$mytest/dodo
fi
done
done

done

总结

使用脚本就控制几个循环的执行,可以自定义不同的vdbench怎么去跑的,整体上操作难度较低,测试结果也分开保存了,数据也写到不同的目录

归档项目地址

https://e.coding.net/zphj1987/vdbench-generater/vdbench-generater.git