Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Codeception - работа с модулем VisualCeption

codeception
Теги: #<Tag:0x00007f7b60cea378>

(Александра Литвиненко) #1

Привет
Нужна помощь, с модулем VisualCeption.
Как установить картинку для сравнения? Что бы сравнивало не с последним скриншотом, а с мои указаным(с дизайном).


(Andrey Kurilov) #2

Сам не юзал, но планирую. Тоже интересно.
Судя по доке, в конфиге нужно прописать путь, откуда будут браться эталонные картинки

VisualCeption:
referenceImageDir: /home/codeception/referenceImages/ # Path to the reference folder (optional, standard is 
                                                      # <datadir>/VisualCeption/)

В самом тесте указывать имя картинки и элемент, с которым сравнивать.

$I->dontSeeVisualChanges( "image.png", "Locator" );

(Александра Литвиненко) #3

эт чуток не то
из докумментации.:
How it works

If no previous image exists the current image will be used fur future comparions. As an effect of this approach the test has to be run twice before it works.
Т.е только при выполнении теста два раза, он отрабатывает
не понимаю зачем и как и когда его юзать…
интересно сравнивать с дизайном, т.е который ты устанавливаешь заранее, а не в момент проходжения тестов.


(Andrey Kurilov) #4

хммм…читаю дословно…Если предыдущего изображения не существует, оно будет создано при будущем использовании. В таком случае нужно тест прогнать 2 раза.
Вроде бы все логично. Берем браузер, прогоняем первый тест - делается скриншот, с которым в дальнейшем будет работать тест. При повторном прогоне этот скриншот берется за оригинал и сравнивается с текущим видом страницы.
Здесь нужно понимать, что скриншот может быть сделан всей страницы полностью с учетом того, что страница может скролиться, а может и нет.
Таким образом, я бы сделал так: Прогнал тест первый раз, посмотрел скриншот, сравнил с оригиналом, понял разницу, подогнал оригинал под нужды теста.

Опишите ваши действия, что как получается, что вы делаете. А то сейчас мы обсуждаем сферического коня в вакууме :slight_smile:
У меня , к сожалению, сейчас нет возможности развернуть это, но, если не получится до вечера, то дома поэкспериментирую


(Александра Литвиненко) #5

все верно
у меня выходит раз запускаю, оно делает скрин, запускаю второй раз, выдает результат - разницу и как я понимаю,оно не сравнивает со скрином сделаным мес назад, оно сравнивает скрины сделаные ближайщее время(сегодня).
Конечно еще не делала для нескольких тестов одновременно,неясно как оно разбирается с каким скрином нужно сравнивать свежий скрин.
НО в моем понимани или хотелось, что б я закинула старничку с дизайном и при каждом прогоне сравнивание происходило с главным вариантом, а не скрином сделаным на n-ый раз при прогонке теста.
Если ошибаюсь тыкните носиком в то место)


(Andrey Kurilov) #6

может быть товарищ @davert нам сможет чем-то помочь? Ибо очень интересная штука, но скрин для сравнения хочется подсовывать самому и понимать, что он не меняется без нашего ведома.


(Александра Литвиненко) #7

@davert - не отвечает(

но мне подсказали, что такая концепция работы этого модуля может заключаться в следующем:

  • первый раз прогоняем на стейдже
  • делаем выкатку на прод
  • второй раз прогоняем тесты на проде
  • проверяем скрины со стейджа со скринами с прода
    такой вариант- валидный)