量角器无法在Docker容器中启动

时间:2019-10-09 22:37:34

标签: docker google-chrome protractor selenium-chromedriver

在docker容器中运行量角器测试时,它们会尝试启动并出错。我正在使用docker compose,并尝试以其他解决方案中描述的每种方式调整共享内存的分配(每种类型的分配范围一直达到8gb)。我尝试使用以前版本的chrome版本和chromedriver(最后一个工作管道在chromedriver_76.0.3809.12和google-chrome-stable(77.0.3865.75-1)上)。我当前的chrome和chromedriver版本是:

google-chrome-stable (77.0.3865.90-1)
chromedriver_77.0.3865.40 (the stack trace is from a different run with the same results)
Running against http://0.0.0.0:8080 with account code: fakecustomer1
[22:05:14] E/launcher - Error: WebDriverError: unknown error: session deleted because of page crash
from unknown error: cannot determine loading status
from tab crashed
  (Session info: headless chrome=77.0.3865.90)
  (Driver info: chromedriver=76.0.3809.68 (420c9498db8ce8fcd190a954d51297672c1515d5-refs/branch-heads/3809@{#864}),platform=Linux 4.9.184-linuxkit x86_64)
    at processTicksAndRejections (internal/process/task_queues.js:89:5)
From: Task: WebDriver.findElement(By(css selector, *[id="username"]))
    at onPrepare (/tests/dev_e2e_conf.js:69:30)
    at processTicksAndRejections (internal/process/task_queues.js:89:5)
From: Task: WebElement.sendKeys()
    at onPrepare (/tests/dev_e2e_conf.js:69:61)
    at processTicksAndRejections (internal/process/task_queues.js:89:5)
[22:05:14] E/launcher - BUG: launcher exited with 1 tasks remaining

为对比起见,当在本地计算机上使用相同的chrome版本(基于OSx而不是linux)和相同的chrome驱动程序运行时,它们运行良好。

编辑:原来是应用程序尝试递归加载angularJS并最终导致测试中的选项卡崩溃(通过在docker映像中投放并点击url来发现),我仍然不知道为什么会有区别在OS X上投放服务(在使用相同的内置内容和版本时不会遇到相同的错误)与Linux之间。

1 个答案:

答案 0 :(得分:0)

运行测试时,必须考虑: -硒容器:集线器+浏览器节点在其自己的“ NAT”网络中运行。 因此它们具有自己的上下文,并且传递的url应该使用“外部”网络或“桥接”网络,以便他们可以访问您的主机网络并解析本地IP。 -量角器实例在其他上下文中运行:可以是容器,其他计算机或本地主机。

因此,请确保为要测试的URL和Selenium Hub提供了正确的IP。