压力测试命令行应用程序

时间:2011-06-06 13:06:29

标签: perl testing load stress-testing

我有一个命令行perl脚本,我想强调测试。基本上我想要做的是并行运行同一个脚本的多个实例,以便我可以弄清楚我们的机器在什么时候没有响应。

目前我正在做这样的事情:

$ prog > output1.txt 2>err1.txt & \
  prog > output2.txt 2>err2.txt &
  . 
  .
  .
  .

然后我检查ps以查看哪些实例已完成,哪些实例未完成。是否有任何开源应用程序可以自动执行此过程?优选使用网络界面?

3 个答案:

答案 0 :(得分:3)

您可以使用xargs并行运行命令:

seq 1 100 | xargs -n 1 -P 0 -I{} sh -c 'prog > output{}.txt 2>err{}.txt'

这将并行运行100个实例。

要获得更好的测试框架(包括通过'spawn'进行并行测试),请查看Expect。

答案 1 :(得分:0)

为什么不使用crontab或Scheduled Tasks自动运行脚本?

您可以编写一些内容来轻松自动解析输出。

答案 2 :(得分:0)

使用GNU Parallel,每个CPU核心运行一个prog:

seq 1 1000 | parallel prog \> output{}.txt 2\>err{}.txt

如果你想为每个CPU内核运行10个编程:

seq 1 1000 | parallel -j1000% prog \> output{}.txt 2\>err{}.txt

观看介绍视频以了解详情:http://www.youtube.com/watch?v=OpaiGYxkSuQ