Pазрешение экрана на удаленной машине под сессией из под которой запускаются тесты

Доброго времени суток,
есть сервер
под пользователем dev, выставлено разрешение экрана 1920*1080
под этим пользователем запущен build agent (который запускает авто тесты) (TeamCity)

тесты запускаются в меньшем разрешении, на вскидку - 800600-1024768
определил по скринам браузера в maximaze режиме.

как сделать так, что бы тесты запускались в среде с нормальным разрешением экрана ?

Спасибо

Имеешь в виду, что браузер не на весь экран?

ага.
использую webDriver.Manage().Window.Maximize();
локально он успешно отрабатывает.
на той машине, судя по всему - тоже.

Что-то не понял. Если на удалённой отрабатывает, то откуда 1024*768?

если бы знал - вопрос бы не задал :smile:

через js получил размер экрана. тесты запускаются в разрешении 1024*768

Ответа не знаю, но вопрос интересный.

  1. разрешение до maximize() и после разное? Может он не отрабатывает корректно для RemoteWebDriver()?
  2. Где выставлено разрешение для юзера dev, в XWindow Manager? Что за менеджер? Может он такое разрешение делает?
  3. На удалённой машине никак не посмотреть вживую что происходит?
1 лайк
  1. разрешение полученное js’ом (screen.width/height), это не размер окна браузера, а само разрешение экрана.
  2. windows - settings, screen resolution
  3. Нет, т.к. сервис билда агента (который запускает сервис)
    запущен без галки “Allow service to interact with desktop” - и установить ее, возможности нет (с ней, сервис будет работать от Local System, а этого юзера нет в TeamCity)

У меня была похожая проблемма с Windows на удаленном компьютере. Проблемма была в том что текущее разрешение экрана устанавливалась в зависимости от того с каким разрешением был подключен Remote Desktop. T.e. Если пользователь подключается к удаленному компьютеру используя Remote Desktop в оконном режиме с расширением например 800х600. После чего автотесты крутятся на экране с расширением 800х600. Возможно у вас похожая проблемма?

2 лайка

@Werewolfas
я не подключаюсь на прямую - сами тесты запускает сервис билд агента, а он как бы там “живет” локально

хм, т.е. даже из шарпа поменять разрешение там не получается.
т.е. локоально, смена разрешения экрана работает, а там (в той сессии) нет
там

    [DllImport("user32.dll")]
    public static extern int ChangeDisplaySettings(ref DEVMODE1 devMode, int flags); 

возвращает
DISP_CHANGE_FAILED

Какая ОС / браузер?

win7 / FF посл. версии.

Вы используете RemoteWebDriver? Или это какой-нибудь слейв / плагины селениума? С тим сити не работал, говорю по примеру Jenkins.

нет

нет

используется обычный WebDriver
билд агент, после сборки инсталлера, через MSBuild запускает тесты из сборки (mstest /testcontainer:%dll_file_name%)

Ради эксперимента, поднимите нод на вашем сервере и попробуйте запустить банальный гугл тест из IDE с RemoteWebDriver + хабом на вашей локальной тачке, без всяких билд агентов.

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

Не работал с TeamCity.

Но на форумах рекомендуют следующее решение:

On the agents where we want to run GUI tests, we run TeamCity in console mode. Simply run agent.bat (in the TC bin folder) with the parameter start (or stop to stop the agent). Of course, you’ll have to leave a desktop session open for this to work properly.

Источник: https://groups.google.com/d/msg/webdriver/GYvIL4Qg5NU/Fwp-QUj13DEJ

Решили проблему то? Сейчас именно с таким же траблом столкнулся :slight_smile:

нет (т.е. у нас в виду специфики - нельзя было заранить агент не как сервис)
развернули для автотестов дженкинс - там если агент запущен не как сервис, такой проблемы нет

а запустить агент Дженкинса не как сервис - как? )