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();