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