Что такое Phantom¶
Phantom является приложением с открытым исходным кодом, которое может выступать в роли Web сервера, прокси сервера и генератора нагрузки c акцентом на высокую производительность, малое потребление ресурсов и точность выходных данных. Выпускается под лицензией LGPL, работает на операционной системе GNU Linux.
Особенности¶
Точные и прогнозируемые результаты измерений¶
Тестовый сценарий описывает подаваемую нагрузку с точностью до миллисекунды до байта передаваемой информации.
Сложные выходные данные собираются в простом формате¶
План теста и результат представляют собой плоские текстовые файлы, с которыми можно работать любым удобным способом.
Выходной результат содержит следующие данные:
- Размер отправленной и полученной информации
- Время потраченое на соединение, отправку, обработку запроса и получение ответа
- Отслеживание ошибок как на транспортном уровне так и на уровне протоколов приложений.
Распределённость и маштабирование¶
Вы можете сгенерировать выходную нагрузку
~40K HTTP rps
используя одну копию приложения(использующую дочерние процессы) на одном сервереПроцессы генератора нагрузки могут работать параллельно и не зависят друг от друга, что позволяет маштабировать нагрузку горизонтально.
Возможность изменять и дополнять¶
Фантом имеет модульную структуру, что позволяет расширять базовый фукционал новыми протоколами, например таким как SSL.
Предпосылки¶
Аналогичные решения¶
Прямое сравнение нижеперечисленных программных продуктов с Фантомом не имеет смысла т.к. последний не обладает функционалом по работе с сущностями предметной области(протоколы уровня приложений), не занимается представлением данных в удобном для восприятия человеком виде и не решает вопросы централизованного хранения и организации доступа к полученным результатам, но это и не входит в его обязаности т.к. он - I/O Engine.
Свободно распространяемые¶
Проприетарные¶
Предоставляемые в виде сервиса¶
Ограничения¶
- Сценарий теста и входные дынные формируются до начала теста, то есть, невозможно совершить следующие действия: сходить на сайт и получить куку в заголовке HTTP ответа, после чего, в том же тесте отправить запрос с этой кукой в заголовке.
- Phantom не интерпретирует полученый JS код, не рендерит CSS стили, не выполняет запуск Flash приложений, все полученные данные записываются в плоский файл ответов.
Авторы¶
- Евгений Мамчиц