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

Ответ

Тестировщику необходимо уверенно владеть базовыми командами для работы с кодом, системами и сетевыми сервисами.

1. Команды терминала (Linux/macOS/PowerShell/Git Bash)

Навигация и управление файлами:

pwd                 # Показать текущую директорию
ls -la              # Список файлов (включая скрытые) с деталями
cd /path/to/dir     # Перейти в директорию
cd ..               # Перейти на уровень выше
mkdir test_dir      # Создать директорию
cp source.txt dest/ # Копировать файл
mv old.txt new.txt  # Переименовать/переместить файл
rm file.txt         # Удалить файл (осторожно!)
cat file.txt        # Показать содержимое файла
grep "error" log.txt # Найти строки, содержащие "error"

2. Система контроля версий (Git)

git clone https://github.com/user/repo.git  # Клонировать репозиторий
git status                                   # Показать состояние изменений
git add .                                    # Добавить все изменения в индекс
git commit -m "Fix login test"              # Зафиксировать изменения
git push origin main                        # Отправить коммиты в удаленный репозиторий
git pull                                     # Получить обновления с удаленного репозитория
git checkout -b new-feature-tests           # Создать и переключиться на новую ветку
git log --oneline                           # Показать историю коммитов

3. Работа с сетью и API

cURL (универсальный HTTP-клиент):

# Простой GET-запрос
curl https://api.example.com/users

# GET с заголовком авторизации
curl -H "Authorization: Bearer YOUR_TOKEN" https://api.example.com/profile

# POST-запрос с отправкой JSON-тела
curl -X POST https://api.example.com/login 
     -H "Content-Type: application/json" 
     -d '{"username":"test", "password":"secret"}'

# Сохранить ответ в файл и вывести заголовки
curl -o response.json -i https://api.example.com/data

4. Базы данных (базовые SQL-запросы)

-- Выборка данных (часто для проверки состояния БД после теста)
SELECT * FROM users WHERE email = 'test@example.com';

-- Ограничение вывода и сортировка
SELECT id, name FROM orders ORDER BY created_at DESC LIMIT 10;

-- Проверка количества записей (например, после создания пользователя)
SELECT COUNT(*) FROM users;

-- Очистка тестовых данных (осторожно!)
DELETE FROM test_sessions WHERE created_at < '2023-01-01';

5. Полезные команды для отладки

# Проверка, доступен ли хост/порт (сетевые проблемы)
ping example.com
nc -zv api.example.com 443  # Проверить, открыт ли порт 443

# Поиск процесса, использующего порт (например, если локальный сервер не запускается)
lsof -i :8080

# Просмотр логов в реальном времени (для локальных серверов или лог-файлов)
tail -f application.log

# Проверка переменных окружения (часто используются для конфигурации)
echo $DATABASE_URL
env | grep TEST

Практический пример: Сценарий подготовки тестового окружения.

# 1. Перейти в директорию проекта
cd ~/projects/autotests

# 2. Обновить код с GitHub
git pull origin main

# 3. Установить/обновить зависимости Python (если используется)
pip install -r requirements.txt

# 4. Проверить, что тестовый API доступен
curl -s -o /dev/null -w "%{http_code}" https://test-api.example.com/health
# Ожидаемый ответ: 200

# 5. Запустить тестовый набор
pytest tests/ -v

Ответ 18+ 🔞

О, слушай, тут один мой знакомый, который в тестировании, блядь, работает, такой приходит и говорит: "Я, блядь, не знаю, как в терминале папку создать!". Ну я просто охуел, честно. Как так-то, сука? Ну ладно, давай по порядку, чтоб ты не был таким же, как этот чувак.

1. Терминал — твой новый лучший друг, а не страшный чёрный экран

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

Навигация и файлы (чтобы не потеряться в своей же файловой системе):

pwd                 # Глянь, где ты сейчас стоишь, блядь (текущая папка)
ls -la              # Покажи всё, что тут есть, включая спрятанные файлы, эти хитрожопые
cd /путь/к/папке    # Перейди куда надо
cd ..               # Шаг назад, на уровень выше (иногда это спасает)
mkdir test_dir      # Создай папку, наконец-то
cp исходник.txt куда/ # Скопируй файл, не потеряй
mv старый.txt новый.txt # Переименуй или перетащи
rm file.txt         # Удали файл (смотри, не удали нужное, потом будешь плакать!)
cat file.txt        # Вывали на экран всё, что внутри файла
grep "ошибка" log.txt # Найди все строки, где есть слово "ошибка". Очень помогает, когда логов дохуя.

2. Гит (Git) — чтобы не просрать все изменения и не орать "бля, а где мой код?!"

git clone https://github.com/user/repo.git  # Стяни репозиторий с небес (с GitHub)
git status                                   # Посмотри, что ты там натворил (какие файлы изменил)
git add .                                    # Подготовь ВСЁ к сохранению (осторожно, блядь!)
git commit -m "Починил тест логина"         # Сохрани изменения с комментарием
git push origin main                        # Затолкай свои сохранения обратно на сервер
git pull                                     # Подтяни свежие изменения с сервера, чтобы не отставать
git checkout -b новая-ветка-для-тестов      # Создай новую ветку и сразу в неё перейди
git log --oneline                           # Посмотри историю, кто что делал, коротко и ясно

3. Сеть и API — как пощупать бэкенд, не открывая браузер

cURL — твоя волшебная палочка для запросов:

# Простейший GET-запрос, чтоб проверить, живой ли сервер
curl https://api.example.com/users

# GET, но с авторизацией в заголовке (без токена тебя пошлют нахуй)
curl -H "Authorization: Bearer ТВОЙ_ТОКЕН" https://api.example.com/profile

# POST-запрос с отправкой JSON (например, залогиниться тестовым юзером)
curl -X POST https://api.example.com/login 
     -H "Content-Type: application/json" 
     -d '{"username":"test", "password":"secret"}'

# Сохранить ответ в файлик и заодно заголовки посмотреть
curl -o response.json -i https://api.example.com/data

4. Базы данных — заглянуть под капот

Иногда надо проверить, а записалось ли что-то в базу после твоего теста, или всё полетело в пизду.

-- Вытащить данные (например, найти тестового юзера)
SELECT * FROM users WHERE email = 'test@example.com';

-- Вывести немного и по порядку (последние 10 заказов)
SELECT id, name FROM orders ORDER BY created_at DESC LIMIT 10;

-- Просто посчитать, сколько там всего (удобно для проверки)
SELECT COUNT(*) FROM users;

-- Удалить тестовые данные (БЛЯДЬ, СМОТРИ, ЧТО УДАЛЯЕШЬ! Сначала SELECT-ом проверь!)
DELETE FROM test_sessions WHERE created_at < '2023-01-01';

5. Отладочные команды — когда всё идёт по пизде и надо понять, почему

# Пинг — стукнуться к серверу, проверяем связь
ping example.com
nc -zv api.example.com 443  # Проверить, открыт ли конкретный порт (например, 443 для HTTPS)

# Кто занял мой порт?! (Когда локальный сервер не стартует, говорит "порт занят")
lsof -i :8080

# Смотреть логи в реальном времени, как сериал (очень увлекательно, если там ошибки)
tail -f application.log

# Что за переменные окружения у меня стоят? (Часто в них конфиги лежат)
echo $DATABASE_URL
env | grep TEST

Ну и практический пример, как это всё вместе работает, чтобы не быть теоретиком:

# 1. Зайди в проект
cd ~/projects/autotests

# 2. Подтяни свежий код
git pull origin main

# 3. Поставь зависимости, если на питоне (а то тесты не запустятся)
pip install -r requirements.txt

# 4. Проверь, живой ли тестовый апи (получим код ответа HTTP)
curl -s -o /dev/null -w "%{http_code}" https://test-api.example.com/health
# Если увидишь 200 — значит, живой, можно работать. Если 500 — ну, пиздец.

# 5. Запусти тесты
pytest tests/ -v

Вот и всё, ёпта. Выучи это, и ты уже не будешь тем самым чуваком, который не знает, как папку создать. А дальше — больше. Главное, не бойся командной строки, она тебя не съест. Ну, если только ты её не попросишь rm -rf /, конечно. Этого не делай, а то реально съест.