无头服务器上的端到端测试

han*_*899 8 headless end-to-end selenium-webdriver protractor digital-ocean

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

我最终想要实现的是我的jenkins(安装在一个Droplet上)能够运行我的端到端测试.现在,服务器是无头的,端到端测试需要通过浏览器运行(我使用量子器与带有chromedriver的selenium独立服务器).

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

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

非常感谢任何提示或完整的答案,这给了我一头白发.

编辑:经过一番挖掘后我觉得我的xorg有点不对劲,我猜X的目的是能够在远程机器(即我的本地机器)上生成一个窗口.而我所追求的更像虚拟帧缓冲区,如Xvfb ...

Leo*_*cci 7

有PhantomJS,但Protractor是越野车而且是一个死胡同.

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

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

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

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

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

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -restart -agent
Run Code Online (Sandbox Code Playgroud)

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

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -access -on -restart -agent -privs -all 
Run Code Online (Sandbox Code Playgroud) Apple Remote Desktop 3.2或更高版本

允许所有用户访问并为所有用户提供完全访问权限

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -configure -allowAccessFor -allUsers -privs -all
Run Code Online (Sandbox Code Playgroud)

Kickstart帮助命令

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -help
Run Code Online (Sandbox Code Playgroud)


Ken*_*nic 1

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