testcafe E2E测试在CI服务器(由windows服务运行)上运行时挂在InternetExplorer11上



我使用testcafe来运行我的E2E测试。当我使用命令行运行testcafe时,一切都正常。当测试由构建代理(windows服务(运行时,测试将挂起,但仅在Internet explorer上(chrome和FF工作(。我设法在Win10和WinServer2012上重现了这个问题。这个问题似乎只有当Internet Explorer在所谓的会话0(由windows服务启动的GUI应用程序(中启动时才会出现。我已经尝试了不同的用户(LOCALSYSTEM和具有管理员权限的本地帐户(,但总是得到相同的结果——测试挂起。当我通过登录/pxec/runas运行浏览器时,一切都正常。我已经试过玩IE安全设置,我的防火墙和anitvirus。但问题仍然存在。我厌倦的最后一个选项是使用VS调试器连接到浏览器并检查控制台是否有js错误,但没有显示错误。

以前有人遇到过这种问题吗?我将感谢任何关于如何调试这个问题的提示,因为我已经没有更多的想法了。。。。

来自testcafe的日志:

UnhandledPromiseRejectionWarning: Error: The IE 11.0.0 / Windows 10.0.0 browser disconnected. This problem may appear when a brwser hangs or is closed, or due to network issues.
at Timeout.<anonymous> (C:UsersxxxsourcereposClientPortalSmokeTestsnode_modulestestcafelibbrowserconnectionindex.js:23:34)
at ontimeout (timers.js:482:11)
at tryOnTimeout (timers.js:317:5)
at Timer.listOnTimeout (timers.js:277:5)
(node:23936) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async funcion without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:23936) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handld will terminate the Node.js process with a non-zero exit code.

我可以看到两个选项。

首先,尝试在"登录"选项卡下的服务属性中启用"允许服务与桌面交互"选项

如果这没有帮助,请尝试在非零会话中运行服务。以下线程可能会提供有关如何实现这一点的更多详细信息:

从windows-2008-server中的服务在非零会话中创建进程?

此外,据我所知,微软的立场是避免从windows服务运行UI应用程序。这被认为是不好的做法。这里有一些关于这个问题的建议:使用自托管的Windows代理进行可见UI测试。

我遇到了类似的问题。我的考试坚持IE11。

我从IE11删除了所有临时文件(通过Internet选项->删除所有临时文件(,我的测试再次运行。过了一段时间,测试又开始挂起了。

最新更新