Скриптовый эталонный тест HTTP (предпочтительно в Python) - PullRequest
2 голосов
/ 15 февраля 2012

Я ищу хороший способ стресс-тестирования веб-приложения. В основном я ищу что-то вроде ab со скриптовым интерфейсом. В идеале я хочу определить некоторые задачи, которые имитируют различные действия в веб-приложении (зарегистрировать учетную запись, войти в систему, выполнить поиск и т. Д.), И инструмент запускает множество процессов, которые выполняют эти задачи *. В результате я хотел бы что-то вроде «среднее время запроса», «самый медленный запрос (на URI)» и т. Д.

*: Для того, чтобы быть независимым от клиентской полосы, я проведу тест этих тестов из некоторых экземпляров EC2, так что в идеальном мире инструмент уже будет поддерживать это - в противном случае я буду использовать скрипт boto .

Ответы [ 4 ]

10 голосов
/ 30 сентября 2013

Если вы знакомы с пакетом запросов Python, в locust очень легко писать нагрузочные тесты.

http://locust.io/

Я использовал его, чтобы написать все наши тесты перфорации в нем.

3 голосов
/ 15 февраля 2012

Вы можете посмотреть на эти инструменты:

  1. palb (Python Apache-Like Benchmark Tool) - инструмент тестирования HTTP с интерфейсом командной строки напоминает ab.
    В нем отсутствуют расширенные функции ab, но поддерживается несколько URL-адресов (из аргументов, файлов, стандартного ввода и кода Python).

  2. Multi-Mechanize - Структура тестирования производительности в Python
    Multi-Mechanize - это платформа с открытым исходным кодом для тестирования производительности и нагрузки.

    • Запускает параллельные скрипты Python для генерации нагрузки (искусственные транзакции) на удаленный сайт или службу.
    • Может использоваться для создания рабочей нагрузки для любого удаленного API, доступного из Python.
    • Отчеты о результатах испытаний сохраняются в формате HTML или JMeter-совместимом XML.

  3. Pylot (Python Load Tester) - Инструмент веб-производительности
    Pylot - это бесплатный инструмент с открытым исходным кодом для тестирования производительности и масштабируемости веб-сервисов.
    Он запускает нагрузочные тесты HTTP, которые полезны для планирования емкости, тестирования производительности, анализа и настройки системы.
    Pylot генерирует параллельную загрузку (HTTP-запросы), проверяет ответы сервера и создает отчеты с метриками.
    Наборы тестов выполняются и контролируются из графического интерфейса или оболочки / консоли.
    ( Pylot в GoogleCode )

  4. Шлифовальная машина
    Язык сценариев по умолчанию - Jython.
    Довольно компактный руководство по эксплуатации .

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

+ 1 для locust.io в ответе выше.

1 голос
/ 13 ноября 2012

Не забудьте FunkLoad , это очень легко использовать

1 голос
/ 16 февраля 2012

Я бы порекомендовал JMeter.

См .: http://jmeter.apache.org/

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

...