Как мне протестировать мои приложения без сервера (API Gateway / Lambda / ECS)? - PullRequest
0 голосов
/ 04 ноября 2018

Я использую AWS API Gateway с Lambda / ECS для вычислений и Cognito для пользователей. Но мне очень сложно тестировать такие приложения. С AWS SAM Local я, возможно, смогу протестировать простую функциональность Lambda и API-шлюза, но если я использую такие вещи, как авторизаторы API-шлюза, мне будет сложно протестировать это сквозное.

Похоже, для тестирования таких приложений, мне нужна новая установка только для тестирования? Я имею в виду как отдельный API-шлюз с кластером Lambda / ECS / пулом Cognito, чтобы включить тестирование? Это кажется очень медленным, и я думаю, что я больше не смогу получать такие вещи, как отчет о покрытии кода?

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Я предполагаю, что вы используете облачную информацию для развертывания такого обширного стека, и следующий ответ основан на этом предположении.

Таким образом, в дополнение к ответу @ lloyd, я хотел бы добавить, что вы можете добавить пользовательские ресурсы в свой шаблон облачной информации для тестирования каждой отдельной лямбды или даже конечной точки API.

Также для лямбды вы можете использовать крючки настроек развертывания, чтобы протестировать ваши безсерверные лямбды до и после переноса вашей лямбды в новую версию.

https://github.com/awslabs/serverless-application-model/blob/release/v1.8.0/docs/safe_lambda_deployments.rst

0 голосов
/ 04 ноября 2018

Отказ от ответственности: я довольно новичок в AWS Lambda / ECS / Cognito, поэтому возьмите это с крошкой соли.

  1. Модульные тесты : SAM Local или некоторый другой локальный докер-хостинг с библиотекой модульного тестирования ( mocha ) подойдет для этого, потому что:
    • Speed. Все ваши тесты должны выполняться быстро против лямбда-функции
    • Пример: wildrydes с мокко
  2. Интеграционные тесты : После того, как вы внесете изменения, появится множество опций, вызывающих API. Я бы начал с почтальон для запуска тестов API, и вы можете связать их вместе или запустить их в командной строке, если это необходимо.
  3. Сквозные (E2E) тесты : Если API является вашим внешним интерфейсом, то между тестами E2E и API может не быть никакой разницы. Интерфейсы пользовательского интерфейса, голоса, чата значительно отличаются, как и параметры, поэтому я предложу несколько вариантов:
    • Пользовательский интерфейс: Selenium (имеет наибольшую поддержку и опции, доступные для вас, включая образы докеров: Selenium Hub или standalone)
    • Голос: Предложения?
    • Текст: Предложения?
  4. Шаговые функции :
    • позволяет визуализировать каждый шаг
    • повторяется при наличии ошибок
    • позволяет диагностировать и устранять проблемы
  5. X-Ray : собирает данные о запросах, которые обслуживает ваше приложение, и предоставляет инструменты, которые можно использовать для просмотра

Что касается покрытия кода, я не уверен, как вы в настоящее время делаете покрытие кода. Примерно так npm run покрытия , может быть?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...