Как смоделировать, что кто-то «смотрит» на монитор? - PullRequest
1 голос
/ 06 июля 2011

Я автоматизирую тесты веб-приложений на основе архитектуры Selenium в виртуальных машинах Windows, подключающихся через удаленный рабочий стол Windows.Мне стало известно, что Flash / SWF и другие элементы в браузере ведут себя по-разному, если окно виртуальной машины открывается / отображается (все круто) и когда окно закрыто (или, возможно, даже свернуто).Это означает, что браузеры / плагины задействуют некоторую оптимизацию, если никто не смотрит на экран (возможно, я ошибаюсь - если да - поправьте меня).

В качестве (рабочего) обходного пути, установки VNC (и входа в системуэто хотя бы один раз перед запуском тестов) помогает.С этого момента никому не нужно «смотреть» монитор.

Я думаю, что те же функциональные / системные вызовы используются (например) проигрывателями фильмов, которые отменяют заставку во время просмотра фильма.

Вопрос в том, был ли написан какой-либо специальный демон для этих целей, поэтому мне не нужно будет подключаться к этим машинам через VNC, а только для запуска демона.

Обновление: http://www.jddesign.co.uk/products/freeware/freeware_programs.htm - пока что нашел эту утилиту, проверяя, выполнит ли она работу.Советы все еще приветствуются.

Обновление N2: вышеприведенная утилита не выполняет свою работу

1 Ответ

0 голосов
/ 06 июля 2011

Что вы испытываете, так это стандартная оптимизация рендеринга: ОС игнорирует все команды рендеринга, если окно не видно.

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

В Unix я написал бы небольшой скрипт, который запускает программу просмотра VNC при запуске тестов.

[EDIT] Что выВы ищете некое устройство / dev / null для соединений VNC.

Вот решение, которое может работать: Загрузите исходные коды для TightVNC Java Viewer (лицензия: GPL)и удалите весь код рендеринга.

Это позволит вам запустить безголовый VNC-клиент для ваших тестов.

...