#arrays #json #karate
#массивы #json #каратэ
Вопрос:
* def runOperation1 = read('classpath:ic/common/resources/operation/runOperation.feature')
* def operationInputData = read('classpath:ic/feature/streaming/TestData/operationData.json')
* def result = call runOperation1 operationInputData
* def AllResponse = $result[*].response
* print AllResponse
Здесь ‘AllResponse’ заполняются после завершения всех выполнений из массива json.
Для каждого массива json нам нужно вызвать какую-либо другую функцию и утвердить некоторое значение. Затем нам нужно выполнить поиск другого элемента в массиве json
Комментарии:
1. отредактировал мой пост..
Ответ №1:
Я вижу 2 способа для этого,
1, Добавьте этот дополнительный шаг вызова другой функции и утверждения также в ваш runOperation.feature
2, Вместо того, чтобы call
создавать динамическую схему сценария для сценария в runOperation.feature
и добавлять свой шаг вызова внутри этого сценария
Редактировать :
Предположим operationData.json
, что,
[
{"name": "Johan"},
{"name": "Ben"}
]
Предположим runOperation.feature
, что
Feature: run operation feature
Scenario: run operation Scenario
Given url "http://httpbin.org/get"
And path name
And method get
And status 200
Предположим anothercall.feature
, что
Feature: another call feature
Scenario: another call scenario
Given url "http://httpbin.org/get"
And path name
And method delete
And status 200
Теперь ваша текущая функция может быть,
Background:
* def operationInputData = read('classpath:ic/feature/streaming/TestData/operationData.json')
Scenario Outline:
# steps from runoperation.feature
Given url "http://httpbin.org/get"
And path <name>
And method get
And status 200
# calling another feature
Then def anotherCall = call read("anothercall.feature") {"name": <name>}
# match / assert condition
Examples:
|operationInputData|
Я предлагаю использовать второй вариант, поскольку первый может привести к ненужным усложнениям.
Комментарии:
1. Привет, Бабу, <шаги в функции запуска ожидают значения массива json. Но значения массива json не передаются в запрос с использованием схемы сценария.
2. Любая помощь будет оценена. Поскольку нам это нужно для тестирования 5000 запросов в день для внешнего приложения. Когда я печатаю ‘opeationInputData’, он правильно печатает массив json.
3. Какую версию karate вы используете?
4. мой плохой .. тогда вы не можете использовать динамическую схему scneario.. Можете ли вы увеличить до 0.9.1??
5. Привет, Бабу, предложенное тобой решение отлично работает в версии 0.9.1. Спасибо за супер простой ответ. Карате просто потрясающее 🙂 Снимаю шляпу перед Intuit и его разработчиками 🙂