Стресс-тестирование приложения командной строки - PullRequest
2 голосов
/ 06 июня 2011

У меня есть сценарий Perl командной строки, который я хочу стресс-тест.По сути, я хочу запустить несколько экземпляров одного и того же сценария параллельно, чтобы я мог выяснить, в какой момент наша машина перестает отвечать на запросы.

В настоящее время я делаю что-то вроде этого:

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

и затем я проверяю ps, чтобы увидеть, какие экземпляры завершены, а какие нет.Есть ли какое-либо приложение с открытым исходным кодом, которое может автоматизировать этот процесс?Желательно с веб-интерфейсом?

Ответы [ 3 ]

3 голосов
/ 06 июня 2011

Вы можете использовать xargs для параллельного запуска команд:

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

Это будет запускать 100 экземпляров параллельно.

Для лучшей среды тестирования (включая параллельное тестирование через 'spawn')взгляните на Expect.

0 голосов
/ 07 июня 2011

С GNU Parallel это будет запускать одну прогу на ядро ​​ЦП:

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

Если вы хотите запустить 10 прог на ядро ​​ЦП, сделайте:

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

Просмотрите вступительное видео, чтобыузнать больше: http://www.youtube.com/watch?v=OpaiGYxkSuQ

0 голосов
/ 06 июня 2011

Почему бы не использовать crontab или Scheduled Tasks для автоматического запуска скрипта?

Вы можете написать что-нибудь для автоматического разбора выходных данных.

...