Работали ли вы с терминалом/командной строкой?

«Работали ли вы с терминалом/командной строкой?» — вопрос из категории Linux и командная строка, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, командная строка — это мой основной рабочий инструмент для многих задач тестирования и автоматизации.

Типичные операции:

  • Анализ логов: Поиск ошибок, фильтрация и мониторинг логов в реальном времени.
    tail -f /var/log/app/error.log | grep -E "(ERROR|Exception)"
    # Подсчет уникальных ошибок за последний час
    grep "ERROR" app.log | cut -d' ' -f4- | sort | uniq -c | sort -nr
  • Запуск и управление тестами: Исполнение автотестов, передача параметров, перенаправление вывода.
    pytest tests/api/ -v --log-cli-level=INFO --html=report.html
  • Работа с файлами и данными: Подготовка тестовых данных, сравнение файлов результатов, массовое переименование или обработка артефактов.
    # Сравнение ожидаемого и фактического JSON-вывода (игнорируя пробелы)
    diff -u <(jq -S . expected.json) <(jq -S . actual.json)
  • Сетевые проверки: Тестирование доступности API с помощью curl, проверка открытых портов с nc (netcat).
    curl -X POST "http://api:8080/test" -H "Content-Type: application/json" -d '{"id": 1}' -w "nTime: %{time_total}snCode: %{http_code}n"
  • Автоматизация через скрипты: Написание bash-скриптов для подготовки окружения, запуска тестовых сценариев и обработки результатов.