Я с недавнего времени начал изучать автоматизированное тестерование, в данный момент занимаюсть выполнением автотестов в Eclipse Java. У меня возникли некоторые трудности - тесты проходят слишком быстро и мне необходимо их замедлить. Нашел пример от Алексея Баранцева в теме http://software-test...-slow-highlight, но не могу его пример применить для своих тестов. Может кто сможет обяснить на примере? Спасибо.
Замедление прохождения теста и подсвечивание элементов в Selenium WebD
#1
Отправлено 09 сентября 2015 - 09:53
#2
Отправлено 09 сентября 2015 - 10:05
Вставляйте задержки
Thread.sleep(1000L); // секунда
Но думаю, вам лучше ознакомиться на форуме с таким понятием как ожидание.
#3
Отправлено 09 сентября 2015 - 10:19
Я с недавнего времени начал изучать автоматизированное тестерование, в данный момент занимаюсть выполнением автотестов в Eclipse Java. У меня возникли некоторые трудности - тесты проходят слишком быстро и мне необходимо их замедлить. Нашел пример от Алексея Баранцева в теме http://software-test...-slow-highlight, но не могу его пример применить для своих тестов. Может кто сможет обяснить на примере? Спасибо.
По вашей ссылке есть пример
это запуск драйвера
WebDriver regularDriver = new FirefoxDriver(); EventFiringWebDriver driver = new EventFiringWebDriver(regularDriver); driver.register(new ListenerThatWaitsBeforeAnyAction(5, TimeUnit.SECONDS));
Но вам нужен класс ListenerThatWaitsBeforeAnyAction
Создайте отдельный класс как в примере
import java.util.concurrent.TimeUnit; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.events.AbstractWebDriverEventListener; public class ListenerThatWaitsBeforeAnyAction extends AbstractWebDriverEventListener { private final long timeout; public ListenerThatWaitsBeforeAnyAction(long timeout, TimeUnit unit) { this.timeout = TimeUnit.MILLISECONDS.convert(Math.max(0, timeout), unit); } public void beforeNavigateTo(String url, WebDriver driver) { sleep(); } public void beforeNavigateBack(WebDriver driver) { sleep(); } public void beforeNavigateForward(WebDriver driver) { sleep(); } public void beforeClickOn(WebElement element, WebDriver driver) { sleep(); } public void beforeChangeValueOf(WebElement element, WebDriver driver) { sleep(); } public void beforeScript(String script, WebDriver driver) { sleep(); } private void sleep() { try { Thread.sleep(timeout); } catch (InterruptedException e) { e.printStackTrace(); } } }
Все, запускаете тесты и они у вас медленно проходят
Проверил только что у себя - работает
#4
Отправлено 09 сентября 2015 - 11:25
Запускайте FireFox драйвером , а не Chrome. Будет помедленнее
#5
Отправлено 09 сентября 2015 - 11:34
Запускайте FireFox драйвером , а не Chrome. Будет помедленнее
1. В том то и дело что нужно проверять на в нескольких браузерах
2. В форме регистрации есть ограничение по времени заполнения формы
3. Если проверять одним FF, то можно ограничится и Selenium IDE
#6
Отправлено 09 сентября 2015 - 11:39
Я с недавнего времени начал изучать автоматизированное тестерование, в данный момент занимаюсть выполнением автотестов в Eclipse Java. У меня возникли некоторые трудности - тесты проходят слишком быстро и мне необходимо их замедлить. Нашел пример от Алексея Баранцева в теме http://software-test...-slow-highlight, но не могу его пример применить для своих тестов. Может кто сможет обяснить на примере? Спасибо.
По вашей ссылке есть пример
это запуск драйвера
WebDriver regularDriver = new FirefoxDriver(); EventFiringWebDriver driver = new EventFiringWebDriver(regularDriver); driver.register(new ListenerThatWaitsBeforeAnyAction(5, TimeUnit.SECONDS));Но вам нужен класс ListenerThatWaitsBeforeAnyAction
Создайте отдельный класс как в примере
import java.util.concurrent.TimeUnit; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.events.AbstractWebDriverEventListener; public class ListenerThatWaitsBeforeAnyAction extends AbstractWebDriverEventListener { private final long timeout; public ListenerThatWaitsBeforeAnyAction(long timeout, TimeUnit unit) { this.timeout = TimeUnit.MILLISECONDS.convert(Math.max(0, timeout), unit); } public void beforeNavigateTo(String url, WebDriver driver) { sleep(); } public void beforeNavigateBack(WebDriver driver) { sleep(); } public void beforeNavigateForward(WebDriver driver) { sleep(); } public void beforeClickOn(WebElement element, WebDriver driver) { sleep(); } public void beforeChangeValueOf(WebElement element, WebDriver driver) { sleep(); } public void beforeScript(String script, WebDriver driver) { sleep(); } private void sleep() { try { Thread.sleep(timeout); } catch (InterruptedException e) { e.printStackTrace(); } } }Все, запускаете тесты и они у вас медленно проходят
Проверил только что у себя - работает
1. Драйвер нужно запускать в своем тесте?
2. Отдельный класс создавать в package с другими классами теста?
Сделал так , теперь у меня откывается окно браузера и и больше ничего не происходит
#7
Отправлено 09 сентября 2015 - 11:43
1. Драйвер нужно запускать в своем тесте?
как у тебя сделано, я хз. Замени свою "условную строчку"
WebDriver driver= new FirefoxDriver();
На
WebDriver regularDriver = new FirefoxDriver();
EventFiringWebDriver driver = new EventFiringWebDriver(regularDriver);
driver.register(new ListenerThatWaitsBeforeAnyAction(5, TimeUnit.SECONDS));
2. Отдельный класс создавать в package с другими классами теста?
Не важно, как тебе удобно
Сделал так , теперь у меня откывается окно браузера и и больше ничего не происходит
ошибки должны быть
#8
Отправлено 09 сентября 2015 - 11:54
Если тесты выполняются быстро -- это хорошо.
И если при этом сбоит какая-то отдельная команда -- не стоит замедлять работу всех команд равномерно, нужно аккуратно добавить ожидание (или хотя бы просто паузу) в одно единственное место.
Пример с замедлением и подсветкой я делал вовсе не для преодоления нестабильности тестов. Просто иногда их удобно использовать вместо демонстрационных видеороликов. Согласитесь, когда работа приложения демонстрируется "вживую" -- это выглядит гораздо круче :)
Сейчас техника продвинулась вперёд, и уже не нужно использовать EventFiringWebDriver, есть более правильный способ -- использование WebDriverWrapper:
https://github.com/b...ingWrapper.java
1) Подключаете библиотеку webdriver-wrapper
http://search.maven....pper|1.0.47|jar
2) Инициализируете драйвер, оборачиваете его вот так:
WebDriver driver = new HighlightingWrapper(new FirefoxDriver());
и пользуетесь.
По умолчанию задержки 2 секунды, но можно это менять, смотрите разные конструкторы класса HighlightingWrapper.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#9
Отправлено 09 сентября 2015 - 13:07
как у тебя сделано, я хз. Замени свою "условную строчку"
Сделал вот так
#10
Отправлено 09 сентября 2015 - 13:28
скинь весь проект, по частям ничего не понятно
#11
Отправлено 10 сентября 2015 - 06:54
скинь весь проект, по частям ничего не понятно
#12
Отправлено 10 сентября 2015 - 06:59
Если тесты выполняются быстро -- это хорошо.
И если при этом сбоит какая-то отдельная команда -- не стоит замедлять работу всех команд равномерно, нужно аккуратно добавить ожидание (или хотя бы просто паузу) в одно единственное место.
Пример с замедлением и подсветкой я делал вовсе не для преодоления нестабильности тестов. Просто иногда их удобно использовать вместо демонстрационных видеороликов. Согласитесь, когда работа приложения демонстрируется "вживую" -- это выглядит гораздо круче :)
Сейчас техника продвинулась вперёд, и уже не нужно использовать EventFiringWebDriver, есть более правильный способ -- использование WebDriverWrapper:
https://github.com/b...ingWrapper.java
1) Подключаете библиотеку webdriver-wrapper
http://search.maven....pper|1.0.47|jar
2) Инициализируете драйвер, оборачиваете его вот так:
WebDriver driver = new HighlightingWrapper(new FirefoxDriver());и пользуетесь.
По умолчанию задержки 2 секунды, но можно это менять, смотрите разные конструкторы класса HighlightingWrapper.
Скажите, а этот драйвер WebDriverWrapper, он отвечает за замедление или подсветку?
#13
Отправлено 10 сентября 2015 - 07:01
Ты baseUrl специально пустым оставил ? :)
#14
Отправлено 10 сентября 2015 - 07:27
да
#15
Отправлено 10 сентября 2015 - 07:28
Ты baseUrl специально пустым оставил ? :)
Я подставлял туда адрес сайта но, он все равно открывает окно браузера и тормозит
#16
Отправлено 10 сентября 2015 - 07:48
Сейчас нет времени проверить твой код, но скачай последнюю версию селениума, вполне возможно из-за этого проблемы
#17
Отправлено 10 сентября 2015 - 08:09
Сейчас нет времени проверить твой код, но скачай последнюю версию селениума, вполне возможно из-за этого проблемы
селениума ide стоит последняя версия 2.9.0
selenium standalone server 2.47.1 вроде тоже последняя
#18
Отправлено 11 сентября 2015 - 13:45
Скажите, а этот драйвер WebDriverWrapper, он отвечает за замедление или подсветку?
HighlightingWrapper занимается и подветкой, и задержками.
Нет смысла подсвечивать без задержек -- всё равно ничего не успеваешь заметить :)
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#19
Отправлено 06 ноября 2015 - 08:25
а для C# такой приятности нет?)Если тесты выполняются быстро -- это хорошо.
И если при этом сбоит какая-то отдельная команда -- не стоит замедлять работу всех команд равномерно, нужно аккуратно добавить ожидание (или хотя бы просто паузу) в одно единственное место.
Пример с замедлением и подсветкой я делал вовсе не для преодоления нестабильности тестов. Просто иногда их удобно использовать вместо демонстрационных видеороликов. Согласитесь, когда работа приложения демонстрируется "вживую" -- это выглядит гораздо круче :)
Сейчас техника продвинулась вперёд, и уже не нужно использовать EventFiringWebDriver, есть более правильный способ -- использование WebDriverWrapper:
https://github.com/b...ingWrapper.java
1) Подключаете библиотеку webdriver-wrapper
http://search.maven....pper|1.0.47|jar
2) Инициализируете драйвер, оборачиваете его вот так:WebDriver driver = new HighlightingWrapper(new FirefoxDriver());и пользуетесь.
По умолчанию задержки 2 секунды, но можно это менять, смотрите разные конструкторы класса HighlightingWrapper.
Тестировщик должен быть умнее программиста... ну, по крайней мере, хитрее. ©
#20
Отправлено 06 ноября 2015 - 09:11
Мне кажется тебе эта штука поможет - http://www.seleniumh...er_advanced.jsp
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных