На каких языках программирования вы писали (в контексте автоматизации тестирования)?

«На каких языках программирования вы писали (в контексте автоматизации тестирования)?» — вопрос из категории Софт-скиллы, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

В автоматизации тестирования я активно использовал несколько языков, выбор которых зависел от стека проекта и решаемых задач:

  1. Java: Мой основной язык для крупных корпоративных проектов. С ним я работал в связке с Selenium WebDriver для UI-тестов, REST Assured для API-тестирования, и фреймворками JUnit 5 и TestNG. Сильная типизация и богатая экосистема библиотек делают его отличным выбором для сложных, долгосрочных проектов по автоматизации.

    // Пример фрагмента Page Object на Java
    public class LoginPage {
        @FindBy(id = "username")
        private WebElement usernameField;
    
        public void login(String user, String pass) {
            usernameField.sendKeys(user);
            driver.findElement(By.id("password")).sendKeys(pass);
            driver.findElement(By.cssSelector("button[type='submit']")).click();
        }
    }
  2. Python: Я применяю его для быстрого прототипирования, написания скриптов для нагрузочного тестирования (Locust), API-тестов (pytest + requests) и UI-автоматизации (pytest + Playwright). Его читаемость и обширный набор библиотек для работы с данными (Pandas) идеальны для задач анализа результатов тестирования.

    # Пример API-теста на Python с pytest
    import pytest
    import requests
    
    @pytest.mark.api
    def test_get_user_returns_200():
        response = requests.get("https://api.example.com/users/1",
                                 headers={"Authorization": f"Bearer {token}"})
        assert response.status_code == 200
        assert response.json()["username"] == "testuser"
  3. JavaScript/TypeScript: Этот стек я использовал для автоматизации фронтенда в проектах, где основная разработка велась на Node.js. Cypress и Playwright отлично интегрируются в такой контекст, позволяя писать стабильные и быстрые UI-тесты.

Также у меня есть опыт написания скриптов на Bash для настройки тестовых окружений и на Groovy для описания пайплайнов в Jenkins (CI/CD). Для меня язык — это в первую очередь инструмент. Я выбираю его, исходя из потребностей команды, существующей кодовой базы и требований к эффективности поддержки автотестов.