2014-10-22 3 views
3

У меня есть несколько тестов Behat, что делать скриншоты используя что-то похожее на это:Behat на Windows - принимая скриншоты

$driver->getWebDriverSession()->screenshot(); 

Кто-нибудь знает о Behat плагин или расширение, которое может сравнить два скриншота? И он должен работать на Windows.

ответ

0

Я уже давно работаю с Behat, и это, безусловно, не так популярно, как должно быть. Там не так много популярных плагинов из любой команды, кроме Behat's, и определенно нет известного/хорошо поддерживаемого плагина для Behat для сравнения изображений. На самом деле это верно и для PHP, за исключением GD и Imagic, которые имеют гораздо более широкий охват.

Кроме того, логика не очень понятна, что и как вы сравниваете. Скриншоты обычно принимаются при сбое. Сравнение двух скриншотов неудачных тестов не имеет особого смысла, только сравнивая скриншоты неудачных тестов с скриншотами соответствующих тестов, которые ранее проходили. Тогда возникает вопрос, где и как вы получите эти действительные скриншоты, а также целую цепочку других вопросов.

Это звучит как очень сложная задача, и я уверен, что только ограниченная группа пользователей потребует чего-то подобного, вероятно, с большим количеством логики, уникальной и специфичной для их случая. С другой стороны, реализовать базовое сравнение изображений в PHP не так сложно, учитывая, что у вас есть базовые навыки работы с графикой в ​​PHP.

Одна вещь, которая приходит на ум, это Imagick::compareImages, см. Официальный documentation. Там также, кажется, много сообщений в блоге, например this один или this один, который показывает разные способы сделать это.

1

Что вы ищете является расширение Pdiff: для окон, это, вероятно, выглядит следующим образом: http://seleniumrecipes.com/content/using-perceptual-difference-pdiff-tool

Скриншоты, безусловно, не «только взят на провал», - вы, конечно, можете взять базовый набор скриншотов и использовать инструмент, такой как https://github.com/jadu/BehatPerceptualDiffExtension, чтобы пропустить тест, если возникающая разница восприятия отличается (т. е. если изменение css превзошло неожиданным образом).

Этот вид вилки (https://github.com/ksenzee/BehatPerceptualDiffExtension/commits/master) PerceptualDiffExtention добавляет концепцию diff-масок - то есть регионов, которые вы хотели бы игнорировать - например, если у вас было какое-то слайд-шоу, скриншот может показать сбой, потому что случайный стартовый слайд другой.

Кроме того, автор недавно дал беседу об использовании перцептивных различий с Behat: http://2014.pnwdrupalsummit.org/pacific-nw-drupal-summit-2014/sessions/deploying-confidence-automated-visual-regression-and, поэтому есть некоторые слайды, которые вы могли бы использовать в качестве ресурса.