Интеграционное тестирование развернутых сервисов с использованием «helm test» - PullRequest
0 голосов
/ 20 июня 2019

Я использую рулевые диаграммы для развертывания нескольких служб REST в Microsoft Azure.Некоторые из этих служб взаимодействуют друг с другом и с некоторыми базами данных.После развертывания я хочу проверить, все ли работает так, как ожидалось.Если быть более точным, я хочу отправить несколько HTTP-запросов одной из служб и проверить, имеет ли ответ смысл.В автоматических тестах, конечно.

Я видел, что можно выполнить основные команды после развертывания, используя «тест Хелма» , но это не совсем то, что мне нужно.

В более раннем подходе я использовал Newman для выполнения Postman коллекции в скрипте после развертывания.Коллекция Postman определила несколько запросов и соответствующих тестов.

Теперь я не знаю, как это сделать в новой среде (Azure) и конвейере развертывания (helm, k8s).

Этобыло бы хорошо иметь что-то подобное снова.Но для меня неясно, как это сделать, например,

  • как я могу использовать Newman в области «теста руля»?
  • как я могу убедиться, что развернутые модуливсе "Работает" перед началом теста (некоторое время ожидания? проверка статуса?)?

newman run "test.postman_collection.json" -e "azure.postman_environment.json" --bail

1 Ответ

1 голос
/ 24 июня 2019

Тест Helm очень гибкий, потому что он запускает любой YAML Kubernetes, включая любой образ Docker. Например, вы можете проверить тесты для MySQL Helm Chart .

Итак, перейдем к вашим вопросам:

  1. Чтобы использовать Newman, вам просто нужно найти образ Docker с установленным Newman (например, официальный почтальон / newman или создать свой собственный). Чтобы использовать файлы конфигурации JSON, вы можете поместить их как ConfigMap или скопировать их в контейнер. Для более подробной информации обратитесь к MySQL Helm Chart.

  2. Вы правы, что вам нужно подождать, пока ваша система будет готова, прежде чем запускать тесты. AFAIK это не покрывается тестом шлема. Поэтому вам нужно либо вставить sleep в ваш скрипт, либо активно проверять с помощью kubectl, пока POD не будут готовы.

...