在 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映像中提供服务并点击urls发现(我仍然不知道为什么在OS X上服务(在相同的构建内容和版本中不会遇到相同的错误(与Linux之间存在差异。
运行测试时,必须考虑: - 硒容器:集线器+浏览器节点在自己的"NAT"网络中运行。 因此,它们具有自己的上下文,并且传递URL应与"外部"网络或执行"桥接"网络,以便它们可以访问您的主机网络并解析本地IP。 - 在其他上下文中运行的量角器实例:可以是容器、其他计算机或本地主机。
因此,请确保您为要测试的URL和硒集线器提供了正确的IP。