Какие инструменты и языки используются для написания автотестов?

«Какие инструменты и языки используются для написания автотестов?» — вопрос из категории Автоматизация тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

1. Языки программирования:

  • Python (pytest) — наиболее популярен благодаря простоте и богатой экосистеме библиотек.

    import pytest
    
    def test_api_status():
        response = requests.get("https://api.example.com/health")
        assert response.status_code == 200
        assert response.json()["status"] == "OK"
  • Java (JUnit, TestNG) — стандарт для больших корпоративных проектов.
  • JavaScript/TypeScript (Jest, Playwright Test) — для тестирования веб-приложений, особенно в связке с Node.js.

2. Фреймворки для разных уровней:

  • UI-тесты: Selenium WebDriver, Playwright, Cypress.
  • API-тесты: requests (Python), RestAssured (Java), Supertest (JS).
  • Мобильные тесты: Appium, Espresso (Android), XCTest (iOS).
  • Нагрузочные тесты: k6, Gatling, JMeter.

3. Сопутствующие инструменты:

  • Управление тестами и отчетность: Allure, ReportPortal.
  • CI/CD интеграция: Jenkins, GitLab CI, GitHub Actions.
  • Контейнеризация: Docker для изоляции зависимостей и параллельного запуска.

Типичный стек для веб-проекта: Python + pytest + Selenium/Playwright + Requests + Allure, интегрированный в Jenkins-пайплайн.