Selenium webdriver 无头服务器端到端测试

Selenium webdriver 无头服务器端到端测试,selenium-webdriver,protractor,headless,digital-ocean,end-to-end,Selenium Webdriver,Protractor,Headless,Digital Ocean,End To End,我正在尝试为运行UbuntuServer12.04.3的digital ocean上的droplet设置一个端到端测试环境 我最终想要实现的是让我的jenkins(安装在一个液滴上)能够运行端到端测试。现在,服务器当然是无头的,端到端测试需要通过浏览器运行(我正在使用带有chromedriver的selenium独立服务器的量角器) 我的问题是:如何在那台机器上生成浏览器我已经安装了xorg,如果我在服务器上安装了startx,请注销并ssh-X,我可以手动运行端到端测试(我的本地计算机上会弹出

我正在尝试为运行UbuntuServer12.04.3的digital ocean上的droplet设置一个端到端测试环境

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

我的问题是:如何在那台机器上生成浏览器我已经安装了xorg,如果我在服务器上安装了
startx
,请注销并
ssh-X
,我可以手动运行端到端测试(我的本地计算机上会弹出一个浏览器)。但是我可以让它在不使用ssh-X的情况下工作,而且因为jenkins在运行测试的同一个微滴上。嗯,我没有一个浏览器产生

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

任何提示或完整的答案都是非常感谢的,这是给我白发


编辑:经过一点挖掘,我认为我对xorg的理解有点错误,我猜X的目的是能够在远程机器(即我的本地机器)上生成一个窗口。我所追求的是虚拟帧缓冲区,如Xvfb…

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

有PhantomJS,但有量角器就没有了

您仍然可以通过使用Chrome和Firefox headless,或者,如果您不喜欢,可以通过示例自己使用。这两种解决方案都通过使用提供Chrome和Firefox,即使没有真正的显示

更新2似乎可以在OSX中运行Xvfb:

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

启用对OSX计算机的多用户远程桌面访问 所以我们可以在mac上测试selenium headless。不是真正的无头,而是作为另一个用户,所以它不会干扰当前用户的显示。 为此,您需要kickstart: 开始使用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

我想和詹金斯做点类似的事情。如果你最终发现了一些建议,我很想听听。