当前位置: 技术问答>linux和unix
求助,帮忙写段脚本
来源: 互联网 发布时间:2017-01-08
本文导语: flazr + shell 进行性能测试。 shell没怎么用过,所以寻求帮助。 flazr带参数脚本, 命令行形式是 ./client.sh -load 100 -threads 100 -host -app masvod/private 2011/09/test.flv 只读取一个视频,如果是100个视频,如何循环随...
flazr + shell 进行性能测试。 shell没怎么用过,所以寻求帮助。
flazr带参数脚本, 命令行形式是 ./client.sh -load 100 -threads 100 -host -app masvod/private 2011/09/test.flv
只读取一个视频,如果是100个视频,如何循环随机读取呢?
随机取视频,将被测视频读入文件或内存,赋值后用awk产生随机数,最后利用这个随机数再去读视频就行了?
高人能不能帮忙写段完整的脚本,谢谢
flazr带参数脚本, 命令行形式是 ./client.sh -load 100 -threads 100 -host -app masvod/private 2011/09/test.flv
只读取一个视频,如果是100个视频,如何循环随机读取呢?
随机取视频,将被测视频读入文件或内存,赋值后用awk产生随机数,最后利用这个随机数再去读视频就行了?
高人能不能帮忙写段完整的脚本,谢谢
|
这个也选择随机文件进行测试,产生随机数方法何其多,不是必需用awk,用rand就行了;
为什么一定要将flv文件名导入文件呢,直接用数组存储不就行了;若实在太多的话,导入文件
后,然后就一行一行读取(每行就是一个flv文件名),若要产生随机的效果,主要工作也是
判断在读取(准确地说是 跳过)了多少行之后才break,写了个,参考下:
比如当前文件夹下有如下内容:
xxx$ ls
pressure_test.sh test1.flv test2.flv test3.flv test4.flv test5.flv
执行下看看:
. 下总共有 5 个flv文件。
按下ctrl+c结束测试……
即将用test1.flv进行测试……
即将用test4.flv进行测试……
即将用test5.flv进行测试……
即将用test4.flv进行测试……
即将用test3.flv进行测试……
^C
为什么一定要将flv文件名导入文件呢,直接用数组存储不就行了;若实在太多的话,导入文件
后,然后就一行一行读取(每行就是一个flv文件名),若要产生随机的效果,主要工作也是
判断在读取(准确地说是 跳过)了多少行之后才break,写了个,参考下:
#!/bin/bash
# pressure_test.sh
# 设置存放.flv文件夹的路径(默认当前路径)
flv_dir_path=.
# 初始化随机数种子,或者将其设置为某个数字,这样产生的随机数就是相同的
rand_seed=$(date +%s)
declare -a flv_arr
i=0
for tmp_flv in `ls $flv_dir_path`
do
file_suffix=${tmp_flv##*.}
if [ $file_suffix = "flv" -o $file_suffix = "FLV" ]; then
flv_arr[i++]=$tmp_flv
fi
done
if [ $i -eq 0 ]; then
echo "$flv_dir_path 下未找到flv文件。"
exit 1
else
echo "$flv_dir_path 下总共有 $i 个flv文件。"
fi
echo "按下ctrl+c结束测试……"
rand -s $rand_seed > /dev/null 2>&1
while true
do
k=$(expr $(rand) % $i)
echo "即将用${flv_arr[$k]}进行测试……"
# 把你的那条测试命令添加进来
# 例如:
# ./client.sh -load 100 -threads 100 -host -app masvod/private $flv_dir_path/${flv_arr[$k]}
# 说明:${flv_arr[$k]}就是随机选择到的flv文件
# 这里用sleep 2来模拟测试过程
sleep 2
done
比如当前文件夹下有如下内容:
xxx$ ls
pressure_test.sh test1.flv test2.flv test3.flv test4.flv test5.flv
执行下看看:
. 下总共有 5 个flv文件。
按下ctrl+c结束测试……
即将用test1.flv进行测试……
即将用test4.flv进行测试……
即将用test5.flv进行测试……
即将用test4.flv进行测试……
即将用test3.flv进行测试……
^C