Я отвечаю за тестирование корпоративного веб-приложения, которое активно использует AJAX. Мне нужно создать систему, которая позволяет проводить непрерывные тесты без вмешательства человека. В настоящее время меня больше всего интересует тестирование нагрузки, но мне нужны те же сценарии, которые используются для генерации нагрузки, которая будет использоваться в функциональных тестах.Настоящий браузер без головы
В настоящее время для проверки нагрузки я использую grinder. Мы записываем скрипты, а затем обрабатываем их, чтобы обрабатывать, помимо прочего, асинхронные запросы. Эта система работает сейчас; однако сценарии деликатные, и я не могу их поддерживать во время нашего цикла разработки. Мне нужно иметь возможность «запускать браузер» с помощью языка программирования, который абстрагируется от деталей html и javascript, но он должен быть безголовым. Другими словами, если мой скрипт тестирования ломается, он должен представлять собой фактический поломка приложения. Запуск firefox в xvfb не работает, поскольку firefox все еще использует слишком много ресурсов даже на безголовой машине linux, работающей с xvfb. Я попробовал управлять firefox с помощью webdriver под безголовым сервером x.
Я работаю над HTMLUnit в течение нескольких дней, так как это идеальное решение. Я пишу HTMLUnit драйверов в Jython, и поэтому я могу использовать их с мясорубкой. К сожалению, я сталкиваюсь с ошибками javascript (это не настоящие ошибки в firefox/chrome/IE), и я думаю, что я нахожусь в конце пути для этого. В любом случае я хорошо знаю HtmlUnit, и мне действительно нужна альтернатива.
Я знаю, что есть некоторые другие решения (envjs и zombie.js); однако я не знаю, как развиты эти технологии, и я не хочу тратить еще одну неделю на тупик.
Насколько сложно было бы взять исходный код для Firefox или Webkit и прокомментировать все вызовы рендеринга/графического интерфейса и создать настоящий безголовый браузер? Это было сделано? Будет ли проще сделать это с чем-то другим? Честно говоря, я не могу понять, почему это уже не было сделано, поэтому я предполагаю, что это намного сложнее, чем я ожидаю.
Я предполагаю, что если я смогу получить поистине безмозглый браузер с разумными характеристиками производительности (у меня есть большой серверный флот, чтобы бросить эту проблему, но он недостаточно велик для реального firefox с визуализацией GUI), тогда я буду установлен ,
Рассматривали ли вы использование коммерческого сервиса, такого как BrowserMob (http://browsermob.com/performance-testing) или Gomez (http://www.gomez.com/products-solutions/products/load-testing/). Хотя и не дешево, кажется, проще, чем пытаться взломать Firefox/Webkit. –
Я действительно не изучал эти услуги, но я слышал о них. Я увлечен тем, что собираю систему в доме, желательно с использованием технологии с открытым исходным кодом. У нас много тестовых серверов, и я действительно хочу их использовать. Спасибо за предложение. – user573225