Что такое Phantom

Phantom является приложением с открытым исходным кодом, которое может выступать в роли Web сервера, прокси сервера и генератора нагрузки c акцентом на высокую производительность, малое потребление ресурсов и точность выходных данных. Выпускается под лицензией LGPL, работает на операционной системе GNU Linux.

Особенности

Точные и прогнозируемые результаты измерений

Тестовый сценарий описывает подаваемую нагрузку с точностью до миллисекунды до байта передаваемой информации.

Сложные выходные данные собираются в простом формате

План теста и результат представляют собой плоские текстовые файлы, с которыми можно работать любым удобным способом.

Выходной результат содержит следующие данные:

  • Размер отправленной и полученной информации
  • Время потраченое на соединение, отправку, обработку запроса и получение ответа
  • Отслеживание ошибок как на транспортном уровне так и на уровне протоколов приложений.

Распределённость и маштабирование

Вы можете сгенерировать выходную нагрузку ~40K HTTP rps используя одну копию приложения(использующую дочерние процессы) на одном сервере

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

Возможность изменять и дополнять

Фантом имеет модульную структуру, что позволяет расширять базовый фукционал новыми протоколами, например таким как SSL.

Предпосылки

Аналогичные решения

Прямое сравнение нижеперечисленных программных продуктов с Фантомом не имеет смысла т.к. последний не обладает функционалом по работе с сущностями предметной области(протоколы уровня приложений), не занимается представлением данных в удобном для восприятия человеком виде и не решает вопросы централизованного хранения и организации доступа к полученным результатам, но это и не входит в его обязаности т.к. он - I/O Engine.

Свободно распространяемые

Ограничения

  • Сценарий теста и входные дынные формируются до начала теста, то есть, невозможно совершить следующие действия: сходить на сайт и получить куку в заголовке HTTP ответа, после чего, в том же тесте отправить запрос с этой кукой в заголовке.
  • Phantom не интерпретирует полученый JS код, не рендерит CSS стили, не выполняет запуск Flash приложений, все полученные данные записываются в плоский файл ответов.

Авторы

  • Евгений Мамчиц

Лицензия

Исходный код приложения распространяется под открытой лицензией LGPL.