Как может я правильно нагрузочный тест новый компонент на веб-сервере?

Мы реализуем новое решение в нашей классической среде ASP, которую это использует взаимодействующий с COM для instatiate компонент.NET, чтобы сделать некоторую работу. Решение работает отлично, и наш руководитель группы хочет удостовериться, что оно будет работать хорошо при загрузке, так как это - первый раз, когда мы будем работать с компонентами.NET на нашем сайте.

Что я должен рассмотреть, чтобы сделать надлежащий тест, чтобы удостовериться, что новый код, который я представил, не повредится при загрузке?


Что я уже делаю:

Я сделал простую веб-страницу asp, которая называет новое компонентно-ориентированное на информации в строке запроса. Строка запроса также имеет "от переключателя" параметр, таким образом, я могу протестировать страницу без компонента как значение по умолчанию. Сама страница пуста за исключением возвращения значения, которое представляет, имел ли компонент успех, отказавший, или был пропущен.

Я записал простое консольное приложение, которое использует HttpWebRequest выполнять повторяющиеся вызовы к ASP-странице с помощью уникальных данных из базы данных по каждому вызову. Все это делает и проверяет значение, которое возвращает страница, и сохраните данные.

Я затем развернул консольное приложение на четырех различных ПК на нашей внутренней сети. В одном тесте я настроил один экземпляр приложения на каждом из компьютеров, и в другом экземпляре, я настроил пять экземпляров приложения на каждой машине и настроил их ко всем, начинают поражать сервер разработки одновременно. Каждый экземпляр приложения выполнил 150 повторяющихся запросов к веб-серверу.

Для каждого сценария (один экземпляр на каждой машине и пять экземпляров на мне каждая машина), я запустил тест дважды, однажды без компонента, называемого, и однажды с называемым компонентом. В обоих сценариях производительность с называемым компонентом сопроводила в 2.2 раза более длинный для завершения запроса чем тогда, когда компонент не назвали. Мы думали, что это не было очень дорогим рассмотрением amound обработки, которую мы делали и количество поездок, совершенных в базу данных для обновления данных. Кроме того, потому что 2.2x отношение казалось consisent и в сценарии, где мы поражаем сервер 4 параллельными соединениями и когда мы поражаем сервер 20 параллельными соединениями, это, кажется, работает хорошо.

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

1
задан Ben McCormack 26 July 2010 в 13:23
поделиться

2 ответа

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

Ключом к тому, что вы пройдете или не пройдете тест, должно быть не «Правильно ли соотношение времени до завершения?», А «Нормально ли общее время отклика по сравнению с заданной нагрузкой?». Поэтому сравнение с новым компонентом уместно.

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

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

1
ответ дан 2 September 2019 в 22:45
поделиться

Есть такие компании, как Push-to-Test и Gomez, которые мы использовали, чтобы доказать, что крупномасштабные приложения будут работать. Оба имитируют большое количество пользователей, которые проходят указанный путь через ваше приложение. (В случае с Gomez у них есть компьютеры реальных пользователей, за которые они платят гроши владельцам за запуск тестов.) Они могут моделировать тысячи одновременных пользователей, а также предоставлять другие услуги, такие как мониторинг времени безотказной работы.

Обе услуги являются платными, но программное обеспечение Push-to-Test основано на Selenium, поэтому вы можете создать (или найти) платформу для нагрузочного тестирования, основанную на этом.

1
ответ дан 2 September 2019 в 22:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: