Тестирование производительности для существующего веб-приложения - Полезные инструменты? - PullRequest
6 голосов
/ 21 августа 2009

Я поддерживаю веб-приложение с проблемами производительности.

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

Selenium IDE делает то, что мне нужно для записи и воспроизведения действий, но я не нашел простого способа записи времени.

Есть ли хороший способ для записи и сравнения времени загрузки страницы с помощью Selenium? Есть ли лучший инструмент для использования вместо этого?

Ответы [ 7 ]

5 голосов
/ 21 августа 2009

Возможно, вы захотите взглянуть на BrowserMob (http://browsermob.com/).. Вы можете загрузить свои тестовые сценарии Selenium IDE и запустить их на своем сайте. Его основателем является создатель Selenium RC, Патрик Лайтбоди.

2 голосов
/ 21 августа 2009

Вкладка Net в Firebug может помочь вам измерить и выяснить, что именно влияет на время загрузки сайта. Вам даже не нужно иметь доступ к серверу, чтобы использовать его. YSlow Дает вам очень полезные советы по улучшению общей загрузки и восприятия указанного сайта. Лично я использую вкладку «Сеть», чтобы определить возможное время загрузки, может ли это быть большими изображениями, javascripts css или плохими задержками. Я никогда не слышал об автоматизированном инструменте для этого, AFAIK selenium помогает вам создавать интеграционные тесты, которые помогают вам гарантировать, что определенные части приложения работают должным образом, но я не уверен, можно ли его также использовать в качестве инструмента профилирования. Я надеюсь, что это помогает

2 голосов
/ 21 августа 2009

В зависимости от сложности вашего приложения вы можете использовать JMeter от ASF.

Это приложение для тестирования нагрузки, основанное исключительно на Java, с несколькими подключаемыми модулями для графического отображения, поддержкой протоколов, контроллерами, платформами отчетов и т.п. Вы можете выбрать, какие данные регистрировать, как их отображать, как выводить их в файл и так далее. Он даже поместит его в CSV или различные форматы на основе XML.

Это некрасиво, но выполнимо, если ваше приложение не перегружено JavaScript ... В нем нет виртуальной машины, способной его запускать, и вам придется делать такие вещи, как AJAX, используя хаки (такие как Regexes и ответы, созданные вручную. Icky) .) Это открытый исходный код, поэтому вы можете добавить дополнительные контроллеры, если вам это тоже нужно.

Тем не менее, для того, чтобы делать то, что вы хотите (записывать действия, воспроизводить, представлять график / сохранять результаты), этого должно быть достаточно.

0 голосов
/ 12 октября 2012

Вот простой инструмент, который работает: test_it . По сути,

  • ваши тестовые машины должны иметь .net 4.0
  • вы получаете двоичные файлы
  • используя fiddler вы проверяете HTTP-пакеты, которые передаются при выполнении сценариев тестирования
  • описать эти пакеты в текстовом файле параметров, используя простой синтаксис
  • укажите, сколько запросов в секунду вы хотите
  • запустить двоичные файлы
  • не забудьте следить за тестируемой машиной

Некоторая информация здесь: rextester

0 голосов
/ 30 декабря 2009

Я бы посмотрел на Фабан .

Прост в настройке и использовании для простого случая, подчеркивая одну страницу с помощью «feh».

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

0 голосов
/ 21 августа 2009

Я обычно измеряю время, затрачиваемое на каждый запрос, используя System.currentTimeMillis, и регистрирую его на уровне отладки в среде разработки и тестирования. Затем я запускаю селен или JMeter, а затем обрабатываю журналы, чтобы получить другую статистику. Я беру медленные запросы и продолжаю углубляться в них, чтобы увидеть, где медлительность и узкое место.

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

Производительность пользовательского интерфейса - совершенно другой зверь. Я в значительной степени полагаюсь на YSlow для этого.

0 голосов
/ 21 августа 2009

Чтобы ответить на этот вопрос, я хотел бы использовать IIS Resource Toolkit для нескольких вещей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...