Your Name 2023-09-13
v 1.1
@f6d460764a396e25f1b08fb4c97ec084b69f6a24
README.md
--- README.md
+++ README.md
@@ -15,3 +15,11 @@
 TPS: xx.xxx (x는 숫자입니다)
 위와 같이 나온다면 정상적으로 실행된 상태입니다.
 
+v1.0
+초기 버전입니다.
+
+v1.1
+1회당 보내는 요청의 수를 1개에서 설정에 따라서 
+설정을 변경하는 방법은 server.js 5번째 줄에서
+concurrency : 동시적으로 보낼 회선 수 (한번에 몇개씩 병렬처리를 진행할 것인지)
+로 변경하시면 됩니다.
server.js
--- server.js
+++ server.js
@@ -1,7 +1,8 @@
 const axios = require('axios');
-const cors = require('cors')
+
 // 버튼을 누를 때 실행될 함수
 async function sendLoginRequest() {
+  const concurrency = 20;
   const url = 'http://127.0.0.1:8080/auth/login'; // 요청을 보낼 URL
   const payload = {
     id: 'id',
@@ -10,21 +11,44 @@
 
   try {
     const startTime = Date.now(); // 요청 시작 시간 기록
-    // const response = await axios.post(url, payload)
-    for(let a=0;a<100;a++){
-      const response = await axios.post(url, payload, { withCredentials: true })
-      // POST 요청 보내기
+    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 response = await axios.post(url, payload, { withCredentials: true }); // POST 요청 보내기
+
+    // 남은 요청을 보냅니다.
+    const remaining = await Promise.all(promises);
+    responses.push(...remaining);
+
     const endTime = Date.now(); // 요청 종료 시간 기록
 
-    if (response.status === 200) {
-      console.log('통신 성공');
-      const tps = 100000 / (endTime - startTime); // TPS 계산 (밀리초당 요청 수)
-      console.log(`TPS: ${tps.toFixed(3)}`);
-    } else {
-      console.error(`통신 실패: ${response.status}`);
+    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}`);
   }
Add a comment
List