Есть ли способ имитировать около 1000 посетителей, обращающихся к нашему серверу? Мы полностью переписали и реструктурировали приложение. У нас был очень оптимизированный сервер Tomcat, и мы переходим на внутренний сервер Glassfish с интерфейсом Apache.
Сейчас мы находимся на стадии «бета-тестирования», но лишь некоторые из наших пользователей активно ее используют. У нас 30-40 тысяч пользователей в день (возможно, максимум 1000 в любой момент времени). Когда мы работаем на полную мощность с новой настройкой, мы не хотим, чтобы она давала сбой или перегружалась из-за определенных узких мест.
В принципе, есть ли какие-нибудь инструменты тестирования, которые мы можем использовать для имитации определенного количества обращений к определенным URL-адресам?
Если вы уже используете AWS, это довольно удобное решение:
http://blog.apps.chicagotribune.com/2010/07/08/bees-with-machine-guns/
Нам было нужно решение, которое позволило бы нам использовать несколько топографически близких клиентов для одновременной атаки трафика на наши серверы.
Пчелы с автоматами - это сценарий ткани, который я собрал для агрессивного нагрузочного тестирования наших сайтов. Он предоставляет методы для раскрутки армии экземпляров EC2 (пчел), нападения на целевой сервер с настраиваемым объемом трафика, а затем откручивания этих экземпляров обратно.
Просто хотел дать вам несколько советов при выполнении нагрузочного тестирования (правильное тестирование уменьшит количество плохих новостей в ближайшем будущем).
Что я испытал, так это то, что при моделировании «реальных» пользователей веб-службы используйте для этого «настоящие» инструменты. Такие как Селен, Ватир или Каркас робота.
Зачем? Проще говоря: эти инструменты будут моделировать актуальные браузеры с участием все включено, а не просто несколько JMeter GET / POST-запросов к вашему серверу. Я также большой поклонник тестов запросов JMeter'ish, но вы должны знать пределы. JMeter великолепен, когда вы уже обнаружили некоторые узкие места. Как я понял, вы еще не уверены, что они есть.
JMeter не настоящий браузер, как сказано в документации jmeter:
JMeter - это не браузер
JMeter - это не браузер. Что касается веб-сервисов и удаленных сервисов, JMeter выглядит как браузер (а точнее, как несколько браузеров); однако JMeter не выполняет все действия, поддерживаемые браузерами. В частности, JMeter не выполняет Javascript, найденный на страницах HTML. Он также не отображает HTML-страницы, как это делает браузер (можно просмотреть ответ как HTML и т. Д., Но время не включено ни в какие образцы, и одновременно просматривается только один образец в одном потоке). (источник: http://jmeter.apache.org)
Просто хотел отметить, что иногда после нагрузочного тестирования вы все равно можете обнаружить, что система ведет себя иначе, даже если мы правильный нагрузочное тестирование. Иногда люди склонны забывать, что пользователь с браузером делает массу вещей под капотом, и это также является трафиком / нагрузкой с точки зрения веб-сервера.
Просто говорю.