powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Тестирование и QA [игнор отключен] [закрыт для гостей] / автотесты в Postman
3 сообщений из 3, страница 1 из 1
автотесты в Postman
    #39973436
GrossmasteR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
отправляю запрос на покупку товара. В теле передается например
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
"products":[
            {
                "id":"1",
                "quantity":3
            },
            {
                "id":"5",
                "quantity":2
            }
        ]


В теле ответа:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
"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, а может быть больше и тоже с количеством. Как написать эту логику, пожалуйста, подскажите?
Пока получается как-то так:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
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 / 0
автотесты в Postman
    #39974937
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrossmasteR
протестировать, что скидка (10% при более 3 единиц товара) считается верно

GrossmasteR
Как бы завернуть это в тест?

Написать модульный тест, а не интеграционный через Postman.

А если всё-таки хочется именно через Postman, то есть документация: https://learning.postman.com/docs/postman/scripts/test-scripts/
...
Рейтинг: 0 / 0
автотесты в Postman
    #39974954
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrossmasteR
Пока получается как-то так:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
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;
});


На мой взгляд надо просто написать два теста.

1. Когда количество больше двух:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
pm.test("The amount is calculated correctly", function () {
    let json = pm.response.json();
    let sum = 0;

    json.transaction.order.products.forEach(item => sum += item.quantity * item.product.price);

    pm.expect(json.transaction.order.totalQuantity).to.above(2);
    pm.expect(json.transaction.order.totalSum).to.equal(sum * 0.9);
});


2. Когда количество меньше трёх...
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Тестирование и QA [игнор отключен] [закрыт для гостей] / автотесты в Postman
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (2): Анонимы (2)
Пользователи онлайн (12): Анонимы (9), Yandex Bot, Bing Bot, CerebroSQL 1 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]