【发布时间】:2019-12-10 12:19:44
【问题描述】:
我正在使用 NightwatchJS v 1.1.11 和 Selenoid 运行 UI 测试
selenoid 托管在 t2.micro EC2 实例上(评估阶段因此使用 t2.micro)。
测试在测试过程中随机失败,主要原因有两个:
1) 套接字挂起异常
13:10:05 测试/readOnlyProduction/palette.js POST http://xx.xx.xx.xx:4444 /wd/hub/session/87f6eb1b0b3369ba93bb9ce8c548fa89/element/0.46204216593315195-1/点击 - ECONNRESET
13:10:05 测试/readOnlyProduction/palette.js 错误:套接字挂断
13:10:05 测试/readOnlyProduction/palette.js at createHangUpError (_http_client.js:342:15)
13:10:05 测试/readOnlyProduction/palette.js 在 Socket.socketCloseListener (_http_client.js:377:23)
13:10:05 tests/readOnlyProduction/palette.js 运行 .clickElement() 协议操作时出错:发生未知错误。
2) 会话超时或找不到
13:11:06 tests/readOnlyProduction/palette.js 运行 .locateMultipleElements() 协议操作时出错:会话超时或找不到
在 EC2 中针对 selenoid 运行的 Jenkins 会触发测试,但是当 selenoid 托管在本地并且在本地触发测试时会观察到类似的异常。
最重要的是,当测试并行运行时会发生这种情况,而相同的测试在一次运行一个时运行良好。
到目前为止尝试了以下操作,但到目前为止没有运气。
1) 在 nightwatch.json 中添加这个
“request_timeout_options”:{ “超时”:100000, “重试尝试”:3 }
2) 我在单个测试套件中有很多测试用例,所以分成更小的测试。
【问题讨论】:
标签: nightwatch.js session-timeout selenoid