В Части 1, я объяснял как запустить Xvfb для того чтобы получить виртуальный дисплей на котором работали бы графические приложения. В этом посте я проверю его работу с помощью запуска xclock и сделав его скриншот. Возможность сделать скриншот виртуального дисплея сама по себе довольно важна. Для того, чтобы сделать и просмотреть скриншот вы используете две разные программы: xwd и xwud. Первая сделает скриншот, а вторая покажет его. Они должны быть установлены на вашем X сервере (я так думаю).
Сначала, запустите xclock на системе, где работает Xvfb с xclock -display :5.0 так, что он будет работать на виртуальном дисплее. Далее, также на системе с Xfvb, сделайте скриншот с
{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }xwd -root -display :5.0 -out xwdout{/syntaxhighlighter}
Последовательность:
-
-root
Указывает xwd фиксировать "root" окно. Это означает, что он фиксирует весь экран полностью. Если вы хотите, вы можете дать команду фиксировать только определенное окно. Смотрите параметры -id и –name на странице справочника man, если хотите попробовать эту операцию.
-
-display :5.0
Указывает xwd смотреть на экран 0 дисплея 5. Именно поэтому вам необходимо знать эту информацию при запуске Xvfb!
-
-out xwdout
Дает название файла вывода для записи скриншота. Xwd использует обычный бинарный формат для своих файлов. Прочитать их можно с помощью xwud (следующий), и я так понимаю, что их можно конвертировать в другие форматы с помощью ImageMagick (бесплатно!), хотя сам еще не пробовал.
После того как вы сделали скриншот, вам нужно открыть файл вывода на системе где работает реальный X сервер, так чтобы вы могли увидеть изображение. Для этого подойдут ftp или sftp, scp, или старый добрый Sneakernet. В конце-концов, посмотреть скриншот, который вы сделали: xwud -in xwdout. Таким образом, показывается изображение, сохраненное в файле под названием xwdout. Оно должно открыться в окне, где вы увидите маленький xclock, показывающий время, когда был сделан скриншот. Кликните на любое место в окне, чтобы закрыть его.
На этом этот пост завершен. В Части 3: как заставить Hudson, Selenium, и ваши надстройки работать со всем чему вы научились.