Я отвечаю за тестирование корпоративного веб-приложения, которое сильно использует AJAX. Мне нужно создать систему, которая позволяет проводить непрерывные тесты без вмешательства человека. В настоящее время меня больше всего интересует тестирование нагрузки, но мне нужны те же сценарии, которые используются для генерации нагрузки, которая будет использоваться в функциональных тестах.
В настоящее время для проверки загрузки я использую grinder. Мы записываем скрипты, а затем обрабатываем их, чтобы обрабатывать, помимо прочего, асинхронные запросы. Эта система работает сейчас; однако сценарии деликатные, и я не могу их поддерживать во время нашего цикла разработки. Мне нужно иметь возможность "запускать браузер" с помощью языка программирования, который абстрагируется от деталей html и javascript, но он должен быть безголовым. Другими словами, если мое тестирование script ломается, оно должно представлять собой фактическое поломку приложения. Запуск firefox в xvfb не работает, поскольку firefox все еще использует слишком много ресурсов даже на безголовой машине Linux, работающей с xvfb. Я попробовал управлять firefox с помощью webdriver под безголовым сервером x.
Я работаю над HtmlUnit за несколько дней, так как это идеальное решение. Я писал HtmlUnit драйверы в Jython и, следовательно, я могу использовать их с дробильной машиной. К сожалению, я сталкиваюсь с ошибками javascript (это не настоящие ошибки в firefox/chrome/IE), и я думаю, что я нахожусь в конце пути для этого. В любом случае я хорошо знаю HtmlUnit, и мне действительно нужна альтернатива.
Я знаю, что есть другие решения (envjs и zombie.js); однако я не знаю, как развиты эти технологии, и я не хочу тратить еще одну неделю на тупик.
Насколько сложно было бы взять исходный код для Firefox или Webkit и прокомментировать все вызовы рендеринга /GUI и создать настоящий безголовый браузер? Это было сделано? Будет ли проще сделать это с чем-то другим? Честно говоря, я не могу понять, почему это уже не было сделано, поэтому я предполагаю, что это намного сложнее, чем я ожидаю.
Я предполагаю, что если я смогу получить поистине безмозглый браузер с разумными характеристиками производительности (у меня есть большой серверный флот, чтобы бросить эту проблему, но он не достаточно большой для реального firefox с графическим интерфейсом), тогда я буду установлен.