Ответ
Тестировщику необходимо уверенно владеть базовыми командами для работы с кодом, системами и сетевыми сервисами.
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 /, конечно. Этого не делай, а то реально съест.