Настоящий безголовый браузер

Я отвечаю за тестирование корпоративного веб-приложения, которое интенсивно использует AJAX. Мне нужно создать систему, позволяющую проводить тесты без вмешательства человека. В настоящее время меня больше интересует нагрузочное тестирование, но я хочу, чтобы в функциональных тестах использовались те же скрипты, которые используются для генерации нагрузки.

В настоящее время для нагрузочного тестирования я использую измельчитель . Мы записываем сценарии, а затем обрабатываем их, чтобы обрабатывать, помимо прочего, асинхронные запросы. Эта система работает на данный момент; однако сценарии хрупкие, и я не могу поддерживать их в течение цикла разработки. Мне нужно иметь возможность «запускать браузер» с помощью языка программирования, который абстрагируется от деталей html и javascript, но должен быть безголовым. Другими словами, если мой тестовый сценарий ломается, это должно означать фактическую поломку приложения. Запуск firefox в xvfb не работает, поскольку firefox по-прежнему использует слишком много ресурсов даже на безголовой Linux-машине, работающей с xvfb . Я попробовал запустить firefox с webdriver под безголовым сервером x.

Я работал над HTMLUnit несколько дней, так как это идеальное решение. Я писал драйверы HTMLUnit в Jython и, следовательно, могу использовать их с измельчителем. К сожалению, я сталкиваюсь с ошибками javascript (которые не являются настоящими ошибками в firefox / chrome / IE), и я думаю, что я в конце пути к этому. В любом случае я хорошо знаю HtmlUnit и мне действительно нужна альтернатива.

Я знаю, что есть и другие решения ( envjs и zombie.js ); однако я не знаю, насколько развиты эти технологии, и не хочу тратить еще одну неделю на то, чтобы зайти в тупик.

Насколько сложно было бы взять исходный код для Firefox или Webkit и закомментировать все вызовы рендеринга / графического интерфейса пользователя и создать настоящий безголовый браузер? Это было сделано? С одним будет легче сделать это, чем с другим? Честно говоря, я не могу понять, почему это еще не было сделано, поэтому я предполагаю, что это намного сложнее, чем я ожидал.

Я предполагаю, что если я смогу получить действительно безголовый браузер с приемлемыми характеристиками производительности (у меня большой сервер флот, чтобы решить эту проблему, но его недостаточно для реального firefox с графическим интерфейсом), тогда я буду настроен.

16
задан vaxquis 14 August 2017 в 14:42
поделиться