Что обычно хранится в конфигурационном файле для тестов (например, conf.test, config.test.js)?

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

Ответ

В файлах конфигурации тестовой среды (типа config.test.js, test.properties, pytest.ini) я храню все настройки, которые отличаются от продакшена и нужны для изолированного и повторяемого запуска автотестов.

Типичное содержимое такого файла:

  1. URL и эндпоинты: Адреса тестовых стендов, mock-серверов или локальных инстансов.
  2. Учётные данные: Логины, пароли, API-ключи для тестовых пользователей и сервисов. Важно: Никогда не храню реальные пароли, только тестовые, а сам файл добавляю в .gitignore. В CI/CD используются переменные окружения.
  3. Параметры подключения к тестовым базам данных:
  4. Настройки фреймворка и таймауты: Время ожидания элементов, путь к драйверам браузеров, уровень логирования.
  5. Флаги и переключатели: Например, флаг для запуска в headless-режиме или выбора браузера.

Пример config.test.json для проекта на Node.js + Playwright:

{
  "baseUrl": "https://staging.example.com",
  "apiUrl": "https://api.staging.example.com/v1",
  "users": {
    "admin": {
      "login": "qa_admin@test.com",
      "password": "${TEST_ADMIN_PASSWORD}" // Подставляется из env
    }
  },
  "timeouts": {
    "navigation": 30000,
    "action": 10000
  },
  "playwright": {
    "headless": true,
    "viewport": { "width": 1920, "height": 1080 }
  },
  "reporting": {
    "outputFolder": "./test-results"
  }
}

В коде тестов я загружаю эту конфигурацию один раз в хуках beforeAll или через фикстуры, чтобы не хардкодить значения.