Вторая версия Selenium не является результатом эволюционного развития первой. Это абсолютно новый инструмент, с новым интерфейсом и новыми возможностями, которыми не обладала предыдущая версия. Основные отличия Selenium 2.0 и 1.0 описаны в статье "Раз селениум, два селениум", а подробное сравнение двух версий будет одной из ключевых тем данного тренинга -- демонстрация примеров будет производиться сразу для двух версий параллельно.
Тренинг будет состоять из шести занятий, разбитых на три модуля по два занятия в каждом.
Освоения материала первого модуля слушателям будет достаточно для того, чтобы установить и настроить всё необходимое для разработки и выполнения тестов с использованием Selenium 2.0. Второй модуль посвящен рассмотрению различных расширений Selenium, в том числе не только для языка Java. Cреди этих расширений (только не удивляйтесь) встретится другой популярный инструмент автоматизации веб-тестов Watir (да-да!), инструменты для тестирования приложений в мобильных браузерах и даже инструменты для удаленного тестирования нативных Windows-приложений! В третьем модуле, наиболее сложном технически, будут обсуждаться различные тонкости программирования автотестов.
Часто во время курса "Быстрое Тестирование ПО", я провожу упражнение, в ходе которого прошу людей записать те вещи, которые, по их мнению, замедляют тестирование и делают его сложней. Эти списки отлично ложатся на шаблон, который я снова и снова слышу от тестировщиков (вы можете посмотреть пример такого шаблона в этой беседе на Stack Exchange). Обычные пункты в этих списках выглядят так:
Я - тестировщик, работающий один с несколькими программистами (или несколько тестировщиков работающих с большим числом программистов).
Мне приходится работать в чудовищных временных рамках. Сборки приходят постоянно и мы работаем в одно- двух-недельных циклах.
Продукт(ы) который(е) я тестирую очень сложный(е).
Очень много взаимозависимостей между компонентами продукта или между продуктами.
Я вижу устоявшийся шаблон ошибок, связанных с этими взаимозависимостями. Даже малейшие изменение может привести к чудовищным последствиям по всему продукту.
Я думаю, мне нужно прогонять полный цикл регрессионных тестов, чтобы обнаружить как можно больше таких ошибок.
Я пытаюсь справиться со всем этим при помощи автоматических проверок, но вся эта сложность делает автоматизацию крайне затруднительной, в лучшем случае у меня есть пара способов обойти проблему при помощи нескольких тестовых приемов, а частые изменения делают всю эту конструкцию очень хрупкой.
На поддержание автоматических тестов уходит столько времени, что почти ничего не остается на другую тестовую активность.
Я чувствую, что перегружен всем этим, но я пытаюсь справиться.
В добавок к этому:
Организация на которую я работаю говорит, что она работает по Agile.
Кроме двухнедельных итераций мы так же активно практикуем две другие вещи, часто ассоциирующиеся с Agile разработкой, обычно это ежедневные скрам митинги или доски Канбан.
Ах да, вот еще:
Сборки, которые я получаю, очень нестабильные. Система практически всегда валится после нескольких простейших smoke-тестов. Мне приходится тратить много времени на ожидание новой сборки или переконфигурацию, прежде чем я могу приступить к другим вещам
Как мы можем принять во внимание все эти наблюдения?
Мы можем интерпретировать их как проблемы тестирования, или мы можем взглянуть на них с другой стороны: как на результаты тестирования.
Ежедневно несколько сотен человек по два часа неотрывно следили за происходящим на экранах своих компьютеров, а многие включали прямые трансляции для тестировщиков всей компании. Доклады шли в один поток, поэтому не было проблемы выбора и можно было прослушать всё-всё-всё. Презентации имели сугубо практичную направленность, а времени на них отводилось всего 20 минут, докладчики говорили только по сути вопроса, без ненужных отступлений. На вопросы докладчику отводилось 15 минут, но этого, конечно, не хватало, поэтому обсуждение переносилось в форум, где не утихает и до сих пор.
Во время конференции участники вели прямую трансляцию в твиттере с самыми непредвзятыми оценками: от интересных моментов, необычных слайдов и запомнившихся цитат до прямой критики. Трендом стало обсуждение рабочих столов докладчиков :)
Все презентации и видео-материалы собраны, сейчас проходит голосование на звание лучшего докладчика конференции и самого активного участника.
Многие докладчики и слушатели уже написали свои отзывы на прошедшую конференцию, ознакомиться с ними можно тут:
Как достать все эелементы из таблицы?
2011-10-24 11:16
Есть такая проблема. Есть таблица с данными, с помощью SQL запроса я получаю данные из БД. С помощью Селениума я хочу получить то, что выдается на экране, что-бы потом сравнить. Есть ли такая возможность? VerifyBody и verifyTable не помогают(((
TruClient: Как прокрутить drop-down лист (ajax)
2011-10-24 11:24
Интерфейс написан на AJAX.
Есть на странице элемент drop-down list, в качестве примера возьмем список годов 2000 - 2020
Данные этого листа подгружаются только во момент прокрутки его.
Таким образом визуально видно только 10 элементов списка, т.е. 10 лет.
На данный момент выбор года из этого списка состоит из 2-х шагов:
1)Нажимаем на сам drop-down list: Click on element
2)Нажимаем на видимый нам год: Click on element
Как мне в truclient прокрутить список вниз, что бы скажем нажать на 2019-й год.
Что то с Scroll into View у меня не получалось или я не знаю как делать.
Спасибо!
КА) Администратор DBA
2011-10-24 12:25
В IT-компанию разработчик ПО требуется Администратор DBA
Требования
Возраст от 22 до 35 лет
Пол Муж.
Образование Высшее, н/в
Отличное знание Oracle.
Опыт администрирования не менее 2 лет.
Работа в Unix-средах.
Должностные обязанности Oracle DBA:
администрирование СУБД на серверах компании и серверах клиентов компании.
Условия:
З/п вилка до 110 000 руб. в месяц, оформление по ТК.
Город Москва (ст. м. Водный Стадион)
Испытательный срок 3 месяца. Работа в офисе
_______________________
Резюме высылать на эл. адрес
hr3@profelite.ru
КА) Администратор DBA
2011-10-24 12:25
В IT-компанию разработчик ПО требуется Администратор DBA
Требования
Возраст от 22 до 35 лет
Пол Муж.
Образование Высшее, н/в
Отличное знание Oracle.
Опыт администрирования не менее 2 лет.
Работа в Unix-средах.
Должностные обязанности Oracle DBA:
администрирование СУБД на серверах компании и серверах клиентов компании.
Условия:
З/п вилка до 110 000 руб. в месяц, оформление по ТК.
Город Москва (ст. м. Водный Стадион)
Испытательный срок 3 месяца. Работа в офисе
_______________________
Резюме высылать на эл. адрес
hr3@profelite.ru
КА) Администратор DBA
2011-10-24 12:28
В IT-компанию разработчик ПО требуется Администратор DBA
Требования
Возраст от 22 до 35 лет
Пол Муж.
Образование Высшее, н/в
Отличное знание Oracle.
Опыт администрирования не менее 2 лет.
Работа в Unix-средах.
Должностные обязанности Oracle DBA:
администрирование СУБД на серверах компании и серверах клиентов компании.
Условия:
З/п вилка до 110 000 руб. в месяц, оформление по ТК.
Город Москва (ст. м. Водный Стадион)
Испытательный срок 3 месяца. Работа в офисе
_______________________
Резюме высылать на эл. адрес
hr3@profelite.ru
Junior/Middle/ Senior C++ Developers in Kiev
2011-10-24 12:50
Крупная международная компания, разработчик передовых технологий для различных сфер бизнеса с многолетним опытом работы на рынке, приглашает C++ разработчиков присоединиться к команде талантливых профессионалов в украинском офисе компании.
Требования:
- Высшее образование;
- Опыт разработки программных продуктов в C++ от 6 мес.;
- Гибкость мышления;
- Желание учиться новому и развиваться.
Дополнительным преимуществом будет:
- Опыт работы с Android;
- Хороший разговорный английский язык.
Компания предлагает:
- Работа в международной, стабильной компании;
- Участие в интересных проектах;
- Достойная заработная плата (до 3000 $ в зависимости от квалификации и проекта в котором Вы будете принимать участие);
- Социальное обеспечение и медицинская страховка;
- Гибкие (рабочие) часы (гибкий график);
- Комфортабельный офис с наличием кухни (чай, кофе), тренажерного зала и душевых;
- Обед за счет компании;
- Обучение и повышение квалификации, курсы английского языка (в рабочее время и за счет компании).
Вакансия открыта в Киеве. При переезде из другого города компания выделяет определенную сумму денег в качестве подъемных.
Мы постоянно ищем ярких, талантливых и ориентированных на результат профессионалов. Пожалуйста, присылайте нам свои расширенные резюме на английском языке с описанием проектов, в которых вы участвовали (и по возможности ссылками на них) по электронной почте: dariak0111@gmail.com.
В теме почты, пожалуйста, указать название должности: «C++ developer»
Тел. + 38 (044) 587 62 92
Junior/Middle/ Senior Java Developers in Kiev
2011-10-24 12:52
Крупная международная компания, разработчик передовых технологий для различных сфер бизнеса с многолетним опытом работы на рынке, приглашает Java разработчиков присоединиться к команде талантливых профессионалов в украинском офисе компании.
Требования:
- Высшее образование;
- Опыт разработки коммерческих программных продуктов в Java от 6 мес.;
- Гибкость мышления;
- Желание учиться новому и развиваться.
Дополнительным преимуществом будет:
- Опыт работы с J2ME, Android;
- Хороший разговорный английский язык.
Компания предлагает:
- Работа в международной, стабильной компании;
- Участие в интересных проектах;
- Достойная заработная плата (до 3000 $ в зависимости от квалификации и проекта в котором Вы будете принимать участие);
- Социальное обеспечение и медицинская страховка;
- Гибкие (рабочие) часы (гибкий график);
- Комфортабельный офис с наличием кухни (чай, кофе), тренажерного зала и душевых;
- Обед за счет компании;
- Обучение и повышение квалификации, курсы английского языка (в рабочее время и за счет компании).
Вакансия открыта в Киеве. При переезде из другого города компания выделяет определенную сумму денег в качестве подъемных.
Мы постоянно ищем ярких, талантливых и ориентированных на результат профессионалов. Пожалуйста, присылайте нам свои расширенные резюме на английском языке с описанием проектов, в которых вы участвовали (и по возможности ссылками на них) по электронной почте: dariak0111@gmail.com.
В теме почты, пожалуйста, указать название должности: «Java developer»
Тел. + 38 (044) 587 62 92
Вакансия: Тестировщик (веб-приложения) в Softline Новосибирск
2011-10-24 13:43
Компании Softline, ведущая международная компания в области лицензирования программного обеспечения и предоставления полного спектра IT-услуг, требуется тестировщик.
Требования:
∙Умение работать в условиях нечеткой постановки задачи;
∙Умение организовывать свою работу.
∙Внимание к деталям, ответственность, скрупулезность, аккуратность, усидчивость.
∙Отличные коммуникативные качества.
Приветствуется:
∙Опыт работы с системами контроля версий;
∙Опыт работы с системами багтрекинга;
∙Базовые навыки администрирования Linux;
Личные качества:
∙Желание учиться и развиваться;
∙Способность к обучению;
∙Ответственность;
∙Коммуникабельность, умение и желание работать в команде.
∙Испытательный срок 2 месяца.
∙Официальное трудоустройство;
∙Соц.пакет согласно ТК РФ;
∙Полностью белая заработная плата;
∙Работа в современном офисе в центре города;
∙Комфортное рабочее место, дружный коллектив;
∙Возможность профессионального и карьерного роста;
∙Разработка ведётся по гибким методологиям.
Работа в Новосибирске.
Онлайн-тренинг продолжительностью примерно два с половиной месяца (10 занятий), с еженедельными онлайн-консультациями и практическими домашними заданиями, начало - 14 ноября.
В этом курсе мы будем учиться программировать на языке Java.
Первые два занятия посвящены основам программирования. Вы учили это в школе и вузе, но если всё благополучно забылось, придётся вспомнить.
1.2. Основы программирования.
На остальных занятиях будет рассмотрен ряд задач, с которыми часто приходится сталкиваться тестировщикам в реальной жизни, и будет рассказано, как средствами программирования эти задачи решаются. Мы не станем углубляться в изучение различий между парадигмами программирования и в тонкости использования тех или иных конструкций. Всё это придёт потом. А пока мы просто научимся решать конкретные практические задачи.
3. Работа со строками -- анализ строк, проверка соответствия образцу, регулярные выражения.
4. Работа с контейнерами, предназначенными для хранения наборов данных: множествами, списками, ассоциативными массивами.
5. Работа с файлами -- чтение и запись данных из файла и в файл, анализ содержимого директорий.
6. Автоматизация браузера с использованием инструментов Selenium и WebDriver.
7. Автоматизация Java GUI с использованием Jemmy.
8. Работа с базами данных -- JDBC и Java Persistence.
9. Работа с почтой -- сервер James и клиент Java Mail.
10. Сетевое программирование -- HTTP, FTP и другие протоколы прикладного уровня.
В тестировании компьютерных программ есть "общедоступная" область функционального тестирования, куда доступ открыт всем желающим, и есть целый ряд областей с достаточно высоким "порогом входа", и тестирование производительности находится в их числе.
Для этого вида тестирования требуется хорошее владение оружием, его голыми руками не возьмёшь. Во-первых, нужно само оружие -- тестирование производительности обязательно требует умения пользоваться специальными инструментами. Во-вторых, нужно тщательно изучить соперника -- необходимо хорошее понимание протоколов взаимодействия тестируемой программы с внешним миром и её внутренней физической и логической архитектуры. Ну и конечно же нужно владеть приёмами -- знать какую нагрузку и как подать на тестируемое приложение, и на что смотреть, чтобы выявить проблемы с производительностью.
На тренинге мы будем учиться обращаться с этим оружием:
∙познакомимся с инструментами, предназначенными для генерации нагрузки и для мониторинга различных характеристик производительности,
∙освоим способы использования этих инструментов для генерации нагрузки различного вида,
∙изучим типовые архитектурные шаблоны построения приложений и связанные с этим источники потенциальных проблем с производительностью,
∙рассмотрим способы выявления проблем с производительностью на основе анализа результатов мониторинга.
Для практических демонстраций и для выполнения домашних заданий будет использоваться инструмент JMeter.
Недавно начал разбираться с автоматизацией в Visual Studio.
Через некоторое время возник вопрос.
Например, я создал веб тест путем записи в браузере. Затем туда можно вносить изменения, добавлять что-то, это не так важно.
и можно сгенерировать код на основе теста.
В код само собой тоже можно вносить изменения.
Когда приходит время запуска, то получается что выполняются и файл кода и тест с которого он был сгенерирован.
Теперь вопросы:
1) Можно ли изменения внесенные в код отобразить в дереве? Если да, то как? Я не нашел.
2) Отсюда второй вопрос. Какое вообще предназначение этого файла с кодом? Для чего он нужен?
Заранее спасибо и прошу прощения если написал глупость.
LoadRunner - тесты
2011-10-24 17:48
Собственно вопросик...как с помощью LoadRunner запустить тесты на разных компах в определенное время(LoadGenerators позволяет указать айпишник машин на которых запускать тест, а можно ли как нить указать когда именно запускать??)??
Запуск IE64 и IE32 одновременно
2011-10-24 21:03
Подскажите, как проводить тесты на IE 64, а затем на IE32 одной программой? Использую Selenium Webdriver и C#.
Автоматизированный поиск 404 на портале.
2011-10-25 00:15
Уважаемые коллеги, есть вопрос и проблема.
Нужна программка/тест, выцепляющая ошибки на портале
.
Ну самый простой вариант: чек 404 линков.
Алгоритм функции примерно такой - псевдоязык
функция выцеплялка404линков
{Заходим на страничку, выцепляем с неё все линки.
цикл (для каждого линка)
проверяем линк на 404
Если линк битый, добавляем его в отчёт
Если линк внутренний
Рекурсивный вызов выцеплялка404линков();
}
Проблема состоит в том, что на любой страничке портала есть ссылки и на другие страницы, например родительскую.
Таким образом мой алгоритм сейчас работает вот так:
Заходит на страничку, чекает на ней линки. Начинает проверять линки на первой дочерней страничке и... зацикливается до бесконечности, поскольку на дочерней страничке есть ссылки на родительскую.
Ничего умнее, как добавлять адреса всех страничек в массив и пробегать его каждый раз перед проверкой ссылки и вызова рекурсии я не придумал. Но это же очень-очень-очень неэффективно. Сколько будет отрабатывать такая программа? Наверняка есть более элегантные решения, и наверняка они лежат где-то на поверхности, но я пока придумать ничего не могу.