bash для тестировщика

Изучайте основные команды Linux, которые пригодятся каждому тестировщику в ежедневной работе.

Терминал

Bash (Bourne Again SHell) — коротко

Bash — это командная оболочка и язык сценариев для Unix/Unix-подобных систем. Она даёт интерактивную командную строку (CLI) и позволяет запускать скрипты для автоматизации.

  • Поддерживает переменные, функции, условия, циклы и шаблоны имён файлов.
  • Имеет встроенные команды для работы с файлами, процессами и сетью.
  • Сценарии варьируются от простых одноразовых команд до сложных процедур.

Зачем Bash тестировщику?

  • Быстрее, чем GUI: команды часто выполняются быстрее, чем клики в интерфейсе.
  • Работа с серверами без GUI: многие стенды и прод-серверы доступны только через CLI.
  • Логи и диагностика: поиск и фильтрация логов, сбор артефактов для баг-репортов.
  • Тестовые данные: генерация данных и базовая автоматизация через скрипты.

Что такое CLI?

Помимо GUI и API существует CLI — интерфейс командной строки. В Bash вы вводите команды текстом и получаете текстовый вывод. Это удобно для точных, повторяемых действий.

Структура команды в Bash

  • Имя команды: что запустить (ls, mkdir).
  • Опции/флаги: модификаторы поведения, обычно с - (например, ls -l).
  • Аргументы: «над чем» выполнять (например, в mkdir newdirnewdir).
  • Перенаправление ввода/вывода: >, >>, 2> для записи вывода/ошибок в файл.
  • Конвейер (pipe): | передаёт вывод одной команды на вход другой.
user@server:~$ ls -l /var/log | grep ERROR > errors.txt # имя команды: ls # флаг: -l # аргумент: /var/log # конвейер: | grep ERROR # перенаправление вывода: > errors.txt
ls -l

Показать детальный список файлов и папок.

Для тестировщика: Проверить права доступа к файлу, чтобы убедиться, что у приложения нет лишних прав.
ls -a

Показать все файлы, включая скрытые.

Для тестировщика: Найти скрытые конфигурационные файлы (например, .env), которые могут влиять на работу приложения.
mkdir temp_files

Создать новую папку.

Для тестировщика: Создать временную папку для хранения тестовых данных или скриншотов.
touch test.txt

Создать пустой файл.

Для тестировщика: Создать файл с нулевым размером для проверки его загрузки.
rmdir empty_dir

Удалить пустую папку.

Для тестировщика: Удалить временную директорию после тестов, если она пуста.
rm -r temp_files

Удалить папку со всем содержимым.

Для тестировщика: Очистить тестовое окружение, удалив папку с временными файлами.

Что означают права доступа?

Команда ls -l выводит строку вида -rw-r--r--. Первая буква: d — папка, - — файл. Остальные 9 символов — это права для владельца, группы и остальных (по 3 символа на каждого).
r (read) — право на чтение, w (write) — на запись, x (execute) — на выполнение.

mv report.log archive/

Переместить или переименовать.

Для тестировщика: Переместить обработанные логи в архив, чтобы они не мешали.
cp config.json config.bak

Скопировать файл.

Для тестировщика: Создать резервную копию конфига перед тестами.
cat config.json

Показать содержимое файла.

Для тестировщика: Быстро просмотреть небольшой файл конфигурации или лога.
less app.log

Постраничный просмотр большого файла.

Для тестировщика: Удобно просматривать большие лог-файлы.
nano config.json

Открыть файл в простом редакторе.

Для тестировщика: Быстро отредактировать конфигурационный файл.
vim config.json

Открыть файл в мощном редакторе.

Для тестировщика: Для более сложного редактирования файлов на сервере.
echo "Test data" >> data.txt

Вывести текст и дописать его в файл.

Для тестировщика: Создать или дополнить файл с тестовыми данными.
cat app.log | grep "ERROR"

Передать вывод одной команды другой.

Для тестировщика: Создавать цепочки команд (найти ошибки и посчитать их).
ps aux | grep "java"

Показать процессы и отфильтровать.

Для тестировщика: Проверить, что процесс приложения запущен.
kill 12345

Завершить процесс по его ID (PID).

Для тестировщика: "Убить" зависший процесс для проверки восстановления.
ping -c 4 google.com

Проверить доступность сервера.

Для тестировщика: Убедиться, что тестовый сервер доступен.
curl api.example.com/users/1

Отправить GET-запрос.

Для тестировщика: Быстро проверить ответ API без Postman.
curl -X POST -d '{"name":"test"}' api.example.com/users

Отправить POST-запрос.

Для тестировщика: Создать тестовые данные через API.
Хотите получить видео и расширенный разбор этого вопроса?
Приобретите курс «Тестирование ПО с нуля. Уровень PRO» по ссылке.