Как я могу подключиться по ssh к сеансу vncserver

Я хочу запустить тесты веб-страницы, он будет использовать selenium для запуска теста в Firefox.

А пока я хочу использовать программу просмотра vnc, чтобы увидеть ход выполнения тестов.

Но я не хочу вводить команды в программе просмотра vnc. Могу ли я подключиться к сеансу vnc по ssh, чтобы запустить тест через шпатлевку или другие клиенты ssh.

Например, если я наберу команду firefox, я увижу открытие браузера в средстве просмотра.

Спасибо


person user3675188    schedule 14.07.2015    source источник
comment
Я не совсем уверен, что правильно понял ваш вопрос, но почему бы просто не подключиться к машине по ssh?   -  person ford prefect    schedule 19.08.2015


Ответы (1)


Предупреждение о длинном посте!

Вот что, я думаю, вы спрашиваете:

  • You have an instance of a vnc server running on selenium.
    • This instance is controlled by something either a script on selenium, or some other vnc client.
    • Этот экземпляр имеет виртуальный буфер кадров и сеанс xwindows, на котором вы можете запустить свой тест.
  • Then you want two kinds of connections
    • A command entry capability, like ssh into a shell on the terminal of the x-session on the selenium box
    • Возможность просмотра из системы на основе Putty, которую вы можете запускать и останавливать, не влияя на работу программ в Selenium Box. Я предполагаю, что средство просмотра - это система Windows, потому что на ней работает шпатлевка.

Для этого вам нужно настроить четыре вещи.

1) Сессия на селеновом ящике; 2) Туннели VNC на основе Putty 3) сеанс управления VNC и 4) сеансы просмотра.

1) Вам нужен сеанс Xvnc на Selenium Box. Вы захотите запустить его с помощью vncserver, потому что он будет делать многое вещей для вас. Выберите неиспользуемый порт vnc (они находятся в диапазоне 5900 + отображаемый номер). Вы указываете номер отображения (например,, :2), геометрию (я обнаружил, что мне также нужно указать глубину) и для безопасности аргумент localhost.

Это делает команду примерно такой:

vncserver :2 -geometry 1280x1024 -depth 24 -localhost -AlwaysShared

Если вы запускаете эту команду впервые, она запросит у вас пароль, и по умолчанию этот пароль будет использовать одностороннее шифрование и храниться в вашем домашнем каталоге ~/.vnc/passwd. (Проверьте необходимые разрешения на справочных страницах.) Опять же, если это ваш первый раз, сценарий vncserver также установит еще 1 файл и при каждом запуске будет создавать два новых файла: (.log и .pid).

  • xstart это сценарий оболочки, который запускает сеанс x в виртуальном буфере кадров. Было бы полезно, если бы кто-нибудь мог дать ссылку на это - это обидчиво и, кажется, отличается в каждой системе. Это сложно при использовании файлов, которые находятся вне вашего домашнего каталога. Я рекомендую иметь другого пользователя, в пространстве которого вы можете запускать эти тесты. У вас гораздо больше шансов добиться успеха с файлом xstart, предоставленным vncserver.
  • hostname:session.log содержит вывод команд из сценария xstart. Это может быть удобно, чтобы выяснить, что происходит не так.
  • hostname:session.pid содержит идентификатор процесса сервера Xvnc, чтобы vncserver -kill :2 знал, кого убить.

2) Вам необходимо настроить туннели Putty. Putty может подключаться с помощью ssh к удаленному блоку Selenium. Звучит так, как будто вы использовали это раньше, поэтому я просто покажу, как сделать туннели от локального хоста к серверу. Эти два изображения ниже являются экранами конфигурации Putty, чтобы сделать так, чтобы у вас были туннели.

Putty -> конфигурация -> SSH -> Auth (где вы указываете, где находится ваш закрытый ключ.

Putty -> конфигурация -> SSH -> Аутентификация (где вы указываете, где находится ваш закрытый ключ)></a></p>

<p>Здесь вы вводите имена портов для туннелей — записи настроены на добавление удаленного: 5902 ‹-> localhost: 5901</p>

<p><a href=Здесь вы вводите имена портов для туннелей — записи настроены на добавление удаленного: 5902 ‹-› локального хоста: 5901

3) Настройте управляющее соединение. У вас есть два варианта.

  1. Вы можете установить переменную отображения в терминале Putty.

bash % export DISPLAY=:2
bash % firefox &

  1. Как только у вас будут запущены и запущены туннели, вы можете подключить как ваш командный клиент vnc, так и клиент vnc для просмотра. Я использую tightVNC в Windows, и он отлично работает. Обратите внимание, что вместо того, чтобы указывать имя удаленного хоста в tightvnc, вы указываете соединение localhost:2, как показано на рисунке ниже:

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

используйте красную кнопку конфигурации, чтобы перейти к следующему меню

два красных круга показывают, как два параметра, которые вы хотите установить

Два красных круга показывают два параметра, которые вы хотите установить. Для управляющего подключения снимите флажок Только просмотр.

** 4) Просмотр соединения! ** Вы настраиваете это так же, как вариант 2 выше, но установите флажок только для просмотра.

В обоих случаях вы, вероятно, захотите проверить запрос общего сеанса.

Дайте мне знать, как это работает для вас.

person ElderDelp    schedule 17.11.2015