Поскольку этот вопрос все еще открыт, я мог бы также взвесить.
Хорошая новость заключается в том, что за последние 5 или около того лет инструменты с открытым исходным кодом действительно повзрослели и взлетели в космос, а плохие новости - их так много.
Вот мои мысли:
Jmeter против Grinder
Jmeter основан на спецификации стиля XML, созданной с помощью графического интерфейса.
Grinder использует Jython-скриптинг в многопоточной среде Java, поэтому больше ориентирован на программистов.
Оба инструмента будут обрабатывать HTTP и HTTPS и иметь прокси-рекордер для начала работы. Оба инструмента используют модель контроллера для управления несколькими агентами тестирования, поэтому масштабируемость не является проблемой (при наличии доступа к облаку).
Что лучше:-
Сложный вызов, так как кривая обучения сложна с обоими инструментами, поскольку вы попадаете в более сложные требования сценариев для переписывания URL-адресов, корреляции, предоставления уникальных данных для каждого виртуального пользователя и моделирования первых или возвращающихся пользователей (путем манипулирования заголовками HTTP).
Тем не менее, я бы начал с Jmeter, так как у этого инструмента огромное количество поклонников, и в Интернете есть много примеров и учебных пособий по использованию этого инструмента. Если и когда вы придете к «дорожному блоку», это то, что вы не можете «легко» сделать с помощью Jmeter, тогда взгляните на Grinder. Хорошей новостью является то, что оба эти инструмента имеют одинаковые требования к Java, и решение «смешать и сопоставить» не исключено.
Что-то новое для добавления - безголовые браузеры с несколькими экземплярами Selenium WebDriver.
Это относительно новый подход, поскольку он основан на доступности ресурсов, которые теперь можно предоставлять из облака. При таком подходе сценарий Selenium (WebDriver) берется и запускается в автономном браузере (т. Е. WebDriver = New HtmlUnitDriver ()) в нескольких потоках.
Исходя из опыта, в Amazon M1 Small Instance может быть выполнено около 25 экземпляров «безголовых браузеров».
Это означает, что все корреляции, проблемы с переписыванием URL-адресов исчезают, когда вы переназначаете свои сценарии функционального тестирования в сценарии тестирования производительности.
Масштабируемость нарушена, так как для управления нагрузкой потребуется больше виртуальных машин по сравнению с HTTP-драйвером, таким как Grinder или Jmeter. Тем не менее, если вы хотите управлять 500 виртуальными пользователями, то с 20 малыми инстансами Amazon (6 центов в час) по цене всего $ 1,20 в час вы получаете нагрузку, очень близкую к реальной работе пользователя.