воскресенье, 18 октября 2020 г.

PyTest + Selenium - быстро создаем каркас автотестов

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

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

Так получилось и со скринкастом по библиотеке Smart Page Object, которую я написал примерно два года назад - библиотеку написал, использовал ее на паре проектов, поделился с друзьями, но широкого распространения библиотека не получила (потому что я ленивый).

Сегодня я записал скринкаст с описанием всех методов библиотеки и обзором простых автоматизированных тестов на основе PyTest + Selenium с использованием этой библиотеки.

А вот и сам скринкаст:

Хорошая новость в том, что вы можете просто скопировать мой код, посмотреть 30 минут видео на скорости x2 и начать писать автоматизированные тесты на Selenium с использованием паттерна PageObject (а так же использовать примеры этого кода в тестовых заданиях на позицию QA Automation).

Сам код лежит в репозитории: https://github.com/TimurNurlygayanov/ui-tests-example

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

Надеюсь этот код будет полезен начинающим автоматизаторам, а так же тем, кто пишет тесты на Python + Selenium, но до сегодняшнего дня не использовал PageObject. Можете присылать pull requests :) 

Удачной автоматизации :)

понедельник, 13 апреля 2020 г.

Сканер ошибок на страницах

Уже много раз сталкивался с задачей быстрой проверки веб сайта или определенных веб страниц (пример: релиз новой версии сайта, новые промо-страницы к какой-то дате в онлайн-магазине и пр.). Обычно в таких ситуациях необходимо проверить сайт быстро и с минимальными затратами времени и сил. Кстати, чаще всего это даже не рабочая задача, а просто интерес - заходишь на сайт и хочется оценить качество, а иногда и попробовать найти ошибки на популярных сайтах, чтобы лишний раз "потренироваться".

Обычно для таких задач я использую скрипты, которые парсят страницу, ссылки на странице и всю важную информацию, и сверяют это с ожидаемым поведением. Например, на промо-страницах с товарами и скидками довольно важно проверять что цена на промо странице совпадает с реальной ценой товара, и что ссылка на товар правильная (когда идет промо акция на 100+ товаров - ссылки часто путают, а страдают покупатели и прибыль :))

Я уже писал в блоге про скрипт для поиска 404 ошибок на сайтах, но еще одной из распространенных проблем являются JS ошибки. Иногда они появляются сразу при открытии страницы, иногда при взаимодействии (нажимаем на кнопку/баннер/скидку - и видим ошибку в консоли браузера). Почему-то даже в 2020 не все тестировщики проверяют страницы на JS ошибки, а они иногда блокируют пользователя, и найти их можно быстро.

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

Так что вот, держите инструмент Pages Checker.

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



И мой любимый пример с https://software-testing.ru (парадокс багов: они повсюду)

Хотя, конечно, по-прежнему, большая часть проблем с контентом может быть обнаружена только человеком при "ручном" тестировании.