我正在使用NightWatchJS v 1.1.11和Selenoid
运行UI测试硒体托托在T2.Micro EC2实例(因此使用T2.Micro(。
测试在测试中间随机失败的两个主要原因:
1(套接字挂起异常
>13:10:05测试/readonlyproduction/Palette.js错误:套接字挂断
13:10:05 tests/readonlyproduction/palette.js at create -hanguperror(_http_client.js:342:15(
13:10:05测试/readonlyproduction/palette.js at socket.socketCloselistener(_http_client.js:377:23(
13:10:05测试/readonlyproduction/palette.js错误在运行.clickelement((协议操作:发生了一个未知错误。
2(会话时计时或找不到
13:11:06测试/readonlyproduction/palette.js错误时,运行.locatemultelements((
测试是从EC2中针对硒的Jenkins触发的,但是当在局部托管硒时,观察到类似的例外,并在本地触发了测试。
。最重要的是,当测试并行运行时,同一测试一次运行时会发生这种情况。
到目前为止尝试关注,但到目前为止尚无运气。
1(在Nightwatch.json
中添加此" request_timeout_options":{ "超时":100000, " retry_attempts":3 }
2(我在单个测试套件中有很多测试用例,因此闯入了较小的测试。
要检查的几件事:
1(检查您的VM是否具有足够的计算资源(CPU,内存,磁盘(。通常可以使用AWS CloudWatch验证这一点(详细介绍(。我们的建议是从平行运行的每个浏览器的每个CPU核心开始〜1.5-2浏览器,1 GB RAM。
2(尝试增加硒赛会话超时(默认为1分钟(。这可能是例如轻松完成功能:
sessionTimeout: "2m"
3(检查您是否没有任何网络连接问题,例如静态页面资源(例如JS和CSS(被防火墙规则阻止。