Как заставить Сикули работать в безголовом режиме

Если у нас есть безголовый тестовый сервер, на котором запущены sikuli (необходимы как настройки ubuntu, так и windows), как заставить его работать без физического монитора и желательно для максимально возможного разрешения экрана.

Ответы

Ответ 1

Я успешно получил сикули, работающие в режиме без голов (без подключения физического монитора)

Ubuntu: проверить Xvfb.

Windows: установите драйвер дисплея на машине (чтобы быть безголовым) от виртуальных пользователей, добавьте драйверы дисплея и используйте TightVNC для удаленного установки разрешения с другого компьютера.

Подробные инструкции для Windows 7

Предположим, что:

  • Машина A: быть безголовой машиной, windows 7, с готовым сервером vnc (например, TightVNC сервер.)
  • Машина B: будет использоваться для дистанционной настройки драйвера виртуального дисплея на машине A.

действия:

  • Загрузите гостевой файл virtualbox guest на файл A из здесь (для последней версии последней версии здесь и загрузите VBoxGuestAdditions_x.yziso) enter image description here
  • Извлечь файл iso (возможно, с winrar) в каталог (назовем его папкой D) enter image description here
  • с помощью командной строки cd в папку D
  • Извлечение драйвера

    -Чтобы извлечь 32-разрядные драйверы в "C:\Drivers", выполните следующие действия:

    • VBoxWindowsAdditions-x86/extract/D = C:\Drivers

    - для 64-битных драйверов:

    • VBoxWindowsAdditions-amd64/extract/D = C:\Drivers

    drivers extracted

  • Откройте диспетчер устройств my computer/manage

  • добавить оборудование enter image description here

  • List item

  • List item

  • List item

  • List item

  • List item

  • List item

  • <Т411 >

  • List item

  • List item

  • Перезагрузитесь и подключитесь к VNC viewer, теперь вы сможете изменять разрешение экрана enter image description here

другая ценная информация о launchpad.

Ответ 2

Я получил SikuliX, работающий в истинном безголовом режиме в GCE с клиентской системой Windows 2016. Для работы нужны клейкая лента и другие хитрости Rube Goldberg, но это можно сделать.

Проблема в том, что для GCE (и, возможно, для AWS и других клиентов Windows в облачной среде) у вас нет виртуального видеоадаптера и дисплея, поэтому, если нет открытого RDP-соединения с клиентом, у него нет экрана и SikuliX/OpenCV получит черный рабочий стол 1024x768, и потерпит неудачу.

Итак, вопрос в том, как создать RDP-соединение, не имея реального экрана в любом месте. Я сделал это с помощью Xvfb (виртуальный фрейм-буфер X Windows). Это требует второй виртуальной машины, хотя. Xvfb работает на Linux. Другая часть головоломки - xfreerdp 2.0. Версия 2.x требуется для совместимости с последними версиями Windows. 1.x входит в состав некоторых дистрибутивов Linux; 2.x может потребоваться собрать из исходников, в зависимости от того, какую версию Linux вы используете. Я использую CentOS, который требовал от меня создания собственного.

Команды для установки безголового сеанса RDP после установки кусков выглядят примерно так:

/usr/bin/Xvfb :0 -screen 0 1920x1080x24 &
export DISPLAY=:0.0
/usr/local/bin/xfreerdp /size:1920x1080 /u:[WindowsUser] /p:"[WindowsPassword]" /v:[WindowsTarget]

В нашей среде мы автоматизировали это как часть работы по сборке, начатой Jenkins. Чтобы это работало под ведомым устройством Jenkins, было также необходимо запустить ведомое устройство Jenkins как пользовательский процесс, а не как службу... это можно сделать, включив автоматический вход в систему с правами администратора и установив сценарий запуска ведомого устройства в качестве запуска (включено вход в систему).

Ответ 3

Для тех, кто хочет автоматизировать на машинах windows ec2, это сработало для меня: http://www.allianceglobalservices.com/blog/executing-automation-suite-on-disconnectedlocked-machines

В заключение я использовал RDC для подключения, поместил следующий код в пакетный файл на удаленный рабочий стол, дважды щелкнул его, и sikulix начал работать удаленно (одновременно ударил меня из RDC). Обратите внимание, что машины windows ec2 по умолчанию равны 1024x768, когда tscon берет верх, что может быть слишком маленьким, поэтому TightVnc можно использовать для увеличения разрешения до 1280x1024 перед запуском.

tscon.exe 0 /dest:console
tscon.exe 1 /dest:console
tscon.exe 2 /dest:console
tscon.exe 3 /dest:console
START /DC:\Sikulix /WAIT /B C:\Sikulix\runsikulix.cmd -d 3 -r C:\test.sikuli -f C:\Sikulix\log.txt -d C:\Sikulix\userlog.txt

Ответ 4

Знаете ли вы решение для Windows 10? Я сделал все, чтобы шаг 14 включался, но в последней стабильной VirtualBoxGuestAdditions (5.3.20) есть драйверы для Windows Vista и Windows 7. Они плохо работают с Windows 10 - на шаге 14 я получаю уведомление:

Windows cannot initialize the device driver for this hardware. (Code 37)

Ответ 5

@Амр Лотфи, как вы думаете, это будет работать с сервером Windows 2012 R2?