Postman. Готовые скрипты для тестирования — PROG-TIME

Postman. Готовые скрипты для тестирования

17.06.2024
Содержание:

В данной записи собраны скрипты для тестирования через программу Postman. Скрипты для проверки по: статусу ответа, JSON ключу, заголовку ответа.

Код ответа страницы

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

Код ответа страницы (из списка)

pm.test("Successful POST request", () => {
    pm.expect(pm.response.code).to.be.oneOf([201,202]);
});

Скорость загрузки

pm.test("Response time is less than 1000ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(1000);
});

Проверка наличия ключей в JSON

pm.test("Person is Jane", () => {
    const responseJson = pm.response.json();
    pm.expect(responseJson.name).to.eql("Jane");
    pm.expect(responseJson.age).to.eql(23);
});

Наличие заголовка в ответе

pm.test("Content-Type header is present", () => {
    pm.response.to.have.header("Content-Type");
});

Наличие файлов Cookie

pm.test("Cookie JSESSIONID is present", () => {
    pm.expect(pm.cookies.has('JSESSIONID')).to.be.true;
});

Наличие определенного значения файла cookie

pm.test("Cookie isLoggedIn has value 1", () => {
    pm.expect(pm.cookies.get('isLoggedIn')).to.eql('1');
});

Специально провалить тест

Могут быть случаи, когда вы ожидаете, что тест провалится, но этого не происходит.

pm.test("Not failing", function () {
    pm.expect(true).to.eql(false);
});

Отправка асинхронного запроса

pm.sendRequest("https://postman-echo.com/get", function (err, response) {
    console.log(response.json());
});

Аутентификация и авторизация

pm.test("Authentication and authorization", function () {
    var authToken = pm.environment.get("authToken");
    pm.request.headers.add({ key: "Authorization", value: "Bearer " + authToken });
    pm.sendRequest(function (response) {
        pm.expect(response.status).to.equal(200);
        pm.expect(response.json().authorized).to.be.true;
    });
});

Извлечение и обработка данных

pm.test("Data extraction and transformation", function () {
    var responseArray = pm.response.json().data;
    var transformedData = responseArray.map(function (item) {
        return {
            id: item.id,
            name: item.first_name + " " + item.last_name"
        };
    });
    // Use transformed data for assertions or environment variables
    pm.expect(transformedData[0].name).to.include("John");
    pm.environment.set("transformedData", JSON.stringify(transformedData));
});

Управление сессиями

var sessionToken;
pm.test("Login and session management", function () {
    // Perform login and extract session token from the response
    sessionToken = pm.response.json().session_token;
    pm.environment.set("sessionToken", sessionToken);
});
pm.test("Authenticated request using session token", function () {
    // Use the saved session token for authenticated requests
    pm.request.headers.add({ key: "Authorization", value: "Bearer " + sessionToken });
    pm.sendRequest(function (response) {
        pm.expect(response.status).to.equal(200);
    });
});

Нагрузочное

var concurrentRequests = 10;
pm.test("Load testing", function () {
    var requests = [];
    for (var i = 0; i < concurrentRequests; i++) {
        requests.push(pm.sendRequest);
    }
    Promise.all(requests).then(function (responses) {
        responses.forEach(function (response) {
            pm.expect(response.status).to.equal(200);
        });
    });
});