【问题标题】:Error running Chimp / Webdriver.io / Selenium on Fargate (Chrome failed to start)在 Fargate 上运行 Chimp / Webdriver.io / Selenium 时出错(Chrome 无法启动)
【发布时间】:2018-02-05 17:56:03
【问题描述】:

我正在尝试使用内部使用 Webdriver.io / Selenium 的 Chimp 在 Fargate 上运行我的测试用例。当我在我的 EC2 实例上运行它们时,它们在我的 docker 容器中运行得很好,但是一旦我将容器上传到 ECS 并尝试使用 Fargate 执行相同的测试,我就会收到以下错误:

Chimp version:  0.50.2
ChromeDriver version:  ChromeDriver 2.34.522913 (36222509aa6e819815938cbf2709b4849735537c)
Java version:  openjdk version "1.8.0_151", OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-1~deb9u1-b12), OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
Selenium version:  3.8.1
Selenium drivers version:  chrome: 2.34, ie: 2.50.0, firefox: 0.19.1
OS version:  Linux 4.9.62-21.56.amzn1.x86_64
Node version:  v6.11.5
Browser version:  chrome undefined
[33m
[chimp] Running...[39m
[chimp][helper] setupBrowserAndDDP had error
{ Error: unknown error: Chrome failed to start: exited abnormally
    at initBrowser (node_modules/chimp/dist/lib/chimp-helper.js:189:43)
    at Object.setupBrowserAndDDP (node_modules/chimp/dist/lib/chimp-helper.js:264:7)
    at node_modules/chimp/dist/lib/cucumberjs/hooks.js:22:24
    at node_modules/meteor-promise/fiber_pool.js:43:40
    (Driver info: chromedriver=2.34.522913 (36222509aa6e819815938cbf2709b4849735537c),platform=Linux 4.9.62-21.56.amzn1.x86_64 x86_64)
    at new RuntimeError (node_modules/webdriverio/build/lib/utils/ErrorHandler.js:144:12)
    at Request._callback (node_modules/webdriverio/build/lib/utils/RequestHandler.js:313:39)
    at Request.self.callback (node_modules/request/request.js:186:22)
    at emitTwo (events.js:106:13)
    at Request.emit (events.js:191:7)
    at Request.<anonymous> (node_modules/request/request.js:1163:10)
    at emitOne (events.js:96:13)
    at Request.emit (events.js:188:7)
    at IncomingMessage.<anonymous> (node_modules/request/request.js:1085:12)
    at IncomingMessage.g (events.js:292:16)
    at emitNone (events.js:91:20)
    at IncomingMessage.emit (events.js:185:7)
    at endReadableNT (_stream_readable.js:974:12)
    at node_modules/continuation-local-storage/node_modules/async-listener/glue.js:188:31
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickDomainCallback [as _tickCallback] (internal/process/next_tick.js:128:9)
  details: undefined,
  message: 'unknown error: Chrome failed to start: exited abnormally\n  (Driver info: chromedriver=2.34.522913 (36222509aa6e819815938cbf2709b4849735537c),platform=Linux 4.9.62-21.56.amzn1.x86_64 x86_64)',
  type: 'RuntimeError',
  seleniumStack: 
   { type: 'UnknownError',
     message: 'An unknown server-side error occurred while processing the command.',
     orgStatusMessage: 'unknown error: Chrome failed to start: exited abnormally\n  (Driver info: chromedriver=2.34.522913 (36222509aa6e819815938cbf2709b4849735537c),platform=Linux 4.9.62-21.56.amzn1.x86_64 x86_64)' } }
Error: unknown error: Chrome failed to start: exited abnormally
    at initBrowser (node_modules/chimp/dist/lib/chimp-helper.js:189:43)
    at Object.setupBrowserAndDDP (node_modules/chimp/dist/lib/chimp-helper.js:264:7)
    at node_modules/chimp/dist/lib/cucumberjs/hooks.js:22:24
    at node_modules/meteor-promise/fiber_pool.js:43:40
    (Driver info: chromedriver=2.34.522913 (36222509aa6e819815938cbf2709b4849735537c),platform=Linux 4.9.62-21.56.amzn1.x86_64 x86_64)
    at new RuntimeError (node_modules/webdriverio/build/lib/utils/ErrorHandler.js:144:12)
    at Request._callback (node_modules/webdriverio/build/lib/utils/RequestHandler.js:313:39)
    at Request.self.callback (node_modules/request/request.js:186:22)
    at emitTwo (events.js:106:13)
    at Request.emit (events.js:191:7)
    at Request.<anonymous> (node_modules/request/request.js:1163:10)
    at emitOne (events.js:96:13)
    at Request.emit (events.js:188:7)
    at IncomingMessage.<anonymous> (node_modules/request/request.js:1085:12)
    at IncomingMessage.g (events.js:292:16)
    at emitNone (events.js:91:20)
    at IncomingMessage.emit (events.js:185:7)
    at endReadableNT (_stream_readable.js:974:12)
    at node_modules/continuation-local-storage/node_modules/async-listener/glue.js:188:31
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickDomainCallback [as _tickCallback] (internal/process/next_tick.js:128:9)
Cucumber steps failed

我尝试将以下几行添加到我的测试脚本的开头,以确保 Chrome 存在并响应:

echo Running chrome version:
google-chrome --version

结果是:

Running chrome version:
Google Chrome 62.0.3202.75 

所以 Chrome 在那里并且响应。为什么它在 Fargate 中不起作用?

一开始的 Chimp 调试信息中的以下调试行看起来是最大的罪魁祸首:

Browser version:  chrome undefined

我不知道为什么它找不到它。当我在本地运行时,它会报告正确的版本。

【问题讨论】:

    标签: google-chrome selenium selenium-webdriver chimp.js aws-fargate


    【解决方案1】:

    如果 --headless 模式不适用于您的应用程序(这似乎是一个比较频繁的事件),您也可以尝试 Xvfb 用于不带 Headless Chrome 的帧缓冲区。

    【讨论】:

    • 嗯,你说得对,--headless 是一个巨大的错误。我最终开始了我的过程:xvfb-run --auto-servernum --server-args=\"-screen 0 1080x1080x24\" bash -c \"myTask.sh\"。将 myTask.sh 替换为您要运行的任何内容。
    【解决方案2】:

    很久以后,我才知道我的 docker 容器在我保存图像之前还没有成功完成它的所有操作。当我解决这个问题时,这个问题就消失了。 X11 在 Docker 容器/AWS Fargate 中运行良好。

    【讨论】:

    • 这对我来说很糟糕,因为 Chrome 无头(实际上是 Chrome 无头下的 Selenium / Webdriver.io)不容易支持下载文件。
    猜你喜欢
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 2013-11-29
    • 2015-01-05
    相关资源
    最近更新 更多