Подтвердить что ты не робот

Альтернатива PhantomJS для тестирования

В настоящее время я пытаюсь создать небольшой набор тестов для CI (Hudson). Я написал сложный script, который динамически вызывает другие скрипты и заполняет данный элемент DIV.

Мои тесты Selenium работают для тривиальных примеров (загрузите www.google.com, найдите q-элемент и т.д.)

Но когда я пытаюсь запустить сложный тест, который работает с Firefox-Driver, в моем экземпляре PhantomJS он сработает. Выполняется segfault.

Мой вопрос: как я могу написать тесты для моего интерфейса JS, который работает на Hudson-Server, который работает (без головы).

Или есть способ отладки, что вызывает segfault?

4b9b3361

Ответ 1

Использование безглавых установок при использовании Xvfb в качестве виртуального буфера кадров (на машинах Linux, на которых размещаются узлы сетки). Закончилось использование этого и по умолчанию Firefox.

Ответ 2

Slimer.js похож на Phantom.js, но использует Gecko, а не Webkit.

http://slimerjs.org/

Ответ 3

Phantom - развивающийся продукт, и лишь относительно недавно он получил возможность интегрироваться с Selenium, так что вы, возможно, столкнулись с ним; вы пытались сообщить об этом разработчикам Phantom?

  • Альтернативы Phantom:

    Их не так много. Zombie - это тот, о котором я знаю, но Phantom - голова и плечи выше любого другого браузера без браузера.

    Вы также можете попробовать использовать безглавой виртуальный сервер для запуска любого из обычных веб-браузеров. (это также имело бы преимущество в том, чтобы быть более реальным испытанием, чем Phantom)

  • Альтернативы селену:

    Вы можете использовать Sahi как прямую замену Selenium. Он способен на одни и те же вещи, но работает совсем по-другому. Конечно, ваши тестовые скрипты нужно будет переписать.

    Phantom предназначен для сценариев, поэтому вам не нужно вообще использовать инструмент драйвера, такой как Selenium; вы могли бы просто script использовать его напрямую или использовать инструмент CasperJS для написания тестовых скриптов.

Ответ 4

jsdom - хорошая альтернатива, теперь она довольно зрелая.

https://github.com/tmpvar/jsdom/

Для тестирования без головы. Я не думаю, что это будет делать скриншоты, подобные phantomjs, так как у него нет вебкита или gekko renderer его чистого JS.

Я нашел это с phantomjs segfaults, и новая версия не будет создана. slimerjs на самом деле не безголовый, и его XULRunner, основанный на том, что FireFox просто упал, он не работает с моим текущим FF.

jsdom довольно круто, он начал работать как синтаксический анализатор XML и теперь имеет полный сетевой сервер и поддержку jQuery.

API - это не то же самое, что и phantomjs.