Проблема с WinRM-соединением - PullRequest
0 голосов
/ 06 мая 2018

Я не могу полностью объяснить проблему, потому что я сам не понимаю ее. Буду признателен за помощь в определении / определении местонахождения / решении проблемы.

Настройка

У меня есть виртуальная машина Win10, на которой выполняются тесты, и виртуальная машина Jenkins (Windows Server 2008), на которой выполняются эти тесты. Я использую тестовое приложение под названием JSystem. К сожалению, он официально не поддерживает Windows 10, так как использует Telnet для связи с целевыми SUT (которые были удалены из Windows 10), поэтому мне пришлось создать способ использования WinRM для взаимодействия с виртуальными машинами такого типа.

Проблема

Суть в том, что в какой-то момент тест Дженкинса просто «зависает». Соединение все еще находится в «установленном» состоянии, ВМ (хост и клиент) все еще работают. Это происходит не каждый раз, и это может произойти через несколько минут после начала тестирования или через пару часов. Тест, который вызывает, почти никогда не бывает прежним, но, естественно, это происходит, когда существует какая-то форма связи между SUT и тестирующей виртуальной машиной. Это может быть передача файла или простая команда типа «dir». Это может произойти во время запроса команды или при отправке результата обратно.

Дополнительная информация

Я собрал еще немного информации, которая может помочь.

  1. Я не видел, чтобы это случилось, когда я пытался запустить тест из моей собственной среды разработки (то есть, не используя Jenkins в качестве среды) - Однако, возможно, это произошло потому, что мне не повезло и я не попробовал достаточно. Моя собственная среда - это Windows 10, а не виртуальная машина.
  2. При просмотре средства просмотра событий на SUT было выдано предупреждение «Служба времени» с идентификатором 50, проблема синхронизации времени NTPClient через одну минуту после того, как произошло зависание. Однако у Дженкинса В.М. вообще не было событий. Тем не менее, событие многократно повторяется на SUT, и оно не всегда останавливает тест, но возможно, что оно вызывает помехи, если это происходит во время попытки связи между виртуальными машинами.
  3. Я все еще могу подключиться к SUT с WinRM, но он отлично работает с другими источниками, и он также отвечает.
  4. Вместо того, чтобы заморозить, скорее SUT ожидает запрос от Jenkins, а Jenkins ждет ответа от SUT. Странно, однако, то, что обычно эти тесты имеют время ожидания 30-60 секунд, и они не должны ждать дольше, чем это (если, конечно, в тесте не указано иное), прежде чем провалить шаг теста.
  5. Я не могу быть уверен, что это как-то связано с этим, но у меня есть проблемы с синхронизацией времени между виртуальными машинами. В другом вопросе я задал вопрос о том, как ее решить, поэтому, если вы считаете, что это проблема, сообщите мне, особенно если у вас есть решение.

Какой хороший способ подойти к этому?

...