Какие команды Linux ты используешь в работе тестировщика?

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

Ответ

В работе с Linux-серверами и логами я регулярно использую следующие команды:

Для работы с логами и файлами:

# Поиск ошибок в логах приложения
tail -f /var/log/myapp/app.log | grep -i "error|exception"

# Просмотр и фильтрация логов за определенное время
cat app.log | grep "2024-05-15" | head -50

# Поиск файлов (например, конфигов или отчетов)
find /home/tester/reports -name "*.xml" -mtime -1

# Проверка размера лог-файлов, чтобы они не переполнили диск
du -sh /var/log/* | sort -hr

Для мониторинга процессов и системы:

# Поиск процесса Java-приложения для мониторинга или завершения
ps aux | grep java

# Проверка потребления памяти и CPU
top -u appuser

# Проверка, слушает ли порт наше тестируемое приложение
netstat -tulnp | grep :8080

Для сетевой диагностики:

# Проверка доступности тестового стенда
curl -I http://test-env:8080/health

# Проверка задержки или потери пакетов до сервера
ping api.staging.example.com

# Скачивание артефакта для тестирования (например, билда)
wget http://jenkins/job/build/latest/app.tar.gz

Для базовых операций:

# Архивирование отчетов о тестировании перед отправкой
tar -czf test_report_$(date +%Y%m%d).tar.gz ./results/

# Копирование логов с удаленного сервера для анализа
scp user@server:/var/log/app.log ./local_analysis/

# Просмотр и редактирование конфигурационных файлов
nano /etc/myapp/config.yaml

Эти команды помогают быстро диагностировать проблемы на стенде, анализировать логи и готовить окружение для тестов.