Dav*_*ers 5 c# selenium automated-tests selenium-webdriver azure-devops
我有一个 Azure DevOps CI 版本,它同时在同一台服务器上运行大量 selenium 测试。通常它运行良好,但有时我的 selenium 测试任务会由于此错误而超时:
2020-05-07T15:47:37.0692681Z 已完成的测试执行模型... 2020-05-07T15:47:48.6637501Z STDIO 流未在 进程 “C:\TFSAgent5_work_work_taske57e57_work_taskee57”退出事件的10秒内关闭-42c7-9a53-ab56c98420f9\2.153.9\Modules\DTAExecutionHost.exe'。这可能表明子进程继承了 STDIO 流并且尚未退出。2020-05-07T16:08:50.9254238Z ##[错误]任务超时。
这通常发生在测试重新运行时,我看到它可能每 100 次测试运行一次。这是一个致命的问题,因为它将在超时设置的最长时间内锁定测试代理(在我的情况下为 30 分钟)。许多其他帖子 指出,如果您没有正确关闭 selenium 驱动程序,就会发生这种情况,但是我相信我是,而且,在我的情况下,99/100 时间效果很好,这是我用来关闭 selenium 的代码司机:
[AssemblyCleanup]
public static void Cleanup()
{
try
{
driver.Close();
driver.Quit();
}
catch (Exception e)
{
Debug.WriteLine(e.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
他们真的没有分配有用的建议。我认为这个问题与测试代理服务器(或测试服务器)的负载有关。当我运行较小的 CI 版本(每晚)时,我从未见过这个问题。
以前有人在高负载下遇到过这个问题吗?我想知道“10 秒”从何而来,是否可以以某种方式进行调整?我用来关闭驱动程序的代码是否存在问题,是否有更好的关闭方法可以确保即使它被锁定我仍然可以杀死它,也许我可以添加到我的 catch 语句中?
小智 0
我对 C# 和 Selenium Webdriver 也有类似的问题。该问题仅出现在大约 2 年前安装的一台虚拟机代理上,版本为:3.218.0。我已将其升级到 3.220.5 版本 -> 它没有帮助。问题是,在 azure 中同一虚拟机上具有相同版本的另外 2 个代理运行良好(但它们是新安装的 3.220.5)。我所做的只是删除有问题的代理并从头开始重新安装。重新安装后问题消失了,但有趣的是版本没有改变,我不知道为什么这有帮助。我也尝试过不同的 NUGET 超时设置以及 TASKLIB_TEST_TOOLRUNNER_EXITDELAY - 不幸的是没有任何反馈。
| 归档时间: |
|
| 查看次数: |
981 次 |
| 最近记录: |