8

我正在尝试在数字海洋上运行 Ubuntu 服务器 12.04.3 的液滴上建立端到端测试环境。

我最终想要实现的是让我的詹金斯(安装在一个液滴上)能够运行我的端到端测试。现在,服务器当然是无头的,端到端测试需要通过浏览器运行(我正在使用量角器和带有 chromedriver 的 selenium 独立服务器)。

我的问题是:如何在该机器上生成浏览器我已经安装了 xorg,如果我startx在服务器上安装,注销并登录ssh -X它,我可以手动运行端到端测试(浏览器会在我的本地计算机上弹出)。但是我可以让它在没有它的情况下工作ssh -X,并且因为 jenkins 位于要运行测试的同一个液滴上。好吧,我没有生成浏览器。

注意:我知道我可能在这里遗漏了一些非常琐碎的东西,因为我不完全理解配置和 xorg。

非常感谢任何提示或完整答案,这让我头发灰白。

编辑:经过一番挖掘,我认为我弄错了 xorg 的东西,我猜 X 的目的是能够在远程机器(即我的本地机器)上生成一个窗口。而我所追求的更像是虚拟帧缓冲区,如 Xvfb ......

4

2 回答 2

7

有 PhantomJS,但使用 Protractor 是错误的并且是死胡同

您仍然可以通过docker-selenium无头使用 Chrome 和 Firefox ,或者,如果您不喜欢Docker,您可以使用ubuntu-headless示例自己完成。即使没有真正的 DISPLAY,两种解决方案都使用Xvfb提供 Chrome 和 Firefox。

更新 2似乎可以在 OSX 中运行 Xvfb:http: //xquartz.macosforge.org/landing/

更新 1 Mac OSX 硒无头解决方案:

启用对 OSX 机器的多用户远程桌面访问

所以可以在mac上测试selenium headless。不是真的无头,而是作为另一个用户,所以它不会干扰您当前的用户显示。为此,您需要 kickstart: http: //support.apple.com/en-us/HT201710 开始使用 kickstart 实用程序

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -restart -agent

激活远程桌面共享,为所有用户启用访问权限并重新启动 ARD 代理:

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -access -on -restart -agent -privs -all 
仅限 Apple Remote Desktop 3.2 或更高版本

允许所有用户访问并授予所有用户完全访问权限

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -configure -allowAccessFor -allUsers -privs -all

Kickstart 帮助命令

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -help
于 2014-05-04T20:53:07.507 回答
1

许多 Angular 应用程序一直使用Travis CI在无头虚拟机上执行基于量角器的端到端集成测试。我不知道他们究竟是如何做到的,但我知道他们使用了一个名为xvfb的 linux 服务,它是一个无头 x windows 实现。查看一个典型的 Travis 配置文件,似乎他们在启动 Web 服务器、selenium 服务器和启动 Protractor 之前所做的一切就是调用sh -e /etc/init.d/xvfb start以启动此服务。

于 2014-05-03T04:00:52.040 回答