Я хотел провести стресс-тест на веб-сервере. Вот как я хочу это сделать.
У меня есть разные URL-адреса на моем веб-сервере. поэтому мне нужно использовать эти URL-адреса параллельно, со скоростью «n» попаданий в секунду для каждого URL-адреса.
какой инструмент для этого лучше всего подходит?
Ваш заголовок предполагает, что у вас есть jmeter, как я бы это сделал. Создайте план тестирования, в котором все URL-адреса в случайной группе с процентом, соответствующим вашей статистике использования (если у вас есть, в противном случае просто придерживайтесь равномерного распределения). Затем настройте пользователя на переход по страницам каждые n секунд (в зависимости от того, сколько текста на каждой странице, пользователи будут оставаться там от 4 до 40 секунд) и настройте его для увеличения до очень большого числа пользователей. Единственная проблема с jmeter заключается в том, что он иногда перегружает свой собственный хост, прежде чем перегрузит веб-сервер. Кроме того, вам нужно, чтобы машина, которую вы тестируете, и машина, с которой вы тестируете, находились в одном сегменте локальной сети, чтобы исключить возможность того, что пропускная способность влияет на ваши результаты.
Apache JMeter это бесплатный инструмент с открытым исходным кодом, это одно из самых мощных приложений для тестирования производительности, оно имеет графический интерфейс, обеспечивает поддержку нескольких протоколов, функции записи и воспроизведения, утверждения и инструменты отчетности из коробки, его можно расширить с помощью настраиваемых сэмплеров и плагины, множество существующих плагинов (см. список на http://jmeter-plugins.org/wiki/Start/ имеет большое сообщество.
Чтобы указать точную нагрузку в «запросах в секунду», вы можете использовать Таймер постоянной пропускной способности
Пытаться httperf
утилита.
Вот пример его использования:
httperf --hog --server foo.bar --num-conn 100 --ra 10 --timeout 5 --uri /test
Это 100 раз запрашивает у foo.bar URI / тест с фиксированной скоростью 10 соединений в секунду. Если вы хотите запросить разные URI, запустите несколько экземпляров httperf в параллельном режиме с разными параметрами --uri.