Search
Write a publication
Pull to refresh
0
Эдуард Шафиров @shafirov7read⁠-⁠only

Аналитик по обеспечению качества

Send message

Кросс-браузерное тестирование с Cypress в CI с использованием Docker

Reading time11 min
Views3.7K

Привет, Хабр!

В статье описан один из возможных вариантов кросс-браузерного запуска автотестов Cypress на платформе GitHub Actions с использованием Docker.

На простом примере показана настройка рабочего процесса, в рамках которого на основе “кастомного” Docker образа выполняется сборка нескольких контейнеров, в которых имеющиеся автотесты Cypress запускаются в конкретном браузере. Для одновременного запуска и параллельного выполнения тестов используется Docker Compose. Также настроена загрузка сгенерированных Cypress видео и снимков экрана из контейнеров в виртуальную среду GitHub Actions в качестве артефактов рабочего процесса.

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

Читать далее

Запуск автотестов Cypress в Docker контейнерах с использованием различных Docker образов

Level of difficultyEasy
Reading time15 min
Views7.8K

Привет, Хабр!

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

В данной статье описаны преимущества использования Docker в Cypress тестировании, в деталях рассмотрены существующие на сегодняшний день официальные образы Cypress, изложен механизм сборки настраиваемых Docker образов для запуска автотестов Cypress в Docker контейнерах, развертываемых на основе данных образов.

Надеюсь, что статья будет полезна для понимания основ использования контейнеризации в тестировании с помощью Cypress.

Читать далее

Что не так с OpenAPI?

Level of difficultyHard
Reading time7 min
Views37K

Как мы боролись с документированием API на наших проектах, и как мы немного сошли с ума

У вас на проекте порядок с документацией на API? Скорее всего нет. И в нашей компании порядка не было.

Не будем рассказывать, к каким печальным последствиям приводит ошибочная, устаревшая или вовсе отсутствующая API-документация. Почему же на большинстве проектов не удаётся решить такой, казалось бы, несложный вопрос?

Читать далее

Дайджест новостей из мира программирования #2

Level of difficultyEasy
Reading time6 min
Views3.5K

Начались майские праздники, но это не значит, что дайджест новостей из мира программирования ушёл на второй план. В этой подборке пройдёмся по важным новостям IT-мира за прошедшую неделю: разработчики Arduino выпустили обновление Arduino IDE 2.1, команда Flipper Zero добавила режим сна для своего устройства, а проект Prossimo начал переписывать sudo и su на Rust.

Читать далее

Создание DSL на Python с библиотекой textx

Level of difficultyEasy
Reading time6 min
Views5.9K

Для описания объектов и процессов в терминах бизнес-логики, конфигурирования и определения структуры и логики в сложных системах популярным подходом является использование предметно-специфических языков (Domain Specific Language - DSL), которые реализуются либо через синтаксические особенности языка программирования (например, с использованием средств метапрограммирования, аннотаций/декораторов, переопределения операторов и создания инфиксных операторов, как например в Kotlin DSL) или с помощью применения специализированных инструментов разработки и компиляторов (например, Jetbrains MPS или парсеров общего назначения, таких как ANTLR или Bison). Но существует также подход реализации DSL, основанный на синтаксическом разборе и одновременной кодогенерации для создания исполняемого кода по описанию и в этой статье мы рассмотрим некоторые примеры использования библиотеки textx для создания DSL на Python.

Читать далее

Тестирование данных Excel файла с помощью Cypress

Reading time6 min
Views3.9K

Привет, Хабр!

Несколько дней назад в одном из обсуждений в сообществе Cypress на Discord мельком был затронут вопрос о том, как проверить данные из файла Excel с помощью Cypress. Это подтолкнуло меня сделать несколько полезных заметок, ставших основой для данной статьи.

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

Оригинал статьи на английском языке был включен в 136th Coding Jag от LambdaTest, а также в Issue #82 Software Testing Notes.

Читать далее

Как отличить ChatGPT-3.5 от ChatGPT-4: разоблачение мифов

Level of difficultyEasy
Reading time2 min
Views72K

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

Читать далее

Пять изобретений Алана Тьюринга, которые повлияли на развитие науки и ИТ-отрасли

Reading time6 min
Views13K

Биография Алана Тьюринга — одна из самых захватывающих и трагических в истории науки. Он с детства отличался от своих ровесников: интересовался математикой, играл в шахматы, изучал кодирование. Одногруппники и коллеги считали Алана гением и чудаком, и на это были причины. Например, он приковывал свою кружку цепью к батарее, чтобы ее не украли, и ездил на сломанном велосипеде в противогазе, чтобы избежать аллергии на цветочную пыльцу.

Помимо науки, Тьюринг занимался бегом и показывал результаты мирового уровня. В 1948 году в забеге на пересеченной местности ученый финишировал раньше серебряного призера Олимпиады Тома Ричардса.

Читать далее

Шаблоны селекторов в автотестах Cypress: две полезные шпаргалки

Reading time2 min
Views4K

Привет, Хабр!

В этой довольно краткой статье поделюсь двумя полезными шпаргалками для выбора элементов в автотестах Cypress. У меня давно были планы обобщить самые распространенные шаблоны CSS/jQuery селекторов, что собственно и послужило предпосылкой для создания двух таблиц с базовыми и расширенными шаблонами, а также примерами их использования.

Читать далее

Оптимизация автотестов Cypress с помощью  циклов JavaScript

Reading time7 min
Views6.6K

Привет, Хабр!

За последние несколько лет работы с командами тестировщиков ПО в России и США мне довелось столкнуться с различными подходами к организации тестирования, разнообразными паттернами построения тестовых сценариев и разработки автоматических тестов. При этом нередко случалось, что приходя на проект и анализируя имеющуюся тестовую базу выяснялось, что существующие автотесты нуждались в серьезной доработке или вовсе переработке в целях обеспечения их надежности и сокращения времени на их выполнение. Преимущественно это касалось этапа сквозного (e2e) тестирования, и по моим наблюдениям очень часто причиной тому было не столько незнание тестировщиками встроенных команд тестового фреймворка, сколько неумение применить в тестах базовые возможности используемого языка программирования.

Это подтолкнуло меня к написанию пары статей, в которых я делюсь некоторыми наработками по оптимизации автотестов Cypress, основываясь на простых и в основном известных возможностях JavaScript. Изначально статьи были опубликованы на английском языке в моем блоге "Testing with Cypress" на Medium.

Читать далее

Как написать свой первый UI автотест. Используем Python, Pytest и Playwright

Reading time19 min
Views26K

Разбираем процесс создания UI автотестов на python с самого нуля.

В этой статье установим Python и PyCharm. Начнем пользоваться GitHub, автоматизируем работу в браузере, найдем локаторы. В результате получим работающий автотест.

Инструкция подходит для начинающих специалистов по автоматизации тестирования.

Читать далее

Playwright и Puppeteer в 2023 году: что выбрать

Level of difficultyEasy
Reading time11 min
Views10K

Дебаты по поводу выбора между Playwright и Puppeteer — это большая дискуссия, поскольку они обе являются фантастическими библиотеками Node.js для автоматизации браузера. Хотя эти библиотеки делают практически одно и то же, между Puppeteer и Playwright есть несколько заметных различий.

Читать далее

«Если сайты будут работать лучше — это будет идеально»: интервью с разработчиком Playwright Андреем Лушниковым

Reading time12 min
Views7.9K
Совсем недавно вышла статья про новый инструмент Playwright, одним из авторов которого является Андрей Лушников. Нам выпала возможность пообщаться с Андреем и задать все вопросы, которые внимательные читатели написали в комментариях. Думаю, в этом лонгриде они смогут найти ответы. Немного спойлеров:

  • Андрей рассказал историю развития Playwright и Puppeteer;
  • ответил на вопросы про протоколы, которые используют для работы с браузерами;
  • рассказал про сложности браузерных движков и планируемые интеграции Playwright.



Андрей Лушников приедет на конференцию Heisenbug, где и у вас будет возможность задать ему вопросы.
Задать вопросы

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Test Automation Engineer
TypeScript
GraphQL
Node.js
Software testing
Site testing
Testing mobile applications
API Testing
Jenkins
Selenium
Development of test cases