Files
workavia-drive/tdrive/backend/node/test/performance/documents/browse-documents.js
T
2024-02-01 10:10:18 +01:00

52 lines
1.4 KiB
JavaScript

import http from "k6/http";
import { check, sleep } from "k6";
import { Trend } from "k6/metrics";
// Custom metric to track document creation duration
let docBrowseDuration = new Trend("doc_browse_duration");
export let options = {
stages: [
{ duration: "30s", target: 20 },
{ duration: "1m", target: 20 },
{ duration: "10s", target: 0 },
],
thresholds: {
doc_browse_duration: ["p(95)<500"], // 95% of browse operatins should be faster than 500ms
},
};
const baseURL = `${__ENV.BACKEND}/internal/services/documents/v1/companies`;
function browseDocuments(JWT, companyID) {
const url = `${baseURL}/${companyID}/browse/root`;
const headers = {
"Content-Type": "application/json",
Authorization: `Bearer ${JWT}`,
};
const body = {
company_id: companyID,
mime_type: "",
};
let creationStartTime = new Date().getTime();
const response = http.post(url, JSON.stringify(body), { headers });
let creationEndTime = new Date().getTime();
docBrowseDuration.add(creationEndTime - creationStartTime);
return JSON.parse(response.body);
}
export default function () {
const JWT = __ENV.JWT; // JWT set as an environment variable
const companyID = __ENV.COMPANY_ID; // Company ID set as an environment variable
const responseBody = browseDocuments(JWT, companyID);
check(responseBody, {
"response is successful": body => body.path[0].id == "root",
});
sleep(1);
}