Инструменты тестирования

Общая информация

Тестирование работоспособности модулей 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 это никак не мешает.

Last Updated: 11/15/2018, 6:23:38 PM