Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Selenium WebDriver: полное руководство, начало 15 сентября



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


Selenium WebDriver: полное руководство, начало 15 сентября
2017-08-10 15:53

Онлайн-тренинг по инструменту Selenium 3.0 от Алексея Баранцева, 12 занятий по 45-60 минут с домашними работами и постоянными консультациями тренера.

 

Основные принципы, на которых будет строиться новый учебный курс и чем он будет отличаться от наших предыдущих тренингов и от того, что предлагают другие учебные центры.

 

1. Selenium во главе угла

Достаточно часто можно встретить “тренинги по Selenium”, программа которых содержит всё, что пришло в голову автору тренинга -- основы программирования, XML, SQL, JUnit, Maven, Jenkins, Git, ну и немного про Selenium.

Это, конечно, выглядит привлекательно -- на одном тренинге выучить сразу всё. Но в итоге получается в точности наоборот -- ни одна из тем не покрывается достаточно полно.

В нашем новом тренинге главным будет Selenium.

Это не означает, что смежные темы совсем не будут рассматриваться. Целое занятие будет посвящено настройке инфраструктуры. Говоря о поиске элементов, нельзя обойти стороной XPath и CSS. При обсуждении способов запуска тестов попутно поговорим про Docker. Разговор о шаблоне проектирования PageObject и его альтернативах тесно связан с вопросом о том, как вообще строить архитектуру тестов.

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

2. Полнота материала

Ни на каком другом тренинге и ни в одной книге Вы не найдёте более полной информации о Selenium 3.0.

Если найдёте -- мы Вам дадим скидку 50% на этот учебный курс :)

3. Мультиязычность

Основные принципы и приёмы использования Selenium, рассматриваемые в тренинге, будут сопровождаться примерами на пяти языках, которые “официально” поддерживаются разработчиками Selenium: Java, C#, Python, Ruby, JavaScript.

Selenium это языковонезависимый стандарт, описывающий набор команд для управления браузером. Реализации этого стандарта для разных языков программирования похожи друг на друга, и это неудивительно -- они реализуют один и тот же набор команд.

Вместе с тем, особенности каждого языка, его стиль, накладывают отпечаток на реализацию Selenium для этого языка. Поэтому в тренинге будут специальные модули, посвящённые именно таким особенностям.

Даже если какой-то язык для вас “неродной” -- мы всё равно рекомендуем смотреть “чужие” модули. Может быть после этого вы решите сменить язык :)

4. Selenide, Protractor, PageObjects и другие модные темы

Отдельное занятие будет посвящено разнообразным надстройкам над Selenium.

Их много, они решают разные задачи, некоторые из них более популярны, другие не так известны, но ничуть не хуже.

Каждая надстройка добавляет что-то к функциональности Selenium, поэтому их удобно рассматривать не как самостоятельные инструменты, а именно в сравнении с Selenium -- чем именно каждая из них отличается от общего “базиса”.

 

Подробная программа и условия участия



Почему возникает плавающая ошибка InvalidSelectorException
2017-08-15 10:07

Добрый день!

 

У меня возникает следующая проблема.Возникает плавающая ошибка  InvalidSelectorException, что само по себе странно.

Использую:

selenium 2.53.0

IE 11

драйвер: IEDriverServer_Win32_3.4.0

Я получаю плавающую ошибку:

org.openqa.selenium.InvalidSelectorException: Unable to locate an element with the xpath expression .//input[@value='Очистить'] because of the following error:

Error: Разрешение отклонено (WARNING: The server did not provide any stacktrace information)

Command duration or timeout: 62 milliseconds

For documentation on this error, please visit: http://seleniumhq.org/exceptions/invalid_selector_exception.html

Build info: version: '2.53.0', revision: '35ae25b1534ae328c771e0856c93e187490ca824', time: '2016-03-15 10:43:46'

System info: host: 'DF3-131016-NE03', ip: '10.80.16.134', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_102'

Driver info: org.openqa.selenium.ie.InternetExplorerDriver

Соответственно элемент на странице существует, более того driver().getPageSource() возвращает во время ошибки: 

...
<TD>
<INPUT class=btn onclick="getSubmit('dcForm', 'clear')" type=button value=Очистить> 
</TD>
...

При явном ожидании элемента, периодически получаю InvalidSelectorException, NoSuchElementException в зависимости от ожидания

 

Попробовал реализовать самостоятельное ожидание 

public WebElement findElementTo(By xpath, int timout){    
            long deadLine = DateManager.getCurrentTimestamp() + (timout*1000);
                while(deadLine > DateManager.getCurrentTimestamp()){
                        try{
                               WebElement WebElement= find(xpath);
                               return WebElement;
                        }catch(Exception e){
                               LOG.info("Ошибкак при получении элемента\n"+Init.getWebDriver().getPageSource()+"\n"+e);
                        }
        }       
                WebElement WebElement= find(xpath);
                return WebElement;             
        }

        private WebElement find(By xpath) throws InvalidSelectorException{     
                WebElement WebElement = Init.getWebDriver().findElement(xpath);        
            if(WebElement.isDisplayed()){
                return WebElement;
            }
            throw new org.openqa.selenium.ElementNotVisibleException("Элемент не виден. Xpath="+xpath+"\n\n\n");
        }       

Соответственно постоянно идет обращение к получению элемента и в течении 10 мин я могу получать ошибку InvalidSelectorException. Замечу это не регулярная ошибка, она периодически возникает на разных элементах. 

На странице используются AJAX запросы 

Как решение проблемы, делаю такие грабли 

public void waitForJQueryLoad(long timeout) { 
                 WebDriverWait wait = new WebDriverWait(Init.getWebDriver(), timeout);
                wait.until(new ExpectedCondition<Boolean>(){ 
                         @Override
                        public Boolean apply(WebDriver driver){
                               Boolean active = false;
                               JavascriptExecutor js = null;
                               try{
                                       js = ((JavascriptExecutor)driver);
                                       active = (Boolean)js.executeScript("return $j.active == 0");
                               }catch(WebDriverException e){
                                       LOG.info("Ошибка драйвера:\n"+e);
                               }
                               LOG.info("$.active="+active);
                               return active; 
                        }
                });
                 try {
                        //Таймаут необходим, для отрисовки элементов DOM, после JQuery запросов.
                        Thread.sleep(250);
                } catch (InterruptedException e) {
                        // TODO Автоматически созданный блок catch
                        e.printStackTrace();
                }

То есть дожидаюсь что бы все AJAX запросы были выполнены и жду построения ДОМ в течении 0,25 сек

 

Но возникает 3 вопроса

1) почему возникает именно ошибка InvalidSelectorException - она же означает, что xpath не валидный, либо возвращается не WebElement, а текст к примеру

в нашем случае тут явно WebElement

2) Единственно, я могу предположить, что ДОМ не успел до строиться,например странно (value=Очистить - почему то без кавычек), но тогда почему при последующих запросах, получения того же элемента WebElement WebElement= find(xpath);, ДОМ не перестраивается для драйвера? То есть если в текущем тесте получили  InvalidSelectorException, то она так и появляется, пока таймаут не закончится. (Приложение отрабатывает корректно)

3) Может не корректная конфигурация? 

 

Хочется понять в связи с чем такого рода ошибки. Пока мысли, что драйвер для IE не корректно отрабатывает.



Стратегия автоматизации тестирования для Agile-проектов
2017-08-15 10:57

Оригинальная публикация: https://www.testingexcellence.com/test-automation-strategy-for-agile-projects/

 

Перевод статьи: https://tproger.ru/translations/test-automation-strategy-for-agile-projects/

 

Использование автоматизированного тестирования предоставляет огромные возможности и позволяет существенно повысить надёжность кода и безопасность приложения. Поэтому разработка крупных и сложных систем непременно требуют привлечения специалистов в области автоматизированного тестирования. С другой стороны, автоматизированное тестирование — процесс достаточно сложный как с точки зрения написания кода, так и с точки зрения методологии и организации процессов в команде. Предлагаем вашему вниманию перевод статьи о построении автоматизированного тестирования на Agile-проектах.

 

Читать публикацию полностью



Load Testing
2017-08-15 12:02

Всем доброго времени суток, вопрос заключается в следующем, мне нужно провести нагрузочное тестирование с нагрузкой в 6000 ++ юзеров на серверно ориентированное приложение WinApi (было написано на Delphi) имеет коннект к Oracle DB. Хотелось бы узнать, как лучше всего сделать такую нагрузку, и была ли практика у кого то. Пробывал всё сделать через Load Runner, но как понимаю в Vugen скрипт не запишешь, т.к нету протокола по которому можно записать WinApi, после чего для написания скрипта я воспользовался UFT Function Testing.Но скрипт записанный c помощью UFT, не даёт тех метрик, которые нужны(((( Мб что ещё есть ?.Буду очень благодарен за помощь. :yu: 



Требуется Тестировщик ПО
2017-08-15 14:09
Обязанности:
  • Функциональные тестирования веб-приложений;
  • взаимодействие с разработчиками и менеджерами проектов;
  • создание тестовой документации: чек листов, тест-планов, отчетов.
Требования:
  • Опыт работы в тестировании - 2 года;
  • Отличные знания различных методологий тестирования;
  • Опыт написания test cases & bug reports;
  • Опыт работы с console/firebug;
  • знание полезных инструментов тестирования для веб-приложений;
  • знание языков программирования Java, PHP, JavaScript на уровне чтения кода будет плюсом;
  • Понимание специфики работы с высоконагруженными онлайн проектами - большое преимущество;
  • Опыт составления качественных ТЗ (написание + контроль выполнения);
  • Английский язык - средний (чтение и письмо);
  • Желание профессионально развиваться и учиться новому;
  • Желание находить несовершенства и уязвимости в проекте и их ликвидировать
Условия:
  • Заработная плата от 50 000;
  • Оформление по ТК РФ, график работы 5/2 ;
  • Современный офис в бизнес-центре вблизи ст. м. Тульская;
  • Возможности профессионального роста.
  • Резюме на почту nefertiti.ru@mail.ru


Не формируются отчеты в Allure (Pytest+Selenium web driver)
2017-08-15 14:32

Версия Python: 3.5.3

Версия Pytest:  3.2.1

Версия Allure: 2.3.3

allure-pytest-2.2.1b1

 

Запускаю следующей командой:

py.test C:\Python35\newtest.py --alluredir C:\Python35\alluretest

В папке alluretest появляется лишь json файл с результатами теста.

В папке с allure (C:\Python35\allure-2.3.3\bin\allure-report) есть файлы, но при открытии index.html в любом разделе появляется ошибка 404.

 

Подскажите, пожалуйста, как сгенерировать нормальный allur'овский отчет в нужной мне папке?



Бесплатный почтовик для большого количества спама
2017-08-15 14:33

Привет. Для проведения одного из сценариев нагрузочного теста в поиске почтовика, в котором не нужна рега для создания ящика. Как маилинатор, только другой нужен, который сможет выдерживать большое количество запросов на прочтение писем .. Есть что-то такое проверенное у кого-то на примете? юзал mailforspam , но при количестве потоков больше 5 иногда начинает отдавать 503 ошибку. 



Техники и инструменты поиска и оформления дефектов, 21 августа
2017-08-15 18:16

Онлайн-тренинг, 2 месяца занятий, 9 занятий, 23 практических домашних работы, постоянные консультации тренера в скайп-чате

 

тренер: Ольга Назина (Киселева)

 

Всё о заведении задач, которые не закрывают как Won`t fix. Соберем логи, сбросим кеш, поищем границы и дадим полную информацию по воспроизведению.

 

На курсе мы будем решать задачи из реальной жизни:

  • Залезть на сервер linux, найти нужный лог, изучить стек-трейс.
  • Перехватить сообщение в консоли разработчика.
  • Прочитать ответ, пришедший с сервера.
  • Найти баг кеширования на сервере.
  • Проверить классы эквивалентности и найти баги граничных значений.
  • Локализовать проблему.
  • Выкинуть все лишнее из шагов.
Кому полезен курс

1. Интеграторам
2. Аутсорсу, которых вечно кидают на разные проекты, включая те, где нужны логи, post-запросы и.т.д.
3. Фрилансерам по той же причине
4. Обычным тестировщикам для развития, чтобы разгрузить разработчиков

 

Подробное описание курса



Уменьшить задержку тестирования задач
2017-08-15 19:12

Добрый день!
Дано:
Небольшая команда из  25 веб. разработчиков, работа удаленная.
Самописная Система управления проектами (по методологии Scrum), баг трекер так же самописный.

Задача: Уменьшить задержку между статусами Выполнено и Проверено у таска.
Сейчас это в среднем 15 часов.
Какие у кого будут идеи?
Заранее Спасибо.


 



© 2010 | Software-Testing.Ru


В избранное