Я хочу запустить тесты на селен на ведомом устройстве Hudson.
Подчиненный (то есть машина), который будет выполнять селен, является Ubuntu 10.04.
Таким образом, у него есть Gnome. Для работы Selenium требуется firefox.
Теперь Хадсон создает ssh-соединение с машиной Ubuntu и запускает там селен. Selenium пытается запустить firefox.
А теперь винит:
Ошибка: не удается открыть дисплей
Что нужно сделать, чтобы "оболочка ssh" отображалась с X-сервера?
Убедитесь, что на удаленном компьютере включена пересылка ssh X11:
$ grep X11 /etc/ssh/sshd_config
X11Forwarding yes
X11DisplayOffset 10
$
Использовать ssh -X user@remote_machine
для подключения к удаленной машине. Если на удаленном компьютере вы используете другого пользователя для запуска X-клиента, используйте xauth list
чтобы получить текущие учетные данные пользователя ssh, затем используйте xauth add
чтобы добавить учетные данные пользователю, которым вы становитесь, с помощью sudo / su.
read -p 'Username: ' u;sudo -H -u $u xauth add $(xauth list|grep :$(echo ${DISPLAY: -4:2}));sudo su - $u
Если вопрос в том, что я думаю
ssh testuser@ubuntuhost firefox --display :0 -no-remote
Запустит firefox на ubuntuhost и отобразить его на этой машине, предполагая тестовый пользователь вошел в ubuntuhost уже.
Я не знаю Selenium или то, что именно вы хотите проверить (производительность, правильность отображения или просто возвращаемое значение успеха из некоторого javascript), но вам может даже не понадобиться «настоящий» X-сервер, то есть тот, который на самом деле появляется на мониторе хоста Ubuntu. Xvfb может быть вам полезен здесь, но это выходит за рамки исходного вопроса ...
Вам нужно переслать X через туннель ssh, попробуйте следующее:
ssh -X host_IP
после входа в систему запустите firefox в своем терминале, он должен перенаправить ваш X-сервер на ваш локальный компьютер.
ssh -X root @ myserver или что-то в этом роде
Вам необходимо включить перенаправление X и запустить X-сервер локально. Проходить -X
или -Y
к ssh
.