Тесты Webdriverio Cucumberjs для приложения React Native не работают на AWS Device Farm - Socket завис

Я пишу сквозные тесты для приложения React Native, используя WebdriverIo, Appium и Cucumberjs и развертывание тестов на AWS Device Farm.

Тесты работают нормально как на симуляторе Android, так и на реальном устройстве. Хотя в AWS он выдает такие ошибки, как (node:3113) DeprecationWarning: Got: "options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized" и RequestError: socket hang up. Более подробно это показано ниже:

[DeviceFarm] echo "Start Appium Node test"
Start Appium Node test
[DeviceFarm] npm run only-one-test-aws

> [email protected] only-one-test-aws /tmp/scratch0EgKio.scratch/test-packageFvDXet
> npx wdio ./wdio.android.conf.js --spec ./features/recarga/verificacacaoCodigoDeAcessoInvalido.feature


Execution of 1 spec files started at 2020-06-04T18:23:19.220Z

2020-06-04T18:23:19.223Z INFO @wdio/cli:launcher: Run onPrepare hook
2020-06-04T18:23:19.254Z INFO @wdio/cli:launcher: Run onWorkerStart hook
2020-06-04T18:23:19.256Z INFO @wdio/local-runner: Start worker 0-0 with arg: ./wdio.android.conf.js,--spec,./features/recarga/verificacacaoCodigoDeAcessoInvalido.feature
[0-0] 2020-06-04T18:23:20.961Z INFO @wdio/local-runner: Run worker command: run
[0-0] 2020-06-04T18:23:21.062Z DEBUG @wdio/local-runner:utils: init remote session
[0-0] 2020-06-04T18:23:21.095Z INFO webdriverio: Initiate new session using the ./protocol-stub protocol
[0-0] RUNNING in undefined - /features/recarga/verificacacaoCodigoDeAcessoInvalido.feature
[0-0] 2020-06-04T18:23:22.697Z DEBUG @wdio/local-runner:utils: init remote session
[0-0] 2020-06-04T18:23:22.714Z INFO webdriverio: Initiate new session using the webdriver protocol
[0-0] 2020-06-04T18:23:22.717Z INFO webdriver: [POST] http://127.0.0.1:4723/wd/hub/session
[0-0] 2020-06-04T18:23:22.717Z INFO webdriver: DATA {
  capabilities: { alwaysMatch: {}, firstMatch: [ {} ] },
  desiredCapabilities: {}
}
[0-0] (node:3113) DeprecationWarning: Got: "options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"
[0-0] 2020-06-04T18:24:52.853Z WARN webdriver: Request timed out! Consider increasing the "connectionRetryTimeout" option.
[0-0] 2020-06-04T18:24:52.856Z INFO webdriver: Retrying 1/3
[0-0] 2020-06-04T18:24:52.857Z INFO webdriver: [POST] http://127.0.0.1:4723/wd/hub/session
[0-0] 2020-06-04T18:24:52.857Z INFO webdriver: DATA {
  capabilities: { alwaysMatch: {}, firstMatch: [ {} ] },
  desiredCapabilities: {}
}
[0-0] 2020-06-04T18:24:54.004Z DEBUG webdriver: request failed due to response error: unknown error
[0-0] 2020-06-04T18:24:54.004Z WARN webdriver: Request failed with status 500 due to An unknown server-side error occurred while processing the command. Original error: end of central directory record signature not found
[0-0] 2020-06-04T18:24:54.005Z INFO webdriver: Retrying 2/3
[0-0] 2020-06-04T18:24:54.014Z INFO webdriver: [POST] http://127.0.0.1:4723/wd/hub/session
[0-0] 2020-06-04T18:24:54.014Z INFO webdriver: DATA {
  capabilities: { alwaysMatch: {}, firstMatch: [ {} ] },
  desiredCapabilities: {}
}
[0-0] 2020-06-04T18:24:54.030Z ERROR webdriver: RequestError: socket hang up
    at ClientRequest.<anonymous> (/tmp/scratch0EgKio.scratch/test-packageFvDXet/node_modules/got/dist/source/core/index.js:817:25)
    at Object.onceWrapper (events.js:417:26)
    at ClientRequest.emit (events.js:322:22)
    at ClientRequest.EventEmitter.emit (domain.js:482:12)
    at ClientRequest.origin.emit (/tmp/scratch0EgKio.scratch/test-packageFvDXet/node_modules/@szmarczak/http-timer/dist/source/index.js:39:20)
    at Socket.socketOnEnd (_http_client.js:453:9)
    at Socket.emit (events.js:322:22)
    at Socket.EventEmitter.emit (domain.js:482:12)
    at endReadableNT (_stream_readable.js:1187:12)
    at connResetException (internal/errors.js:608:14)
    at Socket.socketOnEnd (_http_client.js:453:23)
    at Socket.emit (events.js:322:22)
    at Socket.EventEmitter.emit (domain.js:482:12)
    at endReadableNT (_stream_readable.js:1187:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)
[0-0] 2020-06-04T18:24:54.031Z ERROR @wdio/runner: Error: Failed to create session.
socket hang up
    at startWebDriverSession (/tmp/scratch0EgKio.scratch/test-packageFvDXet/node_modules/webdriver/build/utils.js:45:11)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
[0-0]  Error:  Failed to create session.
socket hang up
2020-06-04T18:24:54.147Z DEBUG @wdio/local-runner: Runner 0-0 finished with exit code 1
[0-0] FAILED in undefined - /features/recarga/verificacacaoCodigoDeAcessoInvalido.feature
2020-06-04T18:24:54.148Z INFO @wdio/cli:launcher: Run onComplete hook

Spec Files:  0 passed, 1 failed, 1 total (100% completed) in 00:01:34 

2020-06-04T18:24:54.164Z INFO @wdio/local-runner: Shutting down spawned worker
2020-06-04T18:24:54.416Z INFO @wdio/local-runner: Waiting for 0 to shut down gracefully
2020-06-04T18:24:54.417Z INFO @wdio/local-runner: shutting down
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] only-one-test-aws: `npx wdio ./wdio.android.conf.js --spec ./features/recarga/verificacacaoCodigoDeAcessoInvalido.feature`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] only-one-test-aws script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/device-farm/.npm/_logs/2020-06-04T18_24_54_506Z-debug.log

[DEVICEFARM] ########### Entering phase post_test ###########


[DEVICEFARM] ########### Finish executing testspec ###########

[DEVICEFARM] ########### Setting upload permissions ###########


[DEVICEFARM] Tearing down your device. Your tests report will come shortly.

Я также попробовал это решение вопроса установив зависимости webdriverio и @wdio/cli глобально, хотя мне это не помогло.

PS: Мне уже удалось успешно провести тесты на AWS Device Farm с помощью webdriverio и огурца. Хотя эти ошибки начали появляться у меня недавно, и я до сих пор не знаю, как их решить.

Может кто-нибудь помочь мне с этим?


person Pablo Satler    schedule 05.06.2020    source источник
comment
Как выглядит ваш файл test_spec? Кроме того, совместимы ли версии webdriverio и appium, выбранные вами из файла test_spec?   -  person Tobe E    schedule 05.06.2020
comment
@TobeE, спасибо за ответ. В настоящее время у меня есть несколько .feature файлов тестовых спецификаций, каждый из которых помещен в определенную папку в зависимости от своего домена в приложении в такой структуре: <rootFolder>/features/login/login.feature и <rootFolder>/features/registration/registration.feature. Вы также можете проверить в этом github gist используемые мной зависимости и wdio конфигурации. Я считаю, что они совместимы. Я использую как локально, так и на AWS, appium 1.17.1, webdriverio 6.1.7, узел 12.16.1.   -  person Pablo Satler    schedule 06.06.2020
comment
Можете ли вы попробовать опубликовать URL-адрес запуска, в котором возникает эта проблема, в Форумы AWS Device Farm, чтобы узнать, могут ли они там помочь?   -  person Tobe E    schedule 20.06.2020