我无法解释这个问题,因为我自己并不理解。我很感激获得定义/定位/处理问题的帮助。
设置
我有一台运行测试的Win10虚拟机,以及运行这些测试的Jenkins虚拟机(Windows Server 2008)。
我正在使用一个名为JSystem的测试应用程序。遗憾的是,它不正式支持Windows 10,因为它使用Telnet与目标SUT(已从Windows 10中删除)进行通信,因此我不得不创建一种使用WinRM与该类型VM进行通信的方法。
问题
它的要点是,在某个时间点,詹金斯的测试只是“冻结”。连接仍处于“已建立”状态,VM(主机和客户端)仍在工作。它不会每次都发生,并且可能在测试开始几分钟后发生,或者几个小时。导致的测试几乎是不一样的,但当SUT和测试VM之间存在某种形式的通信时,自然会发生这种情况。它可以是文件传输,也可以是像“dir”这样的简单命令。它可能发生在命令发生请求期间,或者发送结果时。
更多信息
我确实收集了一些可能有用的信息。
- 当我尝试从我自己的开发环境(也就是说,不使用Jenkins作为媒介)运行测试时,我没有看到它发生 - 但是,这可能是因为我不幸并且没有尝试。我自己的环境也是Windows 10,而不是VM。
- 查看SUT上的事件查看器,发出警告“Time-Service”事件ID 50,在冻结发生一分钟后发出NTPClient时间同步问题。但是,Jenkins VM根本没有任何事件。也就是说,事件在SUT上重复了很多次并且并不总是冻结测试,但如果在VM之间的通信尝试期间发生干扰,则可能会造成干扰。
- 我仍然可以使用WinRM与其他来源连接到SUT,并且它也会响应。
- 而不是冻结,更像是SUT正在等待Jenkins的请求,而Jenkins正在等待来自SUT的响应。然而,奇怪的是,通常这些测试的超时时间为30-60秒,除非在测试步骤失败之前,否则不应等待更长时间(除非在测试中另外配置)。
- 我无法确定这与它有什么关系,但我确实在VM之间有时间同步问题。我已经在另一个question询问了如何解决它,所以如果您认为这是问题,请告诉我,特别是如果您有解决方案。
醇>
有什么好方法可以解决这个问题?