Perl-скрипт для доступа к веб-странице - PullRequest
1 голос
/ 05 октября 2011

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

Вот код, который я пробовал с

#!c:\\perl\\bin
use strict;
use WWW::Mechanize;
my $url = "http://www.cpan.org";
my $searchstring = "WWW::Mechanize";
my $mech = WWW::Mechanize->new();
while (i == 60000)
{
$mech->get($url);
i++;
}

Но эти скрипты обращаются к URL-адресу 1 одновременно, ноМне нужен одновременный доступ.

Ответы [ 4 ]

6 голосов
/ 05 октября 2011

Вы можете использовать ab . Используйте параметры параллелизма (-c) и количества запросов (-n).

4 голосов
/ 05 октября 2011

Ваш код, как показано выше, даже не компилируется.Людям было бы намного легче помочь, если бы вы дали нам точный код, который вы используете, вместо того, чтобы набирать его заново и добавлять опечатки.

Чтобы компилировать ваш код, мне пришлось объявить$i и добавьте $ перед двумя вариантами использования i в вашей программе.Я закончил с этим:

#!/usr/bin/perl

use strict;
use WWW::Mechanize;
my $url = "http://www.cpan.org";
my $searchstring = "WWW::Mechanize";
my $mech = WWW::Mechanize->new();
my $i;
while ($i == 60000) {
  $mech->get($url);
  $i++;
}

Вы говорите, что цикл выполняется только один раз.Это не правда.Цикл не выполняется вообще.Условие в цикле $i == 60000.В первый раз, когда проверяется это условие, $i не определено, поэтому условие ложно и цикл пропускается.

Я думаю, что вы, вероятно, вместо этого хотели $i <= 60000.

Но, как указывает Аланвам будет гораздо лучше использовать существующий инструмент, такой как ab .

2 голосов
/ 05 октября 2011

Вы можете либо использовать сам Perl для запуска сценария 6000 раз параллельно , либо написать один (или, возможно, более одного) .BAT-файл или аналогичный сценарий Windows для запуска сценария perl.

Будьте внимательны, чтобы четко понять , как выполнять вещи в отдельном режиме под Windows .

(Конечно, вы должны удалить цикл while в исходном скрипте).

1 голос
/ 05 октября 2011

ab уже упоминалось, но это проверяет только корневую страницу (/) сайта. Мы нашли осада более полезной для репликации реальной нагрузки, так как мы смогли проверить длинный список URL-адресов (10 000 или около того), взятых из нашего журнала прямого доступа ...

...