А что такое скрипты?
Те, кто знаком с ИТ, верно понимают, что «скрипт — это небольшая программа»
Скрипт — это сценарий из команд, во время запуска которого начинается исполнение всех инструкций, что мы задали машине.
Скрипт делится на три части:
- Input — что мы ему передаём (строки или числа)
- Execute — что он делает внутри (логика, циклы, условия)
- Output — что возвращает (текстовый отчёт)
Мы даём данные➡️ что‑то происходит➡️ получаем результат.
На чём писать скрипты?
Практически все приложения наполнены скриптами, они работают в связке и создают систему. Иногда приходится разрабтывать очень маленькие приложения.
Для простых задач: автоматизация работы в операционной системе — скрипты могут быть написаны системными интерпретаторами bash/zsh, PowerShell. Преимущества:
➕ Нативная поддержка системных команд
➕ Низкое потребление ресурсов
Для более сложных скриптов, например, подключение к API, обработка наборов данных — подойдёт Python. Преимущества:
➕ Интерпретируемый язык
➕ Большой выбор библиотек из-за простоты их создания
Во что же можно обернуть скрипты?
😊 Чат‑боты:
– Telegram‑бот /run_tests, который запускает тесты и кидает ссылку на отчёт по готовности
– Telegram-бот, который контролирует процессы Code Review и сообщает о статусе Merge Request
🚂 CI/CD‑пайплайны:
– Шаг в GitLab CI, который при Merge Request автоматически собирает проект, прогоняет линтер и юнит-тесты, а при падении — блокирует merge и пишет автору в комментарий что сломалось
🧠 AI‑пайплайны:
– Генерирует код DAO/DTO по запросу к документации
– Информирует о тест-кейсах в Zephyr, которые изменили статус автоматизации
💻 CLI‑утилиты (терминал):
– Менеджер работы с фермой виртуальных устройств: запуск, проверка, выключение
🖥 Веб‑приложения:
– Запуск виртуального окружения по регулируемым настройкам: браузер, телевизор, смартфон — для проведения ручного тестирования
⏱ Планировщики (cron, systemd timers):
– Раз в сутки удаляет тестовые записи старше 7 дней из БД и архивирует логи тестовых прогонов
✈️ REST API:
– Сервис /generate-user, который возвращает сгенерированного тестового пользователя в JSON
👷 IaC (Terraform, Ansible):
– Плейбук, который на свежий сервер ставит инструменты и настраивает переменные окружения — новый инженер получает готовое рабочее окружение за минуты вместо дня ручной настройки
🪝 Webhook‑обработчики:
– Обработчик события GitHub/GitLab, который при новом PR запускает автотесты
– Обработчик деплоя, который после выката запускает smoke‑набор
🧩 Плагины:
– Плагин IntelliJ IDEA, который по клику на тест, открывает его страницу Zephyr в браузере
– Расширение браузера: на проекте нумерация шагов в автотестах отличалась от нумерации шагов в тест-кейсах, скрипт преобразовывал в удобную нумерацию для автотестеров напрямую, не изменяя тест-кейс
#научка@jestkiy_denisk
#sdet_tools@jestkiy_denisk