2009-03-26 3 views
1

Я бы хотел, чтобы тест производительности типичного веб-приложения. Приложение предлагает некоторые функции web2.0, такие как написание блогов, вики, поиск содержимого и что-то в этом роде. Я проанализировал журнал доступа и узнал о том, что пользователи делают очень часто.Какую методологию тестирования производительности вы используете для своих веб-приложений?

Разрыв в моем мозгу - как продолжить? Я thoght о следующей методике:

  • (А) разделить функциональность в транзакции (писать Блогпост, вид вики страницы и т.д.)
  • (В) запустить эти операции с все большее количество пользователей
  • (с) сделать некоторые доклады: «просмотр с аппаратным вики страницы х могут быть выполнены у пользователей одновременно, в то время как память ограничивающего Ressource»
  • (D), попытайтесь смешать несколько транзакций в один сценарий, который должен быть реалистичным отображением реального пользователя нагрузки
  • (E) запустить этот сценарий с увеличением пользователей, делая те же отчеты, как в C

Что делать вы думаете об этом и что вы используете?

ответ

1

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

Взгляните на watir (произносится как «вода»); он дает хорошее покрытие и очень scriptable.

+0

Этот вопрос касается не инструментов, а методологии. – Mork0075

+0

Методология без инструментов - это просто философия.Кроме того, то, что вы описываете, - это не столько «методология», сколько план тестирования, и даже при этом она довольно расплывчата. Я был бы готов поспорить, что вы приспособите свой план тестирования, когда поедете, и ваш выбор инструмента переведет ваши догадки о плане тестирования. – MarkusQ

+0

Я так не думаю. HP LoadRunner - инструмент выбора. Это абсолютно не зависит от того, как вырезать полную функциональность в репрезентативную выборку для достижения реалистичных прогнозов в отношении того, как приложение ведет себя под нагрузкой. То же самое с модульным тестированием, вы не можете что-либо проверить. – Mork0075

1

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

  • индекс чтения страницы: 30%
  • чтение страницы сообщений: 65%
  • создания комментариев: 4%
  • создание сообщений: 1%

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

Однако действительно важно не пропустить фактическое тестирование юзабилити. В стандартном динамическом веб-сайте thinsg начнет чувствовать себя медленным, если для загрузки страницы потребуется более половины времени. На сайте, поддерживающем AJAX, вы обнаружите, что увеличенное количество обратной связи, доступное для использования, дает им более высокий толерантность к задержке, и ограничения на то, что приемлемо, должны быть исследованы человеком, чтобы рассказать.

+0

Спасибо! У меня есть эти статистические значения из анализа лог-файла. Таким образом, вы бы поместили всю эту транзакцию (с их определенным распределением) в один сценарий и запустили ее? Будете ли вы также запускать отдельные транзакции, возможно, только чтение индексных сообщений с возможно 2000 пользователями. Это создает ценность? – Mork0075