Pull to refresh

Как мы тестируем поиск в Яндексе. Screenshot-based тестирование блоков результатов

Reading time 5 min
Views 40K
Яндекс corporate blog IT systems testing *JavaScript *
Чем крупнее и сложнее становится сервис, тем больше времени приходится уделять тестированию. Поэтому желание автоматизировать и формализовать этот процесс вполне законно.

Чаще всего для автоматизации тестирования веб-сервисов применяется Selenium WebDriver. Как правило, с его помощью пишут функциональные тесты. Но, как всем хорошо известно, функциональные тесты не могут решить задачу тестирования верстки сервиса, что требует проведения дополнительных ручных, зачастую кроссбраузерных, проверок. Как тест может оценить корректность верстки? Чтобы обнаружить регрессионные ошибки верстки, тесту потребуется некоторый эталон, в качестве которого может выступать изображение корректной верстки, взятой, например, с продакшен-версии сервиса. Этот подход носит название screenshot-based testing. Подход этот применяется достаточно редко, и чаще всего верстку все же тестируют вручную. Причина этому – ряд достаточно строгих требований к сервису, к среде выполнения тестов и к самим тестам.

Расширенные ответы сервисов Яндекса в результатах поиска — мы у себя внутри по старой традиции называем их «колдунщиками» — дополнительное звено, в котором что-то может сломаться.

На примере тестирования колдунщиков в поиске мы расскажем, какими особенностями должен обладать тестируемый сервис, какие проблемы возникают у нас при использовании screenshot-based testing, и как мы их решаем.

image
Читать дальше →
Total votes 78: ↑71 and ↓7 +64
Comments 17

Selenium: от инструмента к стандарту

Reading time 2 min
Views 20K
IT systems testing *
Инструмент Selenium медленно, но неуклонно продолжает развиваться, постепенно превращаясь в стандарт автоматизации веб-приложений и даже проникая в область автоматизации мобильных приложений (в том числе нативных и гибридных).

Осенью 2013 года я дважды на конференциях (сначала SECR, потом ConfeT&QA) рассказывал о том, как происходило развитие инструмента Selenium и каково текущее состояние дел. Предлагаю вашему вниманию запись, сделанную на второй из упомянутых конференций.

Читать дальше →
Total votes 29: ↑28 and ↓1 +27
Comments 8

Автоматизированное тестирование — это просто! Как я тестировал Печкина

Reading time 6 min
Views 96K
IT systems testing *
Sandbox
Не так давно стал посматривать в сторону Selenium WebDriver, который в связке с PageObject становится прекрасным инструментом для автоматизированного тестирования. Те, кто не знаком с Selenuim, могут ознакомиться в этой статье, а здесь можно прочесть конкретно про Selenium WebDriver.

При написании этой статьи были использованы:
  1. Maven
  2. TestNG
  3. Selenium WebDriver
  4. PageObject
  5. Подопытный кролик: pechkin-mail.ru

Подробнее
Total votes 16: ↑13 and ↓3 +10
Comments 19

Голосовое управление web-плеером, или скрещиваем CMU Sphinx с Selenium WebDriver

Reading time 5 min
Views 8.5K
Java *
В этой статье я описывал создание веб mp3 плеера и домашней аудиосистемы.
Сам плеер можно увидеть здесь.

Возникла идея — прикрутить к плееру голосовое управление.
После часа-другого поиска в интернете решение нашлось:
CMU Sphinx — для распознавания речи + Selenium WebDriver — для программного управления браузером.

Итак, начнем.
Читать дальше →
Total votes 9: ↑8 and ↓1 +7
Comments 2

Расширяем Selenium WebDriver. Пишем робота для RSDN, не думая о контексте

Reading time 5 min
Views 8K
IT systems testing *.NET *
Sandbox
Сегодня я хотел бы рассказать, как можно сделать свой PageObject паттерн на основе Selenium. Да, я знаю, что у них есть свой PageObject, но какой же программист не хочет написать свой велосипед с блэкджеком и женщинами легкого поведения.

Вообще, писать автоматические тесты для UI очень сложно — постоянные проблемы, то там что-то не подгрузилось, то там запрос не дошел и упал по таймауту. Кто написал хотя бы сотню тестов — тот меня поймет. А теперь представьте, что ваши страницы не просто состоят из простого HTML, но и содержат много разных фреймов и попап окошек. Если вы хорошо знаете Selenium, то понимаете, чем это грозит. Selenium может одновременно работать только в контексте одного документа, будь то frame, iframe или отдельное модальное окно.
Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Comments 0

Пиратская копия платного сервиса в 39 строчек Python кода

Reading time 3 min
Views 17K
Python *Programming *API *
Recovery mode

image
Во время выполнения заказа по разработке telegram бота у меня возникла необходимость получения скриншота веб-страницы с его доставкой пользователю. Зачем задумываться над решением проблемы, когда его можно найти? Как оказалось, чтобы не платить! Подробнее пот катом.

Читать дальше →
Total votes 53: ↑30 and ↓23 +7
Comments 21

Screenplay — не Page Object'ом единым

Reading time 9 min
Views 16K
Arcadia corporate blog IT systems testing *JavaScript *Web services testing *

Со временем вносить изменения в любой продукт становится сложнее, и растёт риск не только зарелизить новые фичи, но и сломать старые. Часто вместо того, чтобы руками проверять весь проект, этот процесс стараются автоматизировать. Если поговорить с людьми, которые занимаются тестированием интерфейсов, походить по конференциями, становится понятно, что в мире веб-тестирования правит Selenium, а в качестве организации кода подавляющее большинство используют Page Object.


Вот только мне, как программисту, этот паттерн и код, который я видел у разных команд, почему-то никогда не нравился — в голове звучали буквы SOLID. Но я уже был готов смириться с тем, что тестировщики пишут код, как им удобно, из-за отсутствия альтернатив, как где-то год назад, на Angular Connect, услышал я доклад, посвящённый тестированию Angular приложений c использованием Screenplay паттерна. Теперь хочу поделиться.


Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Comments 1

29 марта, Москва — Backend Stories 3.0

Reading time 1 min
Views 2.2K
Альфа-Банк corporate blog Web services testing *Microservices *
На следующей неделе кроме митапа для любителей JavaScript мы проведем и митап для backend-разработчиков.

Место — то же, Corporate Innovations Hub, от нас снова будут 3 спикера, бургеры и призы за самые интересные вопросы. Как обычно, митап бесплатный + в день события мы выложим трансляцию.

Поговорим о Selenium WebDriver и его пользе, затронем тему ElasticSearch, и, конечно же, обсудим микросервисную архитектуру.

Главное — зарегистрируйтесь заранее.
Читать дальше →
Total votes 17: ↑16 and ↓1 +15
Comments 3

Разбираем возможности конвертирования HTML в PDF браузером Google Chrome

Reading time 5 min
Views 18K
CSS *Python *Google Chrome HTML *PDF


Недавно в одном стартапе я решал задачу генерации билетов в формате PDF. На тот момент уже был готов сайт с устоявшимся стеком технологий, поэтому я искал подход, который бы не потребовал использования дополнительных инструментов. В итоге я предложил сперва создавать билеты в формате HTML, а затем конвертировать в PDF с помощью браузера Chrome. Как оказалось, данным способом можно генерировать не только билеты, богато декорированные CSS, но и самые разные отчеты с графиками на JavaScript. В этой статье я расскажу о том, как для этих целей запустить Chrome, дам несколько советов по настройке CSS, а так же обсужу недостатки данного решения.

Читать дальше →
Total votes 22: ↑20 and ↓2 +18
Comments 28

Опыт использования BDD

Reading time 10 min
Views 20K
Haulmont corporate blog IT systems testing *Development Management *


Около семи лет назад Dan North в своей статье описал практическое применение BDD подхода, который позволяет сделать процесс разработки более понятным и управляемым путем налаживания внутренних коммуникаций. Индустрия с каждым днем проявляет всё больший интерес к этой методологии, нацеленной на продуктивное взаимодействие стандартных команд типа «аналитика-разработка-тестирование».


Однако, сейчас лишь малая часть компаний решается на использование BDD. Почему?

Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Comments 26

Как посчитать ROI от автоматизации тестирования с Selenium?

Reading time 14 min
Views 17K
OTUS corporate blog IT systems testing *Web services testing *
Translation


Перевод статьи подготовлен специально для студентов курса «Python QA Engineer»




Кроссбраузерное тестирование – это именно тот тип тестирования, который требует большого количества сил и времени. Тестирование веб-приложения в различных браузерах, на различных операционных системах, устройствах, разрешениях экрана для того, чтобы оценить рендеринг вашего сетевого контента для обширной аудитории – серьезная задача. Особенно, если заниматься этим вручную. Автоматизированное кроссбраузерное тестирование с помощью Selenium поможет сэкономить время на рутинных действиях и сократить время регрессионного тестирования. Однако люди не любят перемены. Если в вашей организации популярно ручное тестирование, у руководства, вероятно, возникнут вопросы, когда вы предложите внедрить автоматизацию тестирования.

Читать дальше →
Total votes 12: ↑10 and ↓2 +8
Comments 1

Несколько советов по созданию page object классов здорового человека

Reading time 5 min
Views 19K
OTUS corporate blog IT systems testing *Web services testing *
Translation
И снова здравствуйте. В преддверии старта курса «Java QA Engineer» подготовили перевод еще одной полезной статьи.




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

Самым популярным паттерном проектирования, используемым в кодовых базах тестирования веб-UI, является паттерн Page Object Model (POM). Этот паттерн предполагает моделирование класса для представления одной страницы тестируемой системы. На основе этой модели, класс будет содержать свойства, которые представляют элементы страницы пользовательского интерфейса и методы, которые взаимодействуют с этими элементами.
Читать дальше →
Total votes 13: ↑10 and ↓3 +7
Comments 0

Как я получил пожизненный запас чесночной пиццы с помощью Python и Selenium

Reading time 3 min
Views 19K
Entertaining tasks Python *Browsers Software
Translation

История голодного студента с пытливым умом


Не знаю, как вы, а я обожаю пиццу. Особенно если это особые чесночные пицца-палочки Papa John’s. Поэтому я был в восторге, когда после заказа еды навынос получил от них следующее письмо:


Papa John’s (с) Заголовок письма с опросом

Бесплатная еда! Мне определённо нужно было пройти этот опрос…
Total votes 36: ↑32 and ↓4 +28
Comments 29

Stale Element Reference в Selenide

Reading time 2 min
Views 2.9K
IT systems testing *Java *Web services testing *
Sandbox

Всем привет! Данная ошибка является очень популярной при использовании Selenide автотестах в Java. На поиск решения у меня ушло довольно много времени, поэтому в этой статье я хочу подробно рассказать про эту ошибку и как с ней работать.

Читать далее
Total votes 3: ↑3 and ↓0 +3
Comments 2

Как побороть Stale Element Reference Exception при E2E тестировании современных SPA-приложений

Reading time 5 min
Views 3.6K
Bimeister corporate blog IT systems testing *.NET *C# *Web services testing *
Tutorial

Всем привет, меня зовут Денис, я Software Developer Engineer in Test (SDET) в компании Bimeister. Я занимаюсь разработкой софта для тестирования — это фреймворки, автоматизированные тесты, настройка CI Pipeline’ов и многое другое.

В статье расскажу, как мы победили исключение Stale Element Reference Exception при разработке нашего фреймворка, используя Selenium WebDriver и C#.

Читать далее
Total votes 9: ↑9 and ↓0 +9
Comments 9

How to handle Stale Element Reference Exception in E2E testing of modern SPA applications

Reading time 5 min
Views 1.2K
Bimeister corporate blog IT systems testing *.NET *C# *Web services testing *
Tutorial

Hello everyone, my name is Denis, I am Software Developer Engineer in Test (SDET) at Bimeister. I am in charge of test software development - frameworks, automated tests, CI Pipelines configuration, and much more.

In this article, I will tell you how we defeated the Stale Element Reference Exception while developing our framework using Selenium WebDriver and C#.

Read more
Total votes 2: ↑2 and ↓0 +2
Comments 0