Я пишу тесты в POSTMAN для запроса POST API, отправляя данные тела JSON в следующем формате:
"data": {
"name": "Amber Joseph",
"dob": "1988-10-13",
"addressLine1": "Ap #770-9459 Quis Av.",
"state": "WA",
"suburb": "Beverley",
"yesNo": false,
"balance": 423.00,
"club": [
"Dance",
"Sports"
],
"activities" : null
"libraryCard": {
"uid": "2d07d77c-8756-43d4-912f-238a2ff567fe"
}
}
Я получаю ответ на запрос в аналогичном формате с некоторыми добавленными деталями:
{
"status": "Success",
"message": "Created new 'Student' record",
"correlationCode": "Z848640-261354",
"type": {
"id": 51247,
"name": "Student",
"slug": "student",
"application": {
"name": "Willow University"
}
},
"data": {
"name": "Amber Joseph",
"dob": "1988-10-13",
"addressLine1": "Ap #770-9459 Quis Av.",
"state": "WA",
"suburb": "Beverley",
"yesNo": false,
"balance": 423.00,
"club": [
"Dance",
"Sports"
],
"libraryCard": {
"uid": "2d07d77c-8756-43d4-912f-238a2ff567fe",
"name": "11206"
}
}
Теперь я хочу добиться здесь двух вещей: 1. Убедитесь, что каждый ключ в теле ответа не имеет нулевого значения. Обратите внимание, что я отправляю один ключ со значением null, и он не возвращается в ответ. 2. Значение, отправленное в теле запроса для каждого ключа, является значением, возвращаемым тем же ключом в теле ответа. Например, если ключ «name» имеет значение «Amber Joseph», то ответный ключ «name» также возвращает «Amber Joseph». Но я хочу сделать это для каждой клавиши. Также ключи могут откладывать каждый раз, например, я мог или не мог отправить его с ключом «имя», поэтому мне нужно общее решение, которое применяется к любым парам ключ-значение, которые я отправляю.
Я могу пройти через цикл, используя:
let jsonData = pm.response.json();
let dKey = Object.keys(jsonData);
let dValue = Object.values(jsonData);
for(var i = 0; i < dV.length; i++ ){
pm.expect(dV[i]).to.not.eql(null);
}
Но это не проверяет вложенную пару значений ключа по отдельности. Я специально хочу проверить каждую пару значений ключа внутри объекта «данные». Любая помощь будет оценена по достоинству.
Спасибо