Каратэ: передать массив в HTTP-запрос - PullRequest
0 голосов
/ 03 ноября 2019

Это продолжение этого билета .

Я пробовал циклы и данные, все идентификаторы передаются одновременно в запрос на удаление.

Scenario: Get all users
        #Get all users
        Given path  'users'
        And header Authorization = authId
        And header Accept = 'application/json;version=2'
        When method GET
        Then status 200
        * def userids = karate.map(response, function(x){ var link = x.links[0].href; return link.substring(link.lastIndexOf('/') + 1) })
        Then print userids
        Given path 'users'
        And path {userid: '#(userids)'}
        When method DELETE
        Then status 204

Я хочу передать только один идентификатор из массива за раз, отправить запрос, который удалит пользователя, и снова передать другие идентификаторы, пока длина массива не будет равна 1 в том же HTTP-запросе.

1 Ответ

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

Позвольте мне рассмотреть возможные способы, которые я могу придумать,

Вы можете переместить часть создания списка идентификаторов пользователей в Background: и создать динамический контур сценария с переменной userIds в качестве входных данных.

Feature : delete user

Background:
        * url baseUrl
        Given path  'users'
        And header Authorization = authId
        And header Accept = 'application/json;version=2'
        When method GET
        Then status 200
        * def userids = karate.map(response, function(x){ var link = x.links[0].href; return link.substring(link.lastIndexOf('/') + 1) }) 
        * def userids = karate.mapWithKey(userids, "userId")

   Scenario Outline: Delete Users
        Given path 'users'
        And path userId
        When method DELETE
        Then status 204

        Examples:
            | userids |

...