Перейти к содержимому

Фотография

Использование массивов в тестах в Postman

postman

  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 GrossmasteR

GrossmasteR

    Новый участник

  • Members
  • Pip
  • 16 сообщений

Отправлено 26 июня 2020 - 05:31

отправляю запрос на покупку товара. В теле передается например
 

   "products":[
            {
                "id":"1",
                "quantity":3
            },
            {
                "id":"5",
                "quantity":2
            }
        ]

В теле ответа:

"order": {
            "id": "",
            "user": {
                "id": ,
                "email": ""
            },
            "products": [
                {
                    "product": {
                        "id": "1",
                        "description": "",
                        "name": "",
                        "price": 100,
                        "iamgeUrl": ""
                    },
                    "quantity": 3
                },
                {
                    "product": {
                        "id": "5",
                        "description": "",
                        "name": "",
                        "price": 500,
                        "iamgeUrl": ""
                    },
                    "quantity": 2
                }
            ],
            "totalQuantity": 5,
            "status": "paid",
            "totalSum": 1170
        }

Задача: с помощью Postman протестировать, что скидка (10% при более 3 единиц товара) считается верно. Проблема в том, что товар может быть 1, а может быть больше и тоже с количеством. Как написать эту логику, пожалуйста, подскажите?

  • 0

#2 GrossmasteR

GrossmasteR

    Новый участник

  • Members
  • Pip
  • 16 сообщений

Отправлено 26 июня 2020 - 06:36

Пока получается как-то так:

pm.test("The amount is calculated correctly", function () {
    var jsonData = pm.response.json();
    let sum = 0;
    jsonData.transaction.order.products.forEach(item => {
        sum += item.quantity * item.product.price;
    });
    if (jsonData.transaction.order.totalQuantity >= 3) {
        if (jsonData.transaction.order.totalSum === sum * 0.9) {
            return true;
        }
    }
    return false;
});
Как бы завернуть это в тест?

  • 0



Темы с аналогичным тегами postman

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных