【问题标题】:End To End Testing on Headless Server在无头服务器上进行端到端测试
【发布时间】:2015-05-22 01:27:23
【问题描述】:

我正在尝试为在数字海洋上运行 Ubuntu server 12.04.3 的 droplet 设置端到端测试环境。

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

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

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

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

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

【问题讨论】:

  • 我希望用 Jenkins 做一些非常相似的事情。如果您最终找到任何提示,我很想听听。

标签: selenium-webdriver protractor headless digital-ocean end-to-end


【解决方案1】:

有 PhantomJS 但带量角器的是buggy and a dead-end

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

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

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

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

所以可以在 mac 上测试 selenium 无头。不是真的无头,而是作为另一个用户,所以它不会干扰您当前的用户显示。 为此,您需要 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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 1970-01-01
      • 2010-10-23
      • 1970-01-01
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-19
      相关资源
      最近更新 更多