screenshots и выполнение тестов на удаленном сервере
#1
Отправлено 12 апреля 2011 - 12:32
1. Есть функция selenium.captureEntirePageScreenshot(file, parametr). Она снимает скриншот страницы, но если на странице есть апплет который выполняется в процессе скриншотинга, он не сохраняется, остается только непосредственно фрэйм где этот скриншот выполняется. Кто сталкивался с такой проблемой, как это можно обойти? Пробовал использовать selenium.captureScreenshot(File), но тест запускается при помощи Хадсона на серваке на котором нет моника, поэтому черный экран вместо скриншота.
2. Второй вопрос. Hudson запускает тесты на удаленном серваке. Могу ли я увидеть как эти тесты работают воочию, т.е. непосредственно как открывается браузер и как выполняются действия. Если просто запустить тесты к примеру с локалки через интерфейс, а потом через ремоут десктоп подключится к серверу то действий никаких не увидим, та же ерунда если запустить непосредственно через ремоут десктоп и Hudson. Для чего это вообще нужно: валятся тесты, которые при запуске с локал машины без хадсона отрабатывают отлично.
#2
Отправлено 12 апреля 2011 - 13:34
1. Наличие или отсутствие монитора никак не влияет на скриншот
2. Уверены, что логинитесь в ту же сессию в которой выполняются тесты?
#3
Отправлено 12 апреля 2011 - 14:32
Уже точно не помню можно ли это пофиксить через настройки, но если присоединитесь через RDP, например, то графика будет и скриншоты будут нормальные.
А вообще рекомендую использовать linux+xvfb (если вам не критичен IE).
#4
Отправлено 12 апреля 2011 - 15:13
Чёрные квадраты вместо апплетов/флеша/сильверлайта при использовании captureEntirePageScreenshot -- это нормально, браузер не знает, что находится внутри контейнера.
Если всё-таки используете RDP, а не VNC, присоединяйтесь к консольной сессии: mstsc /console
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#5
Отправлено 12 апреля 2011 - 15:53
Эммм... Можно дурацкий вопрос? Cелениум умеет выполнять тесты в браузере не поднимая графическую сессию?Про чёрный квадрат вместо экрана почитайте тут (в конце статьи): http://software-test...ote-screenshots
Чёрные квадраты вместо апплетов/флеша/сильверлайта при использовании captureEntirePageScreenshot -- это нормально, браузер не знает, что находится внутри контейнера.
Если всё-таки используете RDP, а не VNC, присоединяйтесь к консольной сессии: mstsc /console
#6
Отправлено 12 апреля 2011 - 16:29
#7
Отправлено 12 апреля 2011 - 17:02
Это понятно. Я вот почему спрашиваю:Графика нужна не Selenium'у, а браузеру.
- в статье по ссылке, в заголовке того самого раздела, вроде как, задан вопрос “Почему у меня вместо скриншотов чёрные квадраты?”, а вот ответа на это "почему" нету, есть только воркэраунд для проблемы из которого не так уж просто понять суть. Я, например, с первого раза понял это так - у вас нет скриншотов, потому что не запущенна графическая сессия. 0_о
- и не очень понятна вот эта фраза "I've found for ensuring that Selenium RC starts in an environment that supports screenshots, launching IE, interacting with native events, etc." Почему я не могу запустить IE или работать с native events, если "умная" винда согласно настройкам энергосбережения отключила фрейм буфер в видеокарте? Со скриншотами, в данном случае, понятно.
Я не придираюсь, просто реально очень загадочно написано.
#8
Отправлено 12 апреля 2011 - 18:49
Нормальный вопрос. И ответ на него положительный. Делается это так:Эммм... Можно дурацкий вопрос? Cелениум умеет выполнять тесты в браузере не поднимая графическую сессию?
Берём Tanuki Java Service Wrapper и изготавливаем из селениум-сервера сервис Windows и ставим на автозапуск при старте системы.
При этом самое главное -- не забыть выставить опцию wrapper.ntservice.interactive = true, это и есть необходимое и достаточное условие для возможности запуска графических приложений в этой сессии.
Ну и, в общем, всё. Если вы используете Hudson/Jenkins для запуска удаленных узлов, согласно документации он запускается как интерактивный, так что там тоже всё должно работать.
Может быть можно вместо Tanuki использовать Srvany http://support.microsoft.com/kb/137890, но я не проверял, не знаю, есть ли там опция "сделать сервис интерактивным".
Но вместо скриншотов таки будут чёрные квадраты :)
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#9
Отправлено 12 апреля 2011 - 19:02
Берём Tanuki Java Service Wrapper и изготавливаем из селениум-сервера сервис Windows и ставим на автозапуск при старте системы.
При этом самое главное -- не забыть выставить опцию wrapper.ntservice.interactive = true, это и есть необходимое и достаточное условие для возможности запуска графических приложений в этой сессии.
Ну и, в общем, всё. Если вы используете Hudson/Jenkins для запуска удаленных узлов, согласно документации он запускается с этой опцией, так что всё должно работать.
Очень не рекомендую такой подход.
Tanuki ИМХО хорошая штучка, но Community версия только для x86
+ есть баг с атозапуском сервиса (сервис с jar) - у службы он выставлен - но не работает
есть еще кучка мелких багов... так что используйте лучше что-то более стабильное.
#10
Отправлено 12 апреля 2011 - 19:13
Не, не, не... не путайте меня. Interactive service все-таки поднимает графическую сессию. То что он ее никому не показывает - это уже другой вопрос . Ну а черные квадраты, естественно будут, т.к. не смотря на то, что сессия есть, ее никто не отрисовывает.Нормальный вопрос. И ответ на него положительный...
А за способ спасибо. :)
#11
Отправлено 13 апреля 2011 - 08:32
Сам нашел ответ на второй вопрос.
Что бы увидеть как непосредственно работает Hudson: надо зайти на непосредственно сервер, там ввести в командной строке "sc qc hudson" и проверить параметр TYPE. Если там нету <interactive> то вы никак не сможете увидеть его работу. Поэтому вводим "sc config hudson type= interact type= own" (если ввести еще раз "sc qc hudson" в Type появится надпись (interactive). После этого перегружаем Hudson и наслаждаемся :)
#12
Отправлено 14 апреля 2011 - 09:10
А может ты знаешь какое-нибудь похожее на xvfb только для Windows?Если используете винду без монитора, то так и должно быть, т.к. она отрубает графику когда (конечно же в большинстве случаев ошибочно) предполагает, что она не нужна.
Уже точно не помню можно ли это пофиксить через настройки, но если присоединитесь через RDP, например, то графика будет и скриншоты будут нормальные.
А вообще рекомендую использовать linux+xvfb (если вам не критичен IE).
Просто проблема в том что я пытаюсь обойти апплет, я заметил что при загрузке страницы фокус остается и впринципе простой эмуляцией нажатия клавиш selenium.keyPressNative его можно обходить. Это конечно криво и нужна точная настройка по времени но всё же хоть какое-то решение. Так вот что бы эмулировать это нажатие нужно что бы браузер был на переднем плане и в фокусе. Я написал код, ну в с фокусом так ничего и не придумал но заметил что при загрузке теста он помещается на передний план и запустил его локально, всё прекрасно отработало. Но запусти его через хадсон на серваке на котором нет моника все тесты свалились. Тогда я настроил хадсон что бы он отображал действия и получилось что при включенном ремоут десктопе он опять таки отрабатывает хорошо, но стоит только его отключить как все тесты опять фэйлятся. Пока что у меня одно только решение это поставить моник ан сервак и что бы он постоянно работал при выполнении тестов. Возможно получилось бы обойти эту проблему с помощью xvfb но на серваке Windows.
Сообщение отредактировал Vedzmak: 14 апреля 2011 - 09:19
#13
Отправлено 14 апреля 2011 - 13:35
Искал в своё время, но так ничего и не нашёл. А почему бы не использовать Linux+Firefox? Так будет намного стабильнее, быстрее и проще. Только если требуется IE...А может ты знаешь какое-нибудь похожее на xvfb только для Windows?
#14
Отправлено 14 апреля 2011 - 13:54
Я не могу что-то поставить на сервак без ведома его "хозяев", не то что систему переставить. А тесты должны запускаться именно на их серваке. Поэтому приходится использовать Windows+FirefoxИскал в своё время, но так ничего и не нашёл. А почему бы не использовать Linux+Firefox? Так будет намного стабильнее, быстрее и проще. Только если требуется IE...
А может ты знаешь какое-нибудь похожее на xvfb только для Windows?
#15
Отправлено 14 апреля 2011 - 16:37
#16
Отправлено 26 апреля 2011 - 08:38
#17
Отправлено 26 апреля 2011 - 08:40
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных