Автоматическое тестирование пакета PL / SQL

#sql #unit-testing #plsql #jmeter #oracle-sqldeveloper

#sql #модульное тестирование #plsql #jmeter #oracle-sqldeveloper

Вопрос:

Я хотел бы протестировать частные процедуры / функции в данном пакете pl / sql (среда oracle).

Мне нужен довольно простой тест (запустите процедуру, проверьте DB, существует ли строка / или проверьте возвращаемое значение), но в сложном наборе тестов.

Какой инструмент / подход вы бы мне порекомендовали? (Невозможно использовать платное решение).

Я использую SQL developer, поэтому вариант № 1 — это внутренняя платформа тестирования JUnit.

Другим вариантом является utPLSQL, чтобы быть более независимым от разработчика SQL.

Третий подход совершенно иной. Я бы использовал Apache JMeter для подключения к базе данных и записи тестов в JMeter. Я довольно хорошо знаком с этим инструментом. Недостатком является то, что мне, вероятно, было бы трудно / невозможно протестировать частные функции.

Ваше мнение?

Комментарии:

1. Вы пробовали кодировать с использованием BeanShell sampler, где вы пишете Java-код для достижения своей задачи?

2. В предыдущем проекте я большую часть времени использовал BeanShell sampler, потому что Java — мой основной язык программирования.

3. Концептуально, я думаю, вы не должны хотеть тестировать частные процедуры и функции в пакете. Спецификация — это контракт; вы должны протестировать контракт. Разработчик имеет право изменять частную реализацию, но не контракт (спецификацию).

Ответ №1:

Я не понимаю вашего «простого теста в сложном наборе тестов». Однако, если ваш основной сценарий тестирования:

  1. Настройте тестовые данные в таблицах базы данных
  2. Запустите подпрограмму PL / SQL
  3. Проверьте правильность измененных подпрограммой данных в таблицах базы данных

У меня для вас хорошая новость — http://dbfit.github.io/dbfit / — отличный инструмент для такого рода тестирования. Я использовал его несколько раз, и я им очень доволен.

О, и невозможно получить доступ к частным подпрограммам пакета. Вы можете получить доступ только к общедоступному интерфейсу пакета (спецификации).

Комментарии:

1. Спасибо за ваш ответ. Я попробую это.