Запуск тестов RobotFramework с библиотекой Sikuli с Jenkins на виртуальной машине (RDC)

У меня есть тесты автоматизации на основе RobotFramework с SikuliLibrary, которые предназначены для сравнения изображений. Я использую Jenkins для запуска тестов на внешнем сервере (VM). Если я открываю виртуальную машину, скрипт сравнения изображений работает. Скриншот создан.

Если я закрою сеанс виртуальной машины и запущу тест, возникнет проблема. Вот журнал по ключевому слову «Получить оценку соответствия»:

INFO Could not find C:\Images\image.png INFO ${scoreFromImage} = 0.0

Похоже, когда сеанс виртуальной машины не активен (открыт), «Получить счет матча» не может сделать снимок из браузера для сравнения.

Есть идеи, как это исправить?

Код:

Compare Process Diagram Image [Arguments] ${ImageName} ${ImageScore} ${scoreFromImage} = Get Match Score ${ImagesDirectory}${ImageName}.png ${scoreToString} = Convert To String ${scoreFromImage} ${scoreNumberPrecision} = Get Substring ${scoreToString} 0 6 Run Keyword If ${scoreNumberPrecision} == ${ImageScore} Log Successful ELSE Log Fail


person Rumen    schedule 12.10.2016    source источник
comment
Я думаю, что интересная часть — это не столько RF и Get Match Score, сколько код, который создает снимок. Используете ли вы RF с selenium2library и пытались ли вы использовать Xvfb в своей работе Jenkins?   -  person Würgspaß    schedule 12.10.2016
comment
Да, я использую selenium2library, а ключевое слово для создания моментального снимка — SikuliLibrary.Get Match Score. Насчет Дженкинса и Xvfb - нет, не пробовал.   -  person Rumen    schedule 12.10.2016
comment
Тогда я бы попробовал: wiki.jenkins-ci.org/display/ JENKINS/Xvfb+Plugin Нет скриншота без экрана, звучит разумно для меня.   -  person Würgspaß    schedule 12.10.2016
comment
Ааа, теперь новая проблема: "Система не Unix, Xvfb не запустится". Я использую Windows.   -  person Rumen    schedule 12.10.2016
comment
Я думаю, это зависит от того, как прикреплен ваш раб Дженкинса. Если в качестве службы Windows есть параметр, разрешающий доступ к рабочему столу или запускающий службу от имени конкретного пользователя. Это может помочь.   -  person izzekil    schedule 14.10.2016
comment
Да, у меня есть сервис Jenkins Slave at C:\hudson. Вы имеете в виду, что я должен настроить во вкладке «Вход»? На данный момент проверено: Local System Account -> Allow service to interact with desktop.   -  person Rumen    schedule 18.10.2016


Ответы (2)


Решено:

ВМ не должна быть закрыта кнопкой "X". Правильный способ: https://support.microsoft.com/en-us/kb/302801 У меня есть .bat файл, который содержит tscon.exe %SESSIONNAME% /dest:console, после запуска - виртуальная машина корректно закрывается. Также должна быть запущена «Jenkins slave jar».

person Rumen    schedule 24.10.2016

Запуск Sikuli Test на виртуальной машине возможен, но необходимо держать сеанс открытым. Мы не можем запустить скрипт Sikuli на заблокированном ПК. Когда вы закрываете виртуальную машину, она блокируется, и тест не запускается. Sikuli нужны изображения для сравнения и нажатия, если сеанс заблокирован, изображений нет, поэтому тест не запускается. Итак, как мы преодолеваем это? : https://support.smartbear.com/viewarticle/85926/

обратитесь к этому URL-адресу для настройки. Применив это, вы можете запустить sikuli Test с свернутым окном виртуальной машины. (По-прежнему вы не можете закрыть окно WM)

person Umesh    schedule 14.10.2016
comment
Хм, хорошая мысль, но да - я все еще не могу использовать тест, когда моя виртуальная машина закрыта. - person Rumen; 18.10.2016
comment
Я нашел решение, ответ ниже :) - person Rumen; 24.10.2016