Нагрузочным тестированием веб-приложений не занимался. Нужно за неделю решить задачу.
Задача: веб-приложение типа вопрос-ответ. Пользователю приходит ссылка с его уникальным id. Пользователь открывает ссылку в браузере, выбирает радиобатон с ответом, кликает дальше пока не закончится опрос. База пользователей (ссылки в csv) есть.
Пользователей: ~3500
Чем можно смоделировать нагрузку?
1. LoadComplete из бесплатных до 50 vu. Стоит нереально для указанного кол-ва vu.
2. TestComplete из стареньких, крякнутых имеет модуль нагрузки, до 300 vu на одном хосте. Но для распределенного теста никто ставить не будет себе крякнутые версии, это штук 10 надо.
3. Смотрю в сторону JMeter. Имеются 2-3 машины i5/8GB/Window7. Вопросы:
3.1. Реально JMeter реализовать на данных машинах нарузку. Если нет, то сколько макс юзеров смогу нагрузить?
Наша новая версия RedwoodHQ 2.2 теперь не только для Java/Groovy, но и для Python и C#. Вы сможете легко установить и использовать framework не только для GUI automation используя Selenium но и для back-end тоже и запустить их на многих компьютерах, просмотреть историю результатов и даже не надо никакой модификации своего кода чтобы это всё работало вместе.
RedwoodHQ имеет ещё много других преимуществ над другими frameworks (типа Selenium Grid, Robot, Cucumber и.т.д.), вот 6 минутный ролик которой проходится по ним:
Имеется тест с использованием dataprovider. TestListener делает свой вывод успешных и проваленных тестов и выводит их в конце в краткой читабельной форме (нужен вывод только тестов и праметров их запуска)
public class TestListener extends TestListenerAdapter {
public void onTestFailure(ITestResult tr) {
failure_test.add(tr.getName().toString());
}
}
В конце в отчете выходит результат работы onTestFailure
Проваленные тесты
test_1 on [Test_1 passed=0 failed=0 skipped=0]
Чуть ниже после основного отчета появляется стандартный вывод со стеком ошибок
FAILED: test_1 on [Test_1 passed=0 failed=0 skipped=0]("login1 pass1 type1")
Как сделать вызов в методе onTestFailure чтобы вместе с именем test_1 on [Test_1 passed=0 failed=0 skipped=0] в отчет попадали и параметры запуска от dataprovider ("login1 pass1 type1")?