Ответ
В работе QA-инженера часто требуется замерять время выполнения скриптов, команд или этапов пайплайна для анализа производительности или определения таймаутов.
1. Встроенная команда time в Bash:
Самый простой способ измерить время выполнения любой команды или скрипта.
time ./run_tests.sh
Вывод показывает реальное время (real), время процессора в пользовательском режиме (user) и в режиме ядра (sys).
2. Замер времени выполнения части скрипта:
#!/bin/bash
START_TIME=$(date +%s)
# Выполняемая операция, например, запуск набора тестов
pytest ./tests/suite/
END_TIME=$(date +%s)
DURATION=$((END_TIME - START_TIME))
echo "Тесты выполнялись $DURATION секунд."
3. Использование time для детализированного вывода (GNU time):
/usr/bin/time -v python3 load_test.py
Ключ -v дает подробную статистику: использование памяти, количество page faults, контекстных переключений и т.д.
4. Практическое применение в CI/CD для тестов: В сценариях CI можно замерять время этапов и логировать его для дальнейшего анализа трендов.
# Пример в .gitlab-ci.yml
measure_tests:
script:
- start=$(date +%s%N)
- mvn test
- end=$(date +%s%N)
- echo "duration=$(( (end - start) / 1000000 ))ms" > test_duration.txt
artifacts:
paths:
- test_duration.txt
Зачем это QA:
- Выявление деградации производительности тестовых прогонов.
- Определение оптимальных таймаутов для операций.
- Сбор метрик для отчетов о стабильности и скорости тестирования.