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

Фотография

Выполнение действий дравера на заднем плане.

селениум автотестирование

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

#1 volnoboy

volnoboy

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

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Владимир Волнобой

Отправлено 25 июля 2014 - 13:17

Всем доброго времени суток!

Не так давно я поменял место работы. На моем прошлом проекте мы работали в Windows, использовали такие технологии для тестирования веб:  c#, selenium, chromedriver, MStest. Без каких либо дополнительных настроек наши тесты проходили на заднем плане. То есть, запускался хром драйвер и забирал на себя фокус, но если где-то кликнуть в другом месте, то драйвер уходил на задний план и продолжал работать до конца теста. Можно было спокойно продолжить кодить или смотреть туториалы на ютуб, пока драйвер откликает все шаги.

И вот я перешел на новый проект, мы сидим под Ububtu, используем: java, selenium, chromedriver , jbehave, thucidides. Тут появилась проблема, которая очень бесит. Хром драйвер запускается, и пока тест проходит он постоянно в фокусе, то есть каждое действие дравера делает его окно активным. Кликать и печатать невозможно, так как из-за этого тест может упасть. И вообще это невозможно, так как кликаешь в никуда. 

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

Сразу скажу, что мы запускали тесты через phantomjs, а также на виртуальной машине с помощью вагранта и виртуал бокс. Эти варианты нас не устроили по разным причинам. 

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


  • 0

#2 barancev

barancev

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

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


Отправлено 26 июля 2014 - 11:18

Про Mac ответить не могу, не работаю с этой платформой.

Под Linux обычно для "сокрытия" браузера используется виртуальный X-сервер, наиболее популярен xvfb. Схема такая: запускается xvfb, потом переменная DISPLAY настраивается так, чтобы она указывала на этот виртуальный сервер, после чего запускаются тесты, и браузер стартует в этом виртуальном X-сервере на виртуальном дисплее, и его не видно вообще. То есть он даже не на заднем плане, а на переднем, только дисплей невидимый, виртуальный. Это хорошо, потому что при нахождении браузера на заднем плане, например, не срабатывают обработчики событий onblur, то есть поведение веб-приложения может меняться, а это искажает результаты тестирования.

По запросу xvfb selenium headless гугл находит множество описаний, как это запускать, в том числе для разных языков есть даже обёртки вокруг xvfb, позволяющие стартовать его не из консоли, а прямо из самих тестов.

Ну и конечно же можно запускать удалённо в виртуалке, либо сделать собственный стенд, либо пользоваться облачными сервисами. Если расскажете, почему виртуалки не устроили -- можно попытаться решить эти проблемы.


  • 1
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#3 volnoboy

volnoboy

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

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Владимир Волнобой

Отправлено 28 июля 2014 - 08:11

Спасибо. Мы попробуем этот вариант с xvfb. А вообще хотелось бы узнать причину разного поведения в windows и unix система?


  • 0

#4 barancev

barancev

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

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


Отправлено 28 июля 2014 - 08:42

Спасибо. Мы попробуем этот вариант с xvfb. А вообще хотелось бы узнать причину разного поведения в windows и unix система?

 

Не знаю, можно спросить разработчиков chromedriver :)

 

Вообще говоря, вам до этого просто везло -- под Windows тоже возникают проблемы, если одновременно с работой тестов что-то печатать на клавиатуре, особенно если при этом нажимаются клавиши Ctrl/Shift/Alt.


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



Темы с аналогичным тегами селениум, автотестирование

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

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