Мне нужно протестировать сайт и то, как он обрабатывает несколько подключений одновременно. Каждый пользователь должен:
Мне нужно смоделировать около 200 таких пользователей. В идеале я хотел бы смоделировать 1000, а затем и 2000.
Как это сделать проще всего? Смогу ли я реально написать сценарий, который сделает это, или есть способ использовать для этого другие мои серверы? Я также слышал о людях, использующих EC2 для подобных вещей, но я думаю, что это немного выше моей головы.
Есть предположения?
** РЕДАКТИРОВАТЬ **
В ответ на комментарий ниже. Сайт есть очевидно сайт. Как в www.somedomain.com. Для проверки потребуется несколько человек, чтобы получить доступ к этому сайту, войти в систему с предоставленными учетными данными, а затем нажать, а затем сделать ставку на аукционах (это тип сайта с аукционом за пенни). Они делают ставки на аукционах, нажимая кнопку, и в ходе теста люди открывают страницы и делают ставки.
Во-первых: это не легко сделать правильно. На самом деле сложно даже найти людей, которые умеют это делать правильно ...
С учетом сказанного, вот несколько советов, основанных на моем опыте работы с нагрузочным тестированием и тестированием производительности для большого сайта.
Для этого есть профессиональные, дорогие инструменты. Один из них - Loadrunner, и его использует наш отдел тестирования. Это все, что я знаю об этом - я говорю тестировщикам, что они должны тестировать, а затем они делают это, пока я занят другой работой ...
Если вам не нужен профессиональный дорогой инструмент, вам нужно просто настроить сервер с 200 различными виртуальными IP-адресами (или 1000, или 2000). Затем вам нужна программа, которая выполняет множество одновременных подключений с этого сервера, каждое подключение с отдельного IP-адреса. Сервер следует разместить непосредственно на том же коммутаторе, что и сервер, который вы хотите протестировать. Причина этого размещения заключается в том, что при тестировании вы, по сути, притворяетесь целым Интернетом, и вам нужно быть уверенным, что трафик на самом деле не направляется в Интернет. Вам также необходимо иметь представление об общих шаблонах использования вашего веб-сайта. Если у вас их нет, вы все равно можете провести базовый нагрузочный тест, например, посещение трех случайных страниц, но результаты будут менее актуальны для вашего реального использования.
Есть несколько советов по программному обеспечению с открытым исходным кодом, чтобы сделать это в этот вопрос на StackOverflow. Но моя главная рекомендация - платить тому, кто этим занимается; это будет быстрее и, вероятно, дешевле, чем тратить собственное время.
Во-первых, если у вас нет схемы балансировки нагрузки или аутентификации на основе IP, то количество IP-адресов редко имеет значение при нагрузочном тестировании. На производительность подавляющего большинства фреймворков веб-разработки не влияет IP-адрес пользователей.
Но если предположить, что количество IP-адресов действительно важно для вашего случая, вам просто понадобится инструмент для нагрузочного тестирования, который может предоставить вам необходимое количество IP-адресов. 200 IP-адресов не так уж и сложно, так как вы можете получить такое количество в одной подсети на одной машине. Затем просто используйте инструмент, который будет использовать это (я подключу наш продукт - Тестер нагрузки, который имеет бесплатную LITE-версию, которую можно использовать для простых тестов и допускающую неограниченное количество одновременных пользователей).
Когда вам нужно сделать 1000 или 2000 пользователей, это просто увеличивает количество необходимых генераторов нагрузки и количество IP-адресов, которые вам нужно настроить для этих генераторов нагрузки.
Надеюсь, это поможет!