Мы рады сообщить о начале официальной подготовки конференции Selenium Camp 2017, которая назначена на 24-25 февраля и традиционно пройдет в Киеве.
В этом году участников ожидает несколько важных изменений:
– мы решили сделать еще один шаг в сторону расширения программы конференции на автоматизацию тестирования в дополнение к темам по использованию Selenium/WebDriver, поэтому теперь доклады будут проходить в 3+ потоков (мы еще думаем сколько и какие потоки будут, но точно не меньше трех);
– мы наконец-то сменили место проведения, чтобы сделать конференцию более комфортной для участников, поэтому в этом году будем готовы принять до 500 участников и подготовим много места для общения;
– мы обновили программный комитет и будем работать над свежим видением актуальной программы, которая будет полезна и интересна отечественным специалистам.
Регистрация для участников откроется в декабре, пока мы окончательно продумываем формат и варианты билетов.
На текущий момент открыта подача докладов и формирование предварительной программы. Если у вас есть интересный опыт в сфере автоматизации тестирования, то присоединяйтесь к нашей команде докладчиков и подавайте заявку на доклад. Увидимся на Selenium Camp 2017!
В октябре состоялось знаменательное событие в жизни всех практиков автоматизации тестирования веб-приложений: увидел свет долгожданный релиз Selenium 3. Понадобилось целых 5 лет, чтобы подготовить и выпустить этот релиз. Что же изменилось и к чему готовиться?
Я с определенной долей скепсиса пробегусь по некоторым изменениям, более детально можно прочитать в официальном анонсе или в переводе на русский язык.
(more…)
Грядут новогодние праздники и мы подготовили для вас частичку “праздничного настроения” в виде приглашения на шестую конференцию Selenium Camp. В последние дни зимы 26-27 февраля мы соберем всех тестировщиков и разработчиков, неравнодушных к автоматизации тестирования, в Киеве.
В этом году мы решили продолжить движение в сторону автоматизации в целом. Selenium/WebDriver не так бурно развивается, чтобы каждый год уделять ему 2 дня с двумя потоками докладов.
Мы по-прежнему будем держать основной фокус на тестировании веб-приложений с Selenium/WebDriver, потому что веб является наиболее популярным способом предоставления сервисов в современном мире (не считаю растущего рынка мобильных приложений) и WebDriver – единственно верный инструмент для его тестирования. Но есть множество интересных тем в автоматизации тестирования, которые полезны для любых технологий и языков программирования. Наш программный комитет отобрал вот такие интересные направления на этот год:
Мы активно ищем докладчиков на указанные темы и постепенно формируем предварительную программу конференции.
Что вы еще получите на Selenium Camp 2016? Отличную возможность пообщаться с коллегами из других компаний и стран на нашем “виски пати”, пройти практические тренинги по Selenium/WebDriver перед конференцией, получить “заряд бодрости” на весь следующий год, обозначить вектор собственного развития и получения новых знаний, вырваться из рутинного рабочего окружения и провести несколько дней с единомышленниками и коллегами.
На данный момент действует этап предварительной регистрации. В этом году будет действовать наша обычная стратегия продажи билетов: они будут продаваться в 4 этапа и их будет всего 300. Как только билеты на этапе заканчиваются, начинается следующий этап. Чем раньше вы присоединились к участникам, тем больше вы сэкономили на билете. Поэтому не откладывайте вопрос с билетами на потом!
Присоединяйтесь! Будем рады видеть вас на нашей конференции!
Мы немного запоздали с официальным анонсом Selenium Camp 2015, но на то были определенные причины. Во-первых, мы сдвинули конференцию XP Days Ukraine 2014 на декабрь, что отняло много времени в конце осени и в декабре. Во-вторых, в этом году мы решили изменить формат конференции и поэтому дольше стартовали подготовку программы. Но об этом я расскажу чуть детальнее дальше.
Итак, юбилейный (5-й по счету) Selenium Camp состоится в последние дни зимы 27-28 февраля. Традиционно конференция пройдет в Киеве и будет состоять из двух дней докладов и двух дней тренингов перед основными днями (25-26 февраля). Еще в прошлом году мы всерьез задумались над тем, что Selenium/WebDriver не так бурно развивается, чтобы каждый год уделять ему 2 дня с двумя потоками докладов. И было принято решение расширить формат конференции в сторону автоматизации в целом. Мы по-прежнему будем держать основной фокус на тестировании веб-приложений с Selenium/WebDriver, потому что веб является наиболее популярным способом предоставления сервисов в современном мире (не считаю растущего рынка мобильных приложений) и WebDriver – единственно верный инструмент для его тестирования. Но есть множество интересных тем в автоматизации тестирования, которые полезны для любых технологий и языков программирования. Наш программный комитет отобрал вот такие интересные направления на этот год:
Мы активно ищем докладчиков на указанные темы и постепенно формируем предварительную программу конференции. Если вам есть о чем рассказать, то присоединяйтесь и мы будем рады видеть вас в качестве докладчика.
Ранняя регистрация на конференцию уже открыта. Мы решили открыть ее до Нового Года, чтобы позволить нашим постоянным участникам сэкономить себе на подарки. Билеты на раннем этапе регистрации посчитаны по курсу $ к гривне на уровне 14. При текущей ситуации на валютном рынке очень выгодным становится вкладывать гривну в билеты на Selenium Camp. 😉 Половина билетов уже распродана, поэтому поторопитесь!
Что вы еще получите на Selenium Camp 2015? Отличную возможность пообщаться с коллегами из других компаний и стран на нашем “виски пати”, пройти практические тренинги по Selenium/WebDriver перед конференцией, получить “заряд бодрости” на весь следующий год, обозначить вектор собственного развития и получения новых знаний, вырваться из рутинного рабочего окружения и провести несколько дней с единомышленниками и коллегами. Присоединяйтесь!
Мы уже 2 месяца занимаемся подготовкой конференции Selenium Camp 2014 и рады поделиться нашим видением программы. Это будет уже 4-ый год проведения данного мероприятия. В прошлом году конференция собрала больше 300 человек и впервые прошла в двухдневном формате. Нам он понравился и мы решили взять его в качестве стандарта.
Прежде всего, хочется сказать о важном изменении – сайт конференции теперь будет официально вестись на английском языке. При этом доклады будут как на русском так и на английском (информация о языке указывается для каждого доклада в программе). Это важно прежде всего для привлечения иностранных докладчиков и доступности информации для иностранных участников.
В этом году никаких существенных изменений в самом Selenium/WebDriver не произошло, за исключением развития мобильного направления. Мы постараемся покрыть определенные направления, которые нам кажутся интересными.
Рынок мобильных устройств развивается очень быстро, а вместе с ним и рынок мобильных приложений. А их нужно тестировать не меньше чем обычные веб-приложения. Уже давно существуют неофициальные драйвера для iOS и Android, но до недавнего времени им не уделялось достаточно внимания. В последнее время происходит много активностей вокруг этой области, недавно даже выпустили драйвер для Windows Phone. Мы считаем это направление интересным и перспективным.
Selenium/WebDriver позволяет не только писать автоматизированные функциональные тесты, но и просто удаленно управлять браузером. В паре с другими инструментами, плагинами к браузерам, разнообразными прокси-серверами вы получаете мощный инструмент для проведения разнообразных активностей со своим приложением, начиная от мониторинга, тестирования производительности, поиска “битых” ссылок и заканчивая мониторингом состояния вашего приложения.
Уровень абстракции Selenium/WebDriver очень низкий и мало подходит для тестирования напрямую. Поэтому создается все больше и больше прослоек, фреймворков и библиотек поверх него. Многие из них заточены под определенные языки программирования, другие предоставляют удобный мета-язык для разработки тестов, а также мощные отчеты и управление данными. Все они могут очень сильно упростить работу тестировщика и сложность написания и поддержки тестов.
Практические отчеты – чуть ли не самая полезная часть на каждой конференции. Люди делятся своими удачами и провалами, наработками и инструментарием, которые были опробованы в реальной практике. Этот опыт является очень полезным как для начинающих так и для уже опытных тестировщиков. В этот раздел входят вопросы масштабирования запуска тестов, подходы к отчетам, хорошие практики по написанию и поддержке тестов и многое другое.
Программа уже потихоньку публикуется на сайте, в январе планируется выложить финальную версию. Мы активно ищем интересных докладчиков. Если вам есть чем поделиться в заявленных направлениях, мы будем рады видеть вас с докладом на конференции. Подача докладов открыта до 10 января.
В этом году мы снова решили ограничить количество участников и продать только 300 билетов. Билеты продаются в 4 этапа, каждый из которых ограничен по числу билетов в наличии. Не теряйте времени и регистрируйтесь, чтобы обеспечить себе место на конференции по максимально комфортной цене. Почти 100 участников уже сделали свой выбор. Действуют групповые скидки для групп от 5 человек.
Перед конференцией, 26-27 февраля, как обычно мы проведем тренинги, целью которых будет дать больше практического материала для желающих работать с Selenium/WebDriver. При участии в тренинге вы получаете возможность купить билет на конференцию с 10% скидкой.
Присоединяйтесь, будет интересно!
Как ожидать элементы или определенные состояния на странице? Наверное, один из самых интересных вопросов, которые могут возникать при первом использовании WebDriver. Разработчики инструмента потрудились на славу, чтобы сделать этот процесс максимально комфортным и гибким.
В статье рассмотрены самые важные типы ожиданий, используя WebDriver API.
Как известно WebDriver работает с DOM. Потому ожидание загрузки страницы происходит через ожидание состояния document.readyState == complete. Это происходит автоматически после открытия страницы driver.get(), перезагрузки driver.navigate.refresh(), перехода на другие страницы посредством нажатия на веб элементы и т.д. WebDriver ожидает загрузку DOM-а страницы автоматически, потому уже не нужно вызывать waitForPageToLoad() после каждого действия, как это было в Selenium RC. Если же загрузка страницы длится очень долго и нужно прекратить ожидание, предусмотрена конфигурация pageLoadTimeout. Но стоит принимать во внимание, что если DOM не загрузился к тому моменту, вы получите TimeoutException.
driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);
На момент написания статьи работает только для Firefox и InternetExplorer.
Используя JavascriptExecutor, есть возможность выполнять любой JS на Web странице. Для функции executeAsyncScript мы можем задать граничное значение времени ожидания завершения запроса:
driver.manage().timeouts().setScriptTimeout(30, TimeUnit.SECONDS);
Их особенность в том, что ожидания указаны глобально на уровне объекта driver. И все вызовы элементов driver.findElement() будут продолжаться то тех пор, пока элемент не будет найден или будет достигунта граница времени ожидания.
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
В данном примере, при вызове функции driver.findElement(), если элемент не присутствует в DOM страницы, на протяжении 10 секунд будет происходить опрос браузера на наличие элемента. Это очень помогает при работе с AJAX компонентами.
Самая интересная тема – конфигурируемые ожидания.
Ведь очень сложно угодить всем компонентам на странице используя только стандартные средства неявных ожиданий. Особенно в тяжелых AJAX приложениях.
private final Wait<WebDriver> wait = new WebDriverWait(driver, 5, 1000);
Второй параметр принимает время timeout в секундах, третий параметр принимает время в milliseconds, которое нужно ожидать перед очередным вызовом проверки наличия элемента (500 milliseconds by default).
private final Wait<WebDriver> wait = new WebDriverWait(driver, 5).withMessage("Element was not found");
Во время процесса поиска WebDriver регулярно опрашивает браузер на наличие элемента в DOM модели. При этом существует ряд исключительных ситуаций
Когда пойман один из таких случаев, то цикл остановится и выбросит исключение.
Для того чтобы игнорировать исключения в объекте Wait предусмотрен метод ignoring:
private final Wait<WebDriver> wait = new WebDriverWait(driver, 5).ignoring(StaleElementReferenceException.class, ElementNotVisibleException.class);
private final Wait<WebDriver> wait = new FluentWait<WebDriver>(driver).withMessage("Element was not found").withTimeout(10, TimeUnit.SECONDS).pollingEvery(1, TimeUnit.SECONDS);
Объект содержит в себе всего одну функцию until, которая представляет собой правило, по которому стоит ожидать элемент. Существует набор уже определенных правил для ожиданий. Находятся они в классе ExpectedConditions:
wait.until(ExpectedConditions.visibilityOf(driver.findElement(By.id("table"))));
Часто используемые правила:
Есть возможность использовать негативные правила:
wait.until(ExpectedConditions.not(ExpectedConditions.presenceOfElementLocated(By.id("link"))));
Список всех функций доступен по ссылке.
В тех случаях, когда ни одно из готовых правил не подходит, нужно создавать свое:
Function<? super WebDriver, Object> isTextPresent = new ExpectedCondition<Object>() { @Override public Boolean apply(WebDriver webDriver) { return webDriver.findElement(By.tagName("body")).getText().contains("New topic"); } };
Если использовать объект типа WebDriverWait:
//Link private final WebDriverWait wait; //Initialization wait = new WebDriverWait(driver, 1);
Можно создавать правило используя класс Predicate:
Predicate<WebDriver> isTableLoaded = new Predicate<WebDriver>() { @Override public boolean apply(WebDriver webDriver) { List<WebElement> rows = webDriver.findElement(By.id("table")).findElements(By.tagName("tr")); return rows.size() > 1; } };
WebDriver API очень богат разного рода ожиданиями, для часто-встречающих ситуаций в автоматизации тестирования Web приложений. Чтобы упростить конфигурацию значений времени для ожиданий, их обычно выносятся в параметры запуска или сохраняют в property файл.
Используйте эти примеры для своих функциональных тестов с целью повысить их производительность и стабильность. Если какая-то из возможностей WebDriver API осталась не раскрытой, пожалуйста, напишите пример в комментариях.
Не хочешь пропускать ничего интересного? Подпишись на ленту RSS или следи за нами в Twitter!
Только вчера прошла 26-ая встреча “Клуба анонимных разработчиков” и мы уже готовы объявить о следующей встрече. Она состоится 18 апреля и темой выбрано тестирование Java веб-приложений. Веб-приложений мы пишем все больше и их тестирование становится очень актуальной проблемой. Мы также опубликовали видео с последних встреч, их можно найти на официальной странице клуба.
Одним из докладчиков выступит Алексей Резчиков, который расскажет и покажет на практических примерах как тестировать Spring MVC приложения с помощью новых возможностей Spring 3.2 без запуска веб-сервера. Николай Алименков расскажет про альтернативный подход тестирования напрямую с использованием браузера и WebDriver/Selenium. Мы приглашаем других докладчиков поделиться своим опытом тестирования веб-приложений и применяемых инструментов, подходов и практик.
Встреча пройдет в четверг 18 апреля. Местом проведения выбран офис компании ЕПАМ, который располагается по адресу ул. Кудряшова 14-Б. Наши встречи собирают все больше и больше участников, поэтому мы выбрали более просторный зал.
Внимание!!! Всем участникам нужно иметь при себе документ, удостоверяющий личность для прохождения поста охраны.
Официальное начало встречи по-прежнему в 19:00, завершение в 23:00. Стоимость участия 80 гривен при оплате заранее, 120 гривен при оплате на месте. Пива, пиццы и кофе с печеньками хватит на всех. Регистрация обязательна. Все детали по оплате будут высланы вам после успешного прохождения регистрации. Количество мест ограничено 60 участниками.
Не хочешь пропускать ничего интересного? Подпишись на ленту RSS или следи за нами в Twitter!
В последнее время не хватает времени на полноценные статьи. Это связано с подготовкой конференции Selenium Camp 2013. Мы впервые проводим конференцию в двухдневном формате и поставили себе целью собрать интереснейшую программу для тестировщиков-автоматизаторов и просто любителей Selenium/WebDriver. Поэтому пока другие активности несколько приостановлены… 🙂
Недавно появился отголосок конференции SQA Days #12, которая в этом году проходила в Минске. Организаторы опубликовали видео докладов и я могу поделиться своим выступлением. Оно как обычно было посвящено автоматизации тестирования, в этот раз пользовательского интерфейса. Вот запись:
А вот и презентация доклада:
Смотрите на здоровье и набирайтесь знаний!
Не хочешь пропускать ничего интересного? Подпишись на ленту RSS или следи за нами в Twitter!
На прошлой неделе мы подвели итоги уходящего года. Теперь пришло время поговорить о планах на этот год:
Январь будет достаточно спокойным – мы проведем только 2 публичных тренинга. Первый из них «TDD в .NET» пройдет 25-26 января. Это один из наших популярных тренингов и практически все места уже заняты. Осталось 2 свободных места для желающих принять участие. Торопитесь зарегистрироваться!
25-26 января также состоится наш новый тренинг «Проектирование сложных веб-приложений» по архитектуре и дизайну. Тренинг проводит опытнейший CTO Дмитрий Ефименко. На тренинге будут обсуждаться темы:
В конце тренинга все участники получат индивидуальные домашние задания для закрепления навыков, которые Дима готов обсудить и оценить онлайн после тренинга. Половина группы уже набрана, осталось 7 мест. Регистрация продлится до 20 января.
Февраль традиционно станет месяцем тестировщиков. 15-16 февраля мы проведем в Киеве тренинг “Exploratory Testing”. Этот тренинг преследует следующие цели:
Много практических заданий, полезный материал, интересный и опытный тренер Андрей Дзыня – все это делает тренинг одним из самых востребованных среди тестировщиков. Вы можете ознакомиться с многочисленными отзывами участников. Регистрация уже открыта, размер группы ограничен 15 участниками.
1-2 марта запланирована ежегодная конференция тестировщиков-автоматизаторов Selenium Camp 2013. Мы снова соберем в Киеве всех любителей использовать Selenium/WebDriver. Программа конференции находится на стадии формирования и уже есть много интересных выступлений. Состав докладчиков год от года становится все сильнее. В этом году мы особо пристально проводим отбор докладов, чтобы на конференцию попали только самые лучшие. На данный момент действует основной этап регистрации по цене 1500 гривен, который продлится до 15 января. Поторопитесь занять себе место среди участников!
Традиционно, перед конференцией мы проводим тренинги. В этот раз они пройдут 27-28 февраля:
На все тренинги действует единая регистрация. Вы можете получить скидку, если являетесь участником конференции. Почти половина мест уже занята, поэтому не откладывайте решение об участии в долгий ящик.
Вот такие вот у нас планы на эту зиму. Кроме перечисленных мероприятий мы проведем несколько встреч “Клуба анонимных разработчиков” и множество корпоративных тренингов. Полное расписание вы можете найти на нашем сайте. Так что работы предстоит много! Присоединяйтесь, будем рады видеть вас в качестве участников!
Не хочешь пропускать ничего интересного? Подпишись на ленту RSS или следи за нами в Twitter!
Почти 2 месяца назад я выступал на очередной онлайн конференции Auto ConfeT&QA с докладом “Не изобретайте велосипед! Грамотные функциональные тесты с WebDriver и Thucydides.”. Доклад занял лишь четвертое место по результатам голосования участников, поэтому материалы его публикуются только сейчас. Вторая причина запоздалой публикации – поломка моего нового ноутбука, на котором хранились все материалы. Я кое-как восстановил их и решил опубликовать.
При подготовке доклада я сильно переработал мои старые презентации по Thucydides, чтобы в данном докладе больше подчеркнуть, что надо делать и зачем, а не с помощью какого конкретно инструмента. Получилось, на мой взгляд, достаточно неплохо для 30-ти минут. Эту тему я собираюсь разобрать более глубоко на конференции Selenium Camp 2013 в своем одноименном докладе. А вот и слайдкаст выступления:
Не хочешь пропускать ничего интересного? Подпишись на ленту RSS или следи за нами в Twitter!