Как стать автором
Обновить

Как работает E2E-тестирование в hh.ru

Время на прочтение 6 мин
Количество просмотров 1.2K
Блог компании HeadHunter Тестирование IT-систем *

Всем привет! Меня зовут Алексей, в hh.ru я занимаюсь автотестами и их инфраструктурой. 

hh.ru — довольно большой продукт: 150+ микросервисов и 50 команд разработки. Большинство команд пишут E2E-тесты, и на текущий момент написано уже около 1800 тестовых классов, в которых примерно 8000 аннотаций @Test. Как со всем этим жить и как вообще устроено E2E-тестирование в hh.ru разберемся в сегодняшней статье. Поехали! 

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 0

Page Object — путь к совершенным автотестам

Время на прочтение 3 мин
Количество просмотров 73K
Блог компании WapStart


Всем, доброго времени суток!
Этот топик о том как мы тестируем веб-интерфейс нашего продукта Plus1 WapStart. Мы используем Page Object, т.к. этот паттерн имеет много общего с реальными задачами и позволяет писать автотесты простыми для чтения и понимания.

Что такое Page Object


Page Object — это паттерн для реализации умных автоматических проверок. Gem page-object является имплементацией этого паттерна, который помогает в создании гибких страниц с объектами для тестирования браузерных приложений. Суть в том, чтобы создавать уровни абстракции для отделения тестов от предметов тестирования, и обеспечить простой интерфейс для элементов на странице. Gem работает с watir-webdriver и selenium-webdriver.
Читать дальше →
Всего голосов 20: ↑18 и ↓2 +16
Комментарии 8

Вебинар: Основы использования паттерна Page Object вместе с Selenium WebDriver

Время на прочтение 1 мин
Количество просмотров 14K
Я пиарюсь
Это пятый вебинар из цикла бесплатных вебинаров по автоматизации тестирования.
Видеозапись (продолжительность 1 час 5 мин.):

Темы и детали видеозаписи под катом
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Комментарии 2

Тестирование в Mail.Ru Group

Время на прочтение 12 мин
Количество просмотров 40K
Блог компании VK Тестирование IT-систем *
Эта статья написана по мотивам одноименного доклада на Highload++'2012. Предназначена она для руководителей, которые смогут, взглянув на наше тестирование, сравнить его с тестированием в своем проекте, для программистов и системных администраторов, которым представится возможность посмотреть на тестирование как на очень интересную работу, и, конечно, для тестировщиков.

В статье я расскажу, о том, каким на самом деле может быть тестирование, как мы сделали тестирование продуктивной и интересной работой, какие задачи мы решаем, и почему работать у нас хорошо.
Читать дальше →
Всего голосов 112: ↑76 и ↓36 +40
Комментарии 32

Использование Selenium WebDriver для автоматического тестирования веб-интерфейса Яндекс.Почты

Время на прочтение 2 мин
Количество просмотров 145K
Блог компании Яндекс Тестирование IT-систем *Node.JS *
Туториал
Без качественного тестирования невозможно разрабатывать и поддерживать крупный веб-сервис. На ранних этапах его развития часто можно обходиться только ручным тестированием по заданному тест-плану, но с появлением новых фич и увеличением количества тест-кейсов довольствоваться только им становится все сложнее и сложнее. В этой статье мы расскажем о том, как автоматизируем функциональное тестирование веб-интерфейса Яндекс.Почты с помощью Selenium WebDriver и Node.js.

Selenium
Читать дальше →
Всего голосов 93: ↑85 и ↓8 +77
Комментарии 29

Скрипт проверки наличия свободных дат в посольстве

Время на прочтение 7 мин
Количество просмотров 72K
Ненормальное программирование *Python *Кодобред
Из песочницы
Предисловие:

В Беларуси стоит острая проблема с получением виз в Еврозону (т.е. Шенген). Все из-за того, что Польское посольство предоставляет так называемые мульти-визы за покупками (т.е. многократные). Регистрация производится на сайте посольства онлайн. Но вся проблема состоит в том, что свободных дат не словить. Единственный вариант — круглосуточно чекать страницу, и если появится дата — быстро «ловить» ее и заканчивать регистрацию. Т.к. свободного времени для круглосуточного чека нет, было принято решение об автоматизации данного процесса.
Сразу оговорюсь, что существуют различные скрипты, которые вылавливают свободные даты и за которые люди получают деньги. Мой скрипт не претендует на их место по быстроте, качеству и т.д. Данный скрипт был сделан только для себя, никакой коммерческой и иной выгоды я не преследовал.
Читать дальше →
Всего голосов 23: ↑19 и ↓4 +15
Комментарии 22

SWD Page Recorder: Записывает PageObject-классы для Selenium WebDriver

Время на прочтение 5 мин
Количество просмотров 17K
Тестирование IT-систем *
Уверен, что бывалые автоматизаторы из мира веб-тестирования на Selenium WebDriver, уже успели попробовать на вкус все достоинства использования паттерна PageObject в своем ремесле. Да, это и сокращение времени на обслуживание кода автоматизации, и более читабельный простой и надежный код. К сожалению, всё еще тратится слишком много рутинных усилий на создание новых PageObject-классов и поддержку существующих.

К счастью, есть инструменты, которые помогут сократить этот рутинный «ручной труд» автоматизатора.
SWD Page Recorder – это попытка создать один из таких инструментов.
Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 10

Секреты тестирования интерфейсов в ТКС Банке

Время на прочтение 4 мин
Количество просмотров 13K
Блог компании TINKOFF Тестирование IT-систем *
Постараюсь рассказать в общих чертах о том, как выглядит процесс тестирования интерфейсов в ТКС банке.

image

Смутное прошлое


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

Очаровательное настоящее


Наш коллектив сильно изменился – маленький отдел веб-разработки стал в разы больше. Изменился и сам процесс — теперь наши интерфейсы покрыты тестами как внутри (код), так и снаружи. И да, у нас есть code review, а разработку задач осуществляем в ветках, пишем старательно документацию в wiki и генерим JS DOC.

Читать дальше →
Всего голосов 44: ↑23 и ↓21 +2
Комментарии 24

Selenium и BrowserMobProxy: вместе веселее!

Время на прочтение 1 мин
Количество просмотров 12K
Тестирование IT-систем *
Недавно я публиковал обзорный доклад "Selenium: от инструмента к стандарту", в котором я рассказал о том, как развивался инструмент Selenium. Конечно он и дальше будет эволюционировать и в него будут добавляться новые возможности.

Но есть некоторые «фичи», которых в Selenium нет и скорее всего не будет. Среди них: загрузка файлов с сервера, работа с сайтами, требующими авторизации, проверка кодов ответа на HTTP-запросы. Их не планируется добавлять в Selenium, потому что более правильным способом их реализации является использование вспомогательного прокси-сервера, работающего в связке с Selenium. Наиболее подходящим для этой цели является BrowserMobProxy, который в своё время «отпочковался» от Selenium и стал самостоятельным продуктом.

Под катом ещё один доклад с конференции ConfeT&QA, в котором рассказывается о том, как при помощи связки Selenium и BrowserMobProxy реализовать вышеупомянутые «фичи». Ссылка на проект с кодом примеров на гитхабе прилагается.
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 5

Ускоряем написание Selenium-автотестов на Ruby

Время на прочтение 3 мин
Количество просмотров 16K
Ruby *Тестирование веб-сервисов *
Из песочницы
Одним из инструментов, позволяющих автоматизировать взаимодействие с браузером, является Selenium Webdriver. В действительности автоматизированные тесты веб-страниц с использованием Selenium Webdriver выглядят довольно громоздко. Вот «небольшой» пример, который параллельно в двух браузерах открывает страницу поисковика Google, заполняет поисковую строку и отправляет форму:


Читать дальше →
Всего голосов 20: ↑18 и ↓2 +16
Комментарии 12

Selenium для Python. Глава 1. Установка

Время на прочтение 5 мин
Количество просмотров 423K
Python *Программирование *
Туториал
Из песочницы
Перевод
Представляю перевод неофициальной документации Selenium для Python.
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.

Предисловие от автора статьи


Selenium WebDriver – это программная библиотека для управления браузерами. WebDriver представляет собой драйверы для различных браузеров и клиентские библиотеки на разных языках программирования, предназначенные для управления этими драйверами.
Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 12

Selenium для Python. Глава 2. Первые Шаги

Время на прочтение 6 мин
Количество просмотров 295K
Python *Программирование *
Туториал
Перевод
Продолжение перевода неофициальной документации Selenium для Python.
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.

Содержание:


1. Установка
2. Первые Шаги
3. Навигация
4. Поиск Элементов
5. Ожидания
6. Объекты Страницы
7. WebDriver API
8. Приложение: Часто Задаваемые Вопросы
Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 2

Selenium для Python. Глава 3. Навигация

Время на прочтение 6 мин
Количество просмотров 151K
Python *Программирование *
Туториал
Перевод
Продолжение перевода неофициальной документации Selenium для Python.
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.

Содержание:


1. Установка
2. Первые Шаги
3. Навигация
4. Поиск Элементов
5. Ожидания
6. Объекты Страницы
7. WebDriver API
8. Приложение: Часто Задаваемые Вопросы
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 4

Selenium для Python. Глава 4. Поиск элементов

Время на прочтение 7 мин
Количество просмотров 281K
Python *Программирование *
Туториал
Перевод
Продолжение перевода неофициальной документации Selenium для Python.
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.

Содержание:


1. Установка
2. Первые Шаги
3. Навигация
4. Поиск Элементов
5. Ожидания
6. Объекты Страницы
7. WebDriver API
8. Приложение: Часто Задаваемые Вопросы
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Комментарии 6

Автоматизация тестирования веб-приложения с использованием Selenium WebDriver, Python, и Behave

Время на прочтение 4 мин
Количество просмотров 69K
Разработка веб-сайтов *Тестирование IT-систем *Python *Тестирование веб-сервисов *
Туториал
Всем привет!
Сегодня я хочу поделится нашим опытом автоматизации тестирования веб-приложения с использованием Selenium WebDriver и фреймворка Behave.
Если интересно добро пожаловать под кат.
Читать дальше →
Всего голосов 13: ↑6 и ↓7 -1
Комментарии 13

SpiderTest: автотесты своими руками

Время на прочтение 7 мин
Количество просмотров 33K
Блог компании ООО «ЦИТ» Разработка веб-сайтов *Тестирование IT-систем *Тестирование веб-сервисов *


Довольно часто среди начинающих (и даже не очень) тестировщиков приходится слышать: «вот если бы я умел писать автотесты, я бы…». Как правило этим «если бы» ребята и ограничиваются. На вопрос: «А почему не учишься писать?» чаще всего отвечают: «Программирование это не мое». Действительно, тем для кого программирование темный лес, погрузиться в мир автотестов довольно затруднительно, ведь скрипт сам себя не напишет. В этой статье я хотел бы поговорить о том, как из ручного тестировщика стать крутым автотестером.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 32

SpiderTest: используй силу CI

Время на прочтение 5 мин
Количество просмотров 7.5K
Блог компании ООО «ЦИТ» Разработка веб-сайтов *Тестирование IT-систем *Тестирование веб-сервисов *


Эта статья является продолжением SpiderTest: Автотесты своими руками. Однако, первая часть обзора на это приложение была больше ориентирована на десктопный интерфейс. В этой же хотелось бы поговорить об экзотике: связи тестов с CI-server’ом и GitHub.
Может возникнуть вопрос: «Зачем вообще все это нужно? Мы написали тест, прогнали его в нужных браузерах и нам достаточно» и в целом он довольно обоснованный! Действительно, для обычного тестирования, запуска автотестов из самого приложения SpiderTest в большинстве случаев бывает достаточно. Но что делать, если мы хотим запустить тесты в IE9-11, Opera, FireFox и Google Chrome разных версий? На одной машине это сделать невозможно, а создавать кучу виртуальных машин и запускать по очереди в каждой утомительно (и вообще это костыль).
А если мы хотим провести дымовое тестирование? Или хотим запускать тесты не только в разных браузерах, но и в разных операционных системах (Windows OS, Linux OS)?
Самый оптимальный ответ на поставленные выше вопросы – использовать сервер непрерывной интеграции. В этой статье я рассмотрю настройку SpiderTest и Jenkins. Справедливости ради стоит сказать, что запускать тесты можно и на bamboo, и на teamcity, но Jenkins прост и бесплатен, поэтому рассмотрим его.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Комментарии 0

Тестирование в Яндексе. Как сделать отказоустойчивый грид из тысячи браузеров

Время на прочтение 7 мин
Количество просмотров 40K
Блог компании Яндекс Разработка веб-сайтов *Open source *Java *Тестирование веб-сервисов *
Любой специалист, причастный к тестированию веб-приложений, знает, что большинство рутинных действий на сервисах умеет делать фреймворк Selenium. В Яндексе в день выполняются миллионы автотестов, использующих Selenium для работы с браузерами, поэтому нам нужны тысячи различных браузеров, доступных одновременно и 24/7. И вот тут начинается самое интересное.



Selenium с большим количеством браузеров имеет много проблем с масштабированием и отказоустойчивостью. После нескольких попыток у нас получилось элегантное и простое в обслуживании решение, и мы хотим поделиться им с вами. Наш проект gridrouter позволяет организовать отказоустойчивый Selenium-грид из любого количества браузеров. Код выложен в open-source и доступен на Github. Под катом я расскажу, на какие недостатки Selenium мы обращали внимание, как пришли к нашему решению, и объясню, как его настроить.
Читать дальше →
Всего голосов 63: ↑57 и ↓6 +51
Комментарии 31

Функциональные тесты: Django + Selenium WebDriver и 3 варианта на Ваш выбор

Время на прочтение 8 мин
Количество просмотров 19K
Python *Django *Тестирование веб-сервисов *
Из песочницы
image

«В жизни каждого Django-разработчика наступает момент, когда он решительно рвет со своим прошлым, лишенным функционального тестирования!»

Об этом и поговорим.
Читать дальше →
Всего голосов 12: ↑10 и ↓2 +8
Комментарии 0

Реализация автоматического перезапуска failed-тестов в текущей сборке и преодоление сопутствующих бед

Время на прочтение 10 мин
Количество просмотров 8.8K
Java *Тестирование веб-сервисов *
Из песочницы
В данной статье речь пойдет об использовании фреймворка testNG, а конкретно — о реализованных в нем и довольно редко используемых интерфейсах: IRetryAnalyzer, ITestListener, IReporter. Но обо всем по порядку.

Вечной проблемой каждого тестировщика при запуске автотестов является “падение” отдельных сценариев от запуска к запуску рандомно. И речь идет не о падении наших тестов по объективным причинам (т.е. действительно имеет место ошибка в работе тестируемого функционала, или же сам тест написан не корректно), а как раз о тех случаях, когда после перезапуска ранее проваленные тесты чудом проходят. Причин такого рандомного падения может быть масса: отвалился интернет, перегрузка CPU / отсутствие свободной RAM на устройстве, таймаут и др. Вопрос — как исключить или хотя бы уменьшить количество таких не объективно проваленных тестов?

Для меня данный челлендж возник при следующих обстоятельствах:

1) текущее приложение автотестов было решено разместить на сервере (CI);
2) реализация мультипоточности в проекте превратилась из желания в mustHave (в виду необходимости сокращения времени регрессионного тестирования сервиса).

Второму пункту лично я был очень рад, так как считаю, что любой процесс, который может длиться меньшее количество времени — обязательно должен поступать именно таким образом (будь то прохождение автотеста или очередь на кассе в супермаркете: чем быстрее мы можем завершить эти процессы, тем больше времени у нас остается для занятий чем-то действительно интересным). Так вот, разместив наши тесты на сервере (тут нам помогли админы и их знание jenkins) и запустив их в потоках (тут уже помогла наша усидчивость и эксперименты с testng.xml), мы получили сокращение времени прохождения тестов из 100 минут до 18, но одновременно мы получили прирост в проваленных тестах >2 раза. Поэтому к первым двум пунктам добавился следующий (собственно, сам челлендж, которому и посвящена эта статья):
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 5