Как загрузить / получить в базе данных памяти (база данных H2) с использованием karate Framework в качестве обязательного шага перед вызовом Microservice REST API - PullRequest
1 голос
/ 07 июня 2019

Постановка задачи:

  1. Микросервисы извлекают данные из базы данных DB2 как часть производства
  2. Различный набор данных возможен в другой среде
  3. Как часть этого, оно должно гарантировать точность логики поиска
  4. код Java преобразует данные DB2 в структуру JSON
  5. Логика Microservices не контролирует создание базы данных, она ограничена только поиском
  6. В качестве части вышеуказанного требования обсуждается DB (H2) в памяти для тестирования, где данные загружаются с использованием DDL / DML и ожидаемого ответа JSON, который будет сгенерирован вручную как часть модульного тестирования

Цель проверки проверки: проверить «логику повторного запуска», чтобы независимо от среды извлекались одинаковые значения. При вызове микросервисов внутренние URL-адреса Test Harness обращаются к базе данных в памяти для получения фактического ответа

Тестовая структура автоматизации на месте:

  1. Рамки для каратэ

Подход к автоматизации испытаний:

  1. Загрузка данных в базу данных памяти с использованием DDL / DML (файл) как часть выполнения теста
  2. Вызов микросервисного запроса с использованием каратэ
  3. Сравнить фактический ответ с ожидаемым ответом JSON, полученным на шаге
  4. Удалить базу данных как часть очистки

Примечание. Поскольку было бы очень утомительно писать ту же логику автоматизации тестирования, которая помогает преобразовывать данные в БД (в памяти) в JSON (ожидаемый ответ), ожидаемый ответ JSON будет записан как базовый ожидаемый ответ

Предполагается, что для поддержки DDL / DML будет поддерживаться Test Automation Maintenance или ожидаемый JSON в случае каких-либо изменений в реальной логике поиска.

Ссылка для проверки БД в памяти:

https://www.baeldung.com/spring-jpa-test-in-memory-database

xyz-service-response.json генерируется как часть модульного тестирования, когда в памяти создается БД

@ TestRetrivalLogicusingInMemoryRequirnments Особенность: демонстрация чтения файлов и использование в тесте

Справочная информация: * url 'http://localhost:8080/api/sample/v1.0/' * header Accept = 'application / json' * настроить logPrettyResponse = true * configure ssl = true

Сценарий: использование json в качестве строки Загрузка данных в базу данных в памяти ---- >> Это ожидаемое заявление Огурец. Нужно понять, как мы можем сделать в каратэ Указанный путь 'getDerivedRules' И запрос {"pricingVerIds": [{"AncestorVersionId": 123456123, "kidsVersionIds": [3432432,345324324]}], "executeFlow": "Check", "PriceType": "dollarinINYIELD", "validationLevel": "Aggrement_: } Когда метод POST Тогда статус 200 Затем сопоставьте $ == read ('xyz-service-response.json')

Вызов и запрос:

Поскольку в выражении каратэ Gherkin отсутствует Java Glue Code и имеется собственный DSL, это может быть достигнуто с помощью каратэ или нам нужно придерживаться RESTAssured или аналогичной платформы

Запрос о помощи:

Было бы полезно любое предложение или фрагмент кода для обработки выше

1 Ответ

0 голосов
/ 08 июня 2019

Абсолютно возможно, пожалуйста, обратитесь к этому примеру в демоверсиях: dogs.feature.

Дело в том, что вы можете легко смешать любой пользовательский код Java в тест каратэ.Пожалуйста, обратитесь к документации для получения дополнительной информации: https://github.com/intuit/karate#calling-java

Вам НЕ нужен код "Клея" Cucumber и определения шагов для этого, и мы рассматриваем все это как ненужные накладные расходы ,Вам НЕ нужен пользовательский DSL.Вам просто нужно написать собственный код Java и вызвать эти методы из теста каратэ.Он может не выглядеть как «чистый английский», но он выполнит работу самым простым способом.

Дополнительные примеры расширенного взаимодействия Java, которые возможны, см. В следующем примере: https://twitter.com/KarateDSL/status/1128170638223364097

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