Фантастические стеки автоматизации тестирования, и где они обитают. Есть ли среди них лучший?

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Всем привет! С вами снова я, Иван Шевелёв, QA Lead в компании Denti.AI. Сегодня хотел обсудить наболевшую тему – лучший стек для автоматизации тестирования. 

Эта тема о-о-очень холиварная, каждый топит за свой стек, потому что работал на нём 10 лет ранее или просто потому, что он лучше всех, и быть по-другому не может! В коммерческом опыте я работал с 2.5 языками (JS/TS и Python – рука не поднимается разделить JS и TS) и большим количеством фреймворков (от уже deprecated до самых трендовых). В некоммерческом опыте сталкивался почти со всеми возможными стеками, кроме тех, что связаны с Ruby и C#.

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

Давайте рассмотрим самые популярные связки на рынке сегодня. Оставлю в порядке убывания сложности погружения в стек, чтобы была какая-никакая сортировка.

Java + Selenide + JUnit

Сложный, но очень контролируемый стек за счёт возможностей языка. Очень выраженная типизация, контроль рантайма, широкое комьюнити и количество решений/инструментов. Также очень большая база знаний и решенных кейсов. Кажется, что сейчас стек медленно теряет свою актуальность, потому что:

  • selenide работает на базе Selenium, хоть и весьма переработанный и улучшенный. Но каких-то киллер-фич ждать не стоит. Эдакий зрелый и полноценный гигант в мире авто-тестирования

  • всё меньше команд используют чистую Java в своём стеке, сейчас в тренде python и go, следовательно, реже выбирают Java как общий стек для авто-тестов

  • высокий порог входа. Если сравнить два курса – Python и Java, то будущий автоматизатор быстрее начнёт писать код на первом языке, чем на втором

TS + Playwright

На мой взгляд – это самый нейтральный и эффективный стек за счёт баланса между сложностью, контролируемостью и возможностями, но неидеальный за счёт работы TS (await будет сниться до конца дней, а работа с асинхронностью ещё дольше). Но главная фича кроется в фреймворке – Playwright.

Сейчас Playwright – самый трендовый фреймворк для авто-тестов, который развивается за счёт Microsoft. Постоянные обновления, киллер-фичи в работе с CDP (прямое взаимодействие с Network, моки браузерного API и прочее), новые паттерны автоматизации тестирования, интеграции с другими сервисами, разные виды дебаггинга (IDE, логи, собственный дебаггер с UI) и ещё много-много чего. На моей практике он работает гораздо быстрее selenium-based фреймворков, причём на порядок.

Итого:

  • Playwright – значительный плюс

  • TS – гибкая типизация, что тоже плюс

  • работа через WS – быстро и надёжно

  • но... беды и костыли с асинхронностью, тем более с импортом JS решений

  • не работает с selenoid и подобным инструментами, только Moon (но зато в K8)

Python + Pytest + Selenium

Python – круто, модно, молодёжно! Множество курсов, как стать питонистом за 10 минут, не сказка ли? Python очень подкупает своей доступностью и простотой, а также гибким владением рантаймом (как выяснилось – не всегда, но чаще этого достаточно). Pytest – простой и надёжный раннер, который используется на всех уровнях пирамиды. Selenium... Ну, это selenium

Источник: https://habr.com/ru/post/724176/


Интересные статьи

Интересные статьи

В начале же статьи предупрежу:Эта статья предназначена только для тех людей, которым хочется узнать,чем на самом деле является функция в python....НО! Предупреждаю, я не буду лезть в сурсы питона. Эт...
В свое время я случайно узнал, что исключения в моём горячо любимом языке C# — и, как следствие, во всем .NET — не все ведут себя одинаково. Причём, что ещё гораздо интереснее, далеко не все и не всег...
Когда дело доходит до автоматизации тестирования, первый и самый сложный вопрос, который встает перед вами это какой язык выбрать, чтобы он имел хорошую поддержку авт...
Устраивать конкурсы в инстаграме сейчас модно. И удобно. Инстаграм предоставляет достаточно обширный API, который позволяет делать практически всё, что может сделать обычный пользователь ручками.
Если вы последние лет десять следите за обновлениями «коробочной версии» Битрикса (не 24), то давно уже заметили, что обновляется только модуль магазина и его окружение. Все остальные модули как ...