Перейти к содержимому

Фотография

screenshots и выполнение тестов на удаленном сервере


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 16

#1 Vedzmak

Vedzmak

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Николай

Отправлено 12 апреля 2011 - 12:32

Доброго времени суток. Возникли две такие проблемы:

1. Есть функция selenium.captureEntirePageScreenshot(file, parametr). Она снимает скриншот страницы, но если на странице есть апплет который выполняется в процессе скриншотинга, он не сохраняется, остается только непосредственно фрэйм где этот скриншот выполняется. Кто сталкивался с такой проблемой, как это можно обойти? Пробовал использовать selenium.captureScreenshot(File), но тест запускается при помощи Хадсона на серваке на котором нет моника, поэтому черный экран вместо скриншота.

2. Второй вопрос. Hudson запускает тесты на удаленном серваке. Могу ли я увидеть как эти тесты работают воочию, т.е. непосредственно как открывается браузер и как выполняются действия. Если просто запустить тесты к примеру с локалки через интерфейс, а потом через ремоут десктоп подключится к серверу то действий никаких не увидим, та же ерунда если запустить непосредственно через ремоут десктоп и Hudson. Для чего это вообще нужно: валятся тесты, которые при запуске с локал машины без хадсона отрабатывают отлично.
  • 0

#2 Vader

Vader

    Активный участник

  • Members
  • PipPip
  • 129 сообщений
  • Город:Харьков

Отправлено 12 апреля 2011 - 13:34

Я, конечно, не спец в селениуме, но:
1. Наличие или отсутствие монитора никак не влияет на скриншот
2. Уверены, что логинитесь в ту же сессию в которой выполняются тесты?
  • 0

#3 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 12 апреля 2011 - 14:32

Если используете винду без монитора, то так и должно быть, т.к. она отрубает графику когда (конечно же в большинстве случаев ошибочно) предполагает, что она не нужна.
Уже точно не помню можно ли это пофиксить через настройки, но если присоединитесь через RDP, например, то графика будет и скриншоты будут нормальные.

А вообще рекомендую использовать linux+xvfb (если вам не критичен IE).
  • 0

#4 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 12 апреля 2011 - 15:13

Про чёрный квадрат вместо экрана почитайте тут (в конце статьи): http://software-test...ote-screenshots
Чёрные квадраты вместо апплетов/флеша/сильверлайта при использовании captureEntirePageScreenshot -- это нормально, браузер не знает, что находится внутри контейнера.
Если всё-таки используете RDP, а не VNC, присоединяйтесь к консольной сессии: mstsc /console
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#5 Vader

Vader

    Активный участник

  • Members
  • PipPip
  • 129 сообщений
  • Город:Харьков

Отправлено 12 апреля 2011 - 15:53

Про чёрный квадрат вместо экрана почитайте тут (в конце статьи): http://software-test...ote-screenshots
Чёрные квадраты вместо апплетов/флеша/сильверлайта при использовании captureEntirePageScreenshot -- это нормально, браузер не знает, что находится внутри контейнера.
Если всё-таки используете RDP, а не VNC, присоединяйтесь к консольной сессии: mstsc /console

Эммм... Можно дурацкий вопрос? Cелениум умеет выполнять тесты в браузере не поднимая графическую сессию?
  • 0

#6 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 12 апреля 2011 - 16:29

Графика нужна не Selenium'у, а браузеру. При использовании xvfb браузер будет думать, что графика есть, хотя её может и не быть вовсе.
  • 0

#7 Vader

Vader

    Активный участник

  • Members
  • PipPip
  • 129 сообщений
  • Город:Харьков

Отправлено 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, если "умная" винда согласно настройкам энергосбережения отключила фрейм буфер в видеокарте? Со скриншотами, в данном случае, понятно.

Я не придираюсь, просто реально очень загадочно написано.
  • 0

#8 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 12 апреля 2011 - 18:49

Эммм... Можно дурацкий вопрос? Cелениум умеет выполнять тесты в браузере не поднимая графическую сессию?

Нормальный вопрос. И ответ на него положительный. Делается это так:

Берём Tanuki Java Service Wrapper и изготавливаем из селениум-сервера сервис Windows и ставим на автозапуск при старте системы.
При этом самое главное -- не забыть выставить опцию wrapper.ntservice.interactive = true, это и есть необходимое и достаточное условие для возможности запуска графических приложений в этой сессии.
Ну и, в общем, всё. Если вы используете Hudson/Jenkins для запуска удаленных узлов, согласно документации он запускается как интерактивный, так что там тоже всё должно работать.

Может быть можно вместо Tanuki использовать Srvany http://support.microsoft.com/kb/137890, но я не проверял, не знаю, есть ли там опция "сделать сервис интерактивным".


Но вместо скриншотов таки будут чёрные квадраты :)
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#9 enki86

enki86

    Постоянный участник

  • Members
  • PipPipPip
  • 231 сообщений


Отправлено 12 апреля 2011 - 19:02

Берём Tanuki Java Service Wrapper и изготавливаем из селениум-сервера сервис Windows и ставим на автозапуск при старте системы.
При этом самое главное -- не забыть выставить опцию wrapper.ntservice.interactive = true, это и есть необходимое и достаточное условие для возможности запуска графических приложений в этой сессии.
Ну и, в общем, всё. Если вы используете Hudson/Jenkins для запуска удаленных узлов, согласно документации он запускается с этой опцией, так что всё должно работать.


Очень не рекомендую такой подход.
Tanuki ИМХО хорошая штучка, но Community версия только для x86
+ есть баг с атозапуском сервиса (сервис с jar) - у службы он выставлен - но не работает
есть еще кучка мелких багов... так что используйте лучше что-то более стабильное.
  • 0

#10 Vader

Vader

    Активный участник

  • Members
  • PipPip
  • 129 сообщений
  • Город:Харьков

Отправлено 12 апреля 2011 - 19:13

Нормальный вопрос. И ответ на него положительный...

Не, не, не... не путайте меня. Interactive service все-таки поднимает графическую сессию. То что он ее никому не показывает - это уже другой вопрос . Ну а черные квадраты, естественно будут, т.к. не смотря на то, что сессия есть, ее никто не отрисовывает.
А за способ спасибо. :)
  • 0

#11 Vedzmak

Vedzmak

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Николай

Отправлено 13 апреля 2011 - 08:32

Спасибо за ответы, не совсем во все вьехал, но буду разбираться.
Сам нашел ответ на второй вопрос.
Что бы увидеть как непосредственно работает Hudson: надо зайти на непосредственно сервер, там ввести в командной строке "sc qc hudson" и проверить параметр TYPE. Если там нету <interactive> то вы никак не сможете увидеть его работу. Поэтому вводим "sc config hudson type= interact type= own" (если ввести еще раз "sc qc hudson" в Type появится надпись (interactive). После этого перегружаем Hudson и наслаждаемся :)
  • 0

#12 Vedzmak

Vedzmak

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Николай

Отправлено 14 апреля 2011 - 09:10

Если используете винду без монитора, то так и должно быть, т.к. она отрубает графику когда (конечно же в большинстве случаев ошибочно) предполагает, что она не нужна.
Уже точно не помню можно ли это пофиксить через настройки, но если присоединитесь через RDP, например, то графика будет и скриншоты будут нормальные.

А вообще рекомендую использовать linux+xvfb (если вам не критичен IE).

А может ты знаешь какое-нибудь похожее на xvfb только для Windows?

Просто проблема в том что я пытаюсь обойти апплет, я заметил что при загрузке страницы фокус остается и впринципе простой эмуляцией нажатия клавиш selenium.keyPressNative его можно обходить. Это конечно криво и нужна точная настройка по времени но всё же хоть какое-то решение. Так вот что бы эмулировать это нажатие нужно что бы браузер был на переднем плане и в фокусе. Я написал код, ну в с фокусом так ничего и не придумал но заметил что при загрузке теста он помещается на передний план и запустил его локально, всё прекрасно отработало. Но запусти его через хадсон на серваке на котором нет моника все тесты свалились. Тогда я настроил хадсон что бы он отображал действия и получилось что при включенном ремоут десктопе он опять таки отрабатывает хорошо, но стоит только его отключить как все тесты опять фэйлятся. Пока что у меня одно только решение это поставить моник ан сервак и что бы он постоянно работал при выполнении тестов. Возможно получилось бы обойти эту проблему с помощью xvfb но на серваке Windows.

Сообщение отредактировал Vedzmak: 14 апреля 2011 - 09:19

  • 0

#13 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 14 апреля 2011 - 13:35

А может ты знаешь какое-нибудь похожее на xvfb только для Windows?

Искал в своё время, но так ничего и не нашёл. А почему бы не использовать Linux+Firefox? Так будет намного стабильнее, быстрее и проще. Только если требуется IE...
  • 0

#14 Vedzmak

Vedzmak

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Николай

Отправлено 14 апреля 2011 - 13:54


А может ты знаешь какое-нибудь похожее на xvfb только для Windows?

Искал в своё время, но так ничего и не нашёл. А почему бы не использовать Linux+Firefox? Так будет намного стабильнее, быстрее и проще. Только если требуется IE...

Я не могу что-то поставить на сервак без ведома его "хозяев", не то что систему переставить. А тесты должны запускаться именно на их серваке. Поэтому приходится использовать Windows+Firefox
  • 0

#15 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 14 апреля 2011 - 16:37

Я и не предлагал ставить в тайне от "хозяев" :) Расскажите им и ставьте, иначе не только с этим ещё намучаетесь.
  • 0

#16 Vedzmak

Vedzmak

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Николай

Отправлено 26 апреля 2011 - 08:38

Спасибо, линукс + xvfb решил все проблемы.
  • 0

#17 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 26 апреля 2011 - 08:40

Поздравляю! :) Правильное решение.
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных