
File name
Commit message
Commit date
const axios = require('axios');
// 버튼을 누를 때 실행될 함수
async function sendLoginRequest() {
const concurrency = 20;
const url = 'http://127.0.0.1:8080/auth/login'; // 요청을 보낼 URL
const payload = {
id: 'id',
password: 'string',
}; // 보낼 JSON 데이터
try {
const startTime = Date.now(); // 요청 시작 시간 기록
const promises = [];
const responses = []; // 응답을 저장할 배열
const num_ping = 500
for (let a = 0; a < num_ping; a++) {
promises.push(
axios.post(url, payload, { withCredentials: true })
);
if (promises.length >= concurrency) {
// 병렬로 보낼 요청 수에 도달하면 Promise.all로 요청을 보냅니다.
const check = await Promise.all(promises);
responses.push(...check);
promises.length = 0; // promises 배열 비우기
}
}
// 남은 요청을 보냅니다.
const remaining = await Promise.all(promises);
responses.push(...remaining);
const endTime = Date.now(); // 요청 종료 시간 기록
let successCount = 0;
let failCount = 0;
for (const response of responses) {
if (response.status === 200) {
successCount++;
} else {
failCount++;
}
}
console.log(`10개씩 나눠서 `)
console.log(`성공한 요청 수: ${successCount}`);
console.log(`실패한 요청 수: ${failCount}`);
const tps = num_ping*1000 / (endTime - startTime); // TPS 계산 (밀리초당 요청 수)
console.log(`TPS: ${tps.toFixed(3)}`);
} catch (error) {
console.error(`에러 발생: ${error.message}`);
}
}
// 버튼을 누를 때 실행
sendLoginRequest();