Каратэ: Получить всех пользователей и удалить с идентификатором ссылки - PullRequest
1 голос
/ 31 октября 2019

После завершения моих тестов я хочу удалить всех созданных пользователей. Я могу удалить одного пользователя за раз. Можем ли мы сделать это, используя условную логику?

Feature file:

Given path  'users'
    And header Authorization = authId
    And header Accept = 'application/json;version=2'
    When method Get
    Then status 200
    Then print 'Response Time: '+ responseTime + ' milliseconds'
    * def resp = $
    * def size = karate.sizeOf(resp)
    * print 'Number of users: ' + size

Это дает мне ответ ниже:

[
  {
    "firstName": "Edit User",
    "lastName": "API Test",
    "emailAddress": "edituserapitesting@gmail.com",
    "ada": true,
    "isDeleted": false,
    "alerts": [],
    "links": [
      {
        "href": "https://someurl/api/users/0219360d-5ca6-42af-9e9c-10be1e32d219",
        "rel": "self"
      }
    ]
  },
  {
    "firstName": "Create",
    "lastName": "Test",
    "emailAddress": "api@test.com",
    "ada": true,
    "isDeleted": false,
    "alerts": [],
    "links": [
      {
        "href": "https://someurl/api/users/5e3c9be1-2863-4a2d-85e9-966582b127ac",
        "rel": "self"
      }
    ]
  },
  {
    "firstName": "Create",
    "lastName": "Test",
    "emailAddress": "api@test.com",
    "ada": true,
    "isDeleted": false,
    "alerts": [],
    "links": [
      {
        "href": "https://someurl/api/users/b6feb126-bca2-43e6-ba2d-87aaae81fef0",
        "rel": "self"
      }
    ]
  },
  {
    "firstName": "Create",
    "lastName": "Test",
    "emailAddress": "api@test.com",
    "ada": true,
    "isDeleted": false,
    "alerts": [],
    "links": [
      {
        "href": "https://someurl/api/users/4f07f234-9606-4cf5-94ce-3a42fb11a6d7",
        "rel": "self"
      }
    ]
  }
]

Мне нужно получить идентификатор [Например: 4f07f234-9606-4cf5-94ce-3a42fb11a6d7] из каждого json и передайте его для удаления пути.

1 Ответ

0 голосов
/ 31 октября 2019

Пожалуйста, прочитайте о преобразованиях: https://github.com/intuit/karate#json-transforms

Теперь в одной строке вы можете получить массив идентификаторов:

* def ids = karate.map(response, function(x){ var link = x.links[0].href; return link.substring(link.lastIndexOf('/') + 1) })

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

...