Coffeescript 如何进行无头量角器/茉莉花测试?

Coffeescript 如何进行无头量角器/茉莉花测试?,coffeescript,jasmine,protractor,Coffeescript,Jasmine,Protractor,我已经安装了量角器和带有chromedriver的茉莉花/咖啡脚本 我正在运行我的测试,chrome启动,它运行一切。那很好 但是,如果我从远程(ssh)无头运行这个,它会说 using ChromeDriver directly... Spec started A Jasmine spec timed out. Resetting the WebDriver Control Flow. The last active task was: WebDriver.createSession()

我已经安装了量角器和带有chromedriver的茉莉花/咖啡脚本

我正在运行我的测试,chrome启动,它运行一切。那很好

但是,如果我从远程(ssh)无头运行这个,它会说

using ChromeDriver directly...
Spec started
A Jasmine spec timed out. Resetting the WebDriver Control Flow.
The last active task was:
WebDriver.createSession()
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>

  Going to the Connect pages and launch at dashboard
    ✗ Should login as admin and launch Location view (30 secs)
      - timeout: timed out after 30000 msec waiting for spec to complete
直接使用ChromeDriver。。。
规格开始
茉莉花规格超时。重置WebDriver控制流。
上一个活动任务是:
WebDriver.createSession()
在
在
在
在
转到“连接”页面并在仪表板上启动
✗ 应以管理员身份登录并启动位置视图(30秒)
-超时:等待规格完成30000毫秒后超时
如何在无头模式下运行这些测试

谢谢,
R

我知道的唯一方法是xvfb,但在imho中工作是一件痛苦的事情。 幸运的是,有人已经为我们做到了:

所以基本上你只需要安装docker

curl-sSLhttps://get.docker.com/ |sh

然后启动docker deamon

sudo服务docker启动

然后启动集线器+浏览器或独立浏览器:

docker run -d --name selenium-hub -p 4444:4444 selenium/hub:2.47.1
docker run -d --name chrome1 --link selenium-hub:hub selenium/node-chrome:2.46.0
docker run -d --name chrome2 --link selenium-hub:hub selenium/node-chrome:2.46.0
docker run -d --name firefox1 --link selenium-hub:hub selenium/node-firefox:2.46.0
或独立:

docker run -d -p 4444:4444 selenium/standalone-chrome-debug:2.47.1
还记得在测试后杀死docker容器,因为它们不是为了长期生存而制造的:)


我几乎忘了,在您的ptor配置、grunt args或cli arg:
seleniumAddress:'http://:4444/wd/hub',

在我看来,他们似乎正在尝试运行,但有些地方不对劲。确保远程登录可以打开您尝试加载的页面。不应该使用xvfb或phantomjs或其他方法使其无头工作?由于呈现问题,不建议对量角器使用phantom。就我个人而言,我使用微软Edge()提供的免费VirtualBox虚拟机,运行这些无头虚拟机,一切都像champ一样工作。您也可以在其上安装其他浏览器。这是一个很好的测试基础。我想用chrome而不是IE。我想用chrome和量角器来测试无头。我听说可以使用xvfb来实现这一点。关于如何让它工作,你有什么见解吗?你不明白“你也可以在它们上安装其他浏览器”的哪一部分吗?我在一台机器上同时测试IE、Chrome和Firefox,一切正常。然而,您似乎有意使用xvfb,@cvakeitho给出了一个有效的答案。另外,将测试限制在一个浏览器上是不明智的,但是,嘿,这是你的项目。虽然你给出了一个有效的答案,但我不同意你的说法,即这是“唯一”的方法。还有很多其他的方法。
docker rm -f $(docker ps -a -q --filter 'name=chrome')
docker rm -f $(docker ps -a -q --filter 'name=firefox')
docker rm -f $(docker ps -a -q --filter 'name=selenium-hub')