cvat/tests/perf/scripts/utils/validation.js

32 lines
1.4 KiB
JavaScript

// Copyright (C) CVAT.ai Corporation
//
// SPDX-License-Identifier: MIT
import { check, fail } from 'k6';
/**
* Validates the HTTP response and logs detailed information if validation fails.
*
* @param {Object} response - The HTTP response object returned by k6 http request functions.
* @param {number} expectedStatus - The expected HTTP status code.
* @param {string} requestDescription - Short description of the request purpose (e.g., "Create task").
*/
export function validateResponse(response, expectedStatus, requestDescription) {
const success = check(response, {
[`${requestDescription} - status ${expectedStatus}`]: (r) => r.status === expectedStatus,
});
if (!success) {
console.error('>-------------------------------------------------------------');
console.error(` Request failed: ${requestDescription}`);
console.error(` Expected status: ${expectedStatus}, got: ${response.status}`);
console.error(' Request details:');
console.error(` Method: ${response.request.method}`);
console.error(` URL: ${response.request.url}`);
console.error(` Headers: ${JSON.stringify(response.request.headers || {}, null, 2)}`);
console.error(` Body: ${response.request.body || 'no body'}`);
console.error(` Response body: ${response.body}`);
fail(`${requestDescription} failed. Expected status ${expectedStatus}, got ${response.status}`);
}
return success;
}