С каким стеком технологий для тестирования вы работали?

Ответ

Основной стек:

  • UI-автоматизация: Selenium WebDriver (Python/Java), Playwright, Cypress.
  • API-тестирование: Postman (коллекции, Newman), RestAssured (Java), pytest с библиотекой requests (Python).
  • Базы данных: SQL (PostgreSQL, MySQL) для валидации данных и состояния системы.
  • CI/CD: Интеграция и запуск тестовых пайплайнов в Jenkins и GitLab CI.

Пример API-теста на Python (pytest + requests):

import requests
import pytest

@pytest.mark.api
def test_successful_login():
    """Тест успешной аутентификации через API."""
    url = "https://api.example.com/auth/login"
    payload = {"username": "test_user", "password": "secure_pass"}

    response = requests.post(url, json=payload)

    # Проверка статуса и наличия токена в ответе
    assert response.status_code == 200
    response_json = response.json()
    assert "access_token" in response_json
    assert isinstance(response_json["access_token"], str)

Почему этот стек: Selenium/Playwright обеспечивают кросс-браузерное тестирование, а связка pytest/requests даёт гибкость для API. Интеграция в CI/CD гарантирует раннее обнаружение регрессий.

Ответ 18+ 🔞

Вот смотри, как у нас обычно этот цирк с конями выглядит. Сидишь такой, думаешь: "Ну сейчас я тебе, система, всю подноготную выверну, блядь!". А на деле — куча инструментов, которые надо в кучу собрать, чтобы не получилась каша из топора, а нормальный рабочий процесс.

Основной наш арсенал, так сказать:

  • UI-автоматизация: Тут два главных героя — Selenium WebDriver (на Python или Java) и Playwright. Первый — как старый, проверенный танк, иногда скрипит, но своё дело знает. Второй — шустрый и современный, в последнее время всех просто с ума сводит. Ну и Cypress для любителей JS, чтобы прямо в браузере всё ковырять.
  • API-тестирование: Тут без Postman'а — вообще никуда. Коллекции, окружения, Newman для запуска из консоли — святое. Если хочется всё в коде держать, то RestAssured для Java-шников или pytest с библиотекой requests для питонистов. Красота, а не работа.
  • Базы данных: А как же без них? Без SQL (PostgreSQL, MySQL) — ты просто слепой котёнок. Надо же проверять, что твои действия в интерфейсе или через API не насрали в базу какую-нибудь дичь, а записали ровно то, что нужно.
  • CI/CD: Ну а это, блядь, святая святых — Jenkins и GitLab CI. Чтобы твои тесты не пылились на локальной машине, а бегали сами при каждом коммите, как дрессированные хомячки, и сразу орали, если что-то пошло не так.

Вот, смотри, как простой API-тест на Python может выглядеть. Ничего сложного, но эффективно, как удар кирпичом:

import requests
import pytest

@pytest.mark.api
def test_successful_login():
    """Тест успешной аутентификации через API."""
    url = "https://api.example.com/auth/login"
    payload = {"username": "test_user", "password": "secure_pass"}

    response = requests.post(url, json=payload)

    # Проверка статуса и наличия токена в ответе
    assert response.status_code == 200
    response_json = response.json()
    assert "access_token" in response_json
    assert isinstance(response_json["access_token"], str)

А почему именно такой стек, спросишь? Да всё просто, епта! Selenium с Playwright'ом — чтобы браузеры не выёбывались и работали везде одинаково. Связка pytest/requests для API — это же просто конфетка, гибко и мощно. А впихнуть всё это в CI/CD — это чтобы спать спокойно и не бояться, что какой-нибудь разработчик, сам того не желая, всё похерит своим коммитом. Раннее обнаружение проблем — наше всё, иначе потом разгребать — просто пиздец, а не работа.