6

У меня есть несколько виртуальных систем Windows Server 2012, в основном на AWS. Эти системы используются для выполнения тестов пользовательского интерфейса на основе браузера с использованием Selenium. Тесты необходимо запускать с определенной учетной записью пользователя, поскольку у этого пользователя правильно настроена среда пользовательского интерфейса для выполнения тестов.

Чтобы понять сценарий, представьте, что вы входите в удаленную виртуальную систему через, например, RDP, настраиваете среду рабочего стола для запуска тестов, а затем запускаете тесты и наблюдаете за их выполнением. Пока все хорошо, если я запускаю тесты таким образом, все в порядке.

Чтобы автоматизировать весь процесс, я настроил тестовых клиентов как подчиненных Jenkins. Важно отметить, что мне пришлось запустить процесс Jenkins Slave с той же учетной записью пользователя, для которой настроена среда пользовательского интерфейса для тестов. Это гарантирует, что при запуске тестов через Jenkins будут использоваться правильная учетная запись пользователя и среда пользовательского интерфейса. В конце я смог успешно выполнить тестирование таким способом от Дженкинса, если у меня было открыто соединение RDP.

Проблема в том, что как только я отключаюсь от тестового клиента, тесты начинают проваливаться. Похоже, что для успешного выполнения всех тестов пользовательского интерфейса требуется активное соединение RDP с определенной учетной записью пользователя. Это то, что я сейчас пытаюсь устранить.

Решение, по-видимому, состоит в том, чтобы настроить учетную запись пользователя, которую я использую для тестов, для автоматического входа при запуске тестового клиента. Для настройки автоматического входа в систему я использую инструмент Autologon , но есть и другие средства для достижения того же эффекта. После запуска системы мой пользователь, кажется, успешно "входит" в систему, то есть, минуя экран входа в систему, он инициализирует свою среду графического интерфейса с экраном по умолчанию 1024x768, а также все программы, которые определены для автоматического запуска после успешного входа в систему, включая мой подчиненный Jenkins. процесс.

Когда я запускаю тесты пользовательского интерфейса для таких тестовых клиентов через Jenkins, большинство тестов завершаются успешно, за исключением тех, которые требуют более высокого разрешения, чем стандартное разрешение 1024x768. Это то, для чего я пытаюсь найти решение.

Я попытался изменить разрешение экрана с помощью нескольких инструментов командной строки (например, QRes) сразу после завершения автологона и запуска процесса Jenkins Slave - безуспешно. Кажется, что без реального монитора эти инструменты не могут изменить разрешение. Существует этот подобный вопрос здесь с некоторыми другими средствами , чтобы изменить разрешение по умолчанию (хотя и не из них , кажется, работает), но обратите внимание , что для того , чтобы сделать решение не зависит от используемой технологии виртуализации, я в первую очередь ищу способ изменить разрешение по умолчанию в самой Windows, а не с помощью какого-либо инструмента конфигурации WMWare или AWS.

Немного погуглив, я нашел только способы изменить разрешение по умолчанию 1024x768 для пользовательских установочных носителей Windows. Это дало мне идею, что это разрешение по умолчанию 1024x768 укоренилось где-то глубоко, но все еще настраиваемо.

Есть ли кто-нибудь, кто знает, как изменить разрешение по умолчанию 1024x768 для автоматического входа? Может кто-нибудь подсказать, кому и где еще я могу задать этот вопрос, возможно, есть какие-то форумы, посвященные особенно вопросам, связанным с такими внутренними компонентами Windows?

2 ответа2

2

У меня была такая же проблема при создании фермы Windows Selenium для тестирования в определенных разрешениях.

Установите безголовое разрешение экрана в Windows:

  1. создание нового пользователя с именем rdp_local
  2. создание сценария запуска для RDP в указанной учетной записи пользователя с указанным разрешением
  3. добавление правила брандмауэра для открытия порта RDP 3389
  4. настройка автоматического входа для входа в систему как rdp_local при перезагрузке

Обратите внимание, что для автоматического входа требуются имя пользователя и пароль, а пароль хранится в незашифрованном виде в реестре Windows HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon.

Протестировано на Amazon Windows Server 2012 R2.

Вот рецепт шеф-повара, который делает все вышеперечисленное:https://github.com/dhoer/chef-windows_screenresolution

0

Мы были в точной ситуации с селеном на виртуальной машине, работающей в облаке.

Я смог решить эту проблему, подключившись к сеансу консоли виртуальной машины (чтобы не вызывать контекст rdp), и просто установив разрешение по умолчанию для пользователя и системы. после этого все заработало.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .