Инструменты тестирования
Общая информация
Тестирование работоспособности модулей Glial, на данном этапе, сводится к тестированию API путем отправки на endpoint'ы HTTP запросов и анализу изменения состояния системы после них.
Установка и настройка
Для тестирования используется фреймворк Busted
Для запуска тестов, необходимо установить сам Busted и некоторые зависимости.
Последовательность установки:
apt-get install luarocks #(или brew install luarocks на MacOS)
luarocks install busted
luarocks install lbase64
luarocks install fun
luarocks install md5
luarocks install luajson
Запуск тестов
Для запуска тестов, перейдите в папку ./tests в корневой директории Glial и выполните:
bash run_tests.sh
Этот скрипт создает папку для логов Tarantool'а (./tests/logs/
), запускает тесты и удаляет тестовую базу данных (./test_db
) после прохода всех тестов.
Файл run_tests.sh
можно отредактировать для того, чтобы запускались только тесты с определенным тегом.
Для этого, в нем строку busted tests.lua
нужно заменить на busted -t "имя_тега" tests.lua
.
Теги можно создавать в файле ./tests/.busted
.
...
tarantool = {
tags = "tarantool",
verbose = true
},
backups = {
tags = "backups",
verbose = true
},
functions = {
tags = "functions",
verbose = true
},
параметр_запуска = {
tags = "название_тега",
verbose = true
}
В результате запуска теста, в консоли вы увидите примерно такой вывод:
bash run_tests.sh
●●●●●●●●●●●●◼●●●●●●●●●●●●●●●●◼●●●
31 successes / 2 failures / 0 errors / 0 pending : 14.10226 seconds
Под ним будет вывод информации о провалившихся тестах.
Тест - кейсы
Tarantool
Тег "tarantool"
- Запуск Tarantool
- Выключение Tarantool
Скрипты
Тег "script"
- создание скрипта
- изменение имени(учитывая символы в именах, вроде +/_-%),
- изменение объекта
- изменение тела
- копирование скрипта
- получение информации о скрипте
- удаление запущенного скрипта
- удаление остановленного скрипта
- удаление скрипта, в котором destroy возвращает false
- cоздание невалидного скрипта, запуск, получение ошибки
- создание валидного скрипта, запуск, получение подтверждения запуска
- cоздание скрипта, изменяющего bus, запуск, проверка изменения bus
- cоздание скрипта, создающего записи в логах, запуск, проверка логов
- cоздание скрипта, подписанного на события, генерация события, проверка реакции скрипта
Шина
Тег "bus"
- создание записи
- изменение метаданных
- изменение значения
- удаление записи
Логи
Тег "logs"
- создание записей в логах разных уровней
- получение записей с сортировкой по level(проверка фильтрации)
- очистка логов
Резервное копирование
Тег "backups"
- наполнение данными базы
- проверка создания копии
- проверка восстановления копии
- проверка, что в копию попадают скрипты и bus
- проверка, что в копию не попадают логи
Встроенные функции
Тег "functions"
- создание скрипта с функциями
round()
,deepcopy()
, проверка правильности работы этих функций - создание записи в bus в случае успеха, проверка наличия записи.
Прочая информация
Тестовые скрипты, которые используются для создания ситуаций для тестов располагаются в папке ./tests/test_scripts
.
Логи Tarantool пишутся в папку ./tests/logs
. Название файла с логами содержит дату и случайную строку.
Тестовый процесс Tarantool запускается на 8888 порту и работает с тестовой базой (./test_db
).
Функционированию рабочей версии Glial это никак не мешает.