diff --git a/game-server/test/qps.test.ts b/game-server/test/qps.test.ts new file mode 100644 index 000000000..7ffcd641c --- /dev/null +++ b/game-server/test/qps.test.ts @@ -0,0 +1,174 @@ +// import { Client } from './Client'; +// import 'mocha'; +// import { PinusWSClient } from 'pinus-robot-plugin'; +// import async from 'async'; + +// describe('共鸣', function () { +// let pinusClient: PinusWSClient; +// let roleInfo; + +// before(function (done) { +// const c = new Client(); +// const timer = setInterval(() => { +// if (c.client) { +// pinusClient = c.client; +// roleInfo = c.roleInfo; +// clearInterval(timer); +// done(); +// } +// }, 500); +// }); + +// after(function (done) { +// pinusClient.disconnect(); +// // disconnect 后等待 500ms,供服务器清理环境、退出频道等 +// setTimeout(() => { +// done(); +// }, 500); +// }); + +// it('', function (done) { +// const NUM_CONCURRENT_REQUESTS = 10; // 设置并发请求数 +// let totalRequests = 0; //总共请求数量 +// let successfulRequests = 0; //成功数据 + +// function makeRequest(callback) { +// pinusClient.request('role.resonanceHandler.getData', {}, (result) => { +// totalRequests++; +// if (result && result.code == 0) { +// successfulRequests++; +// } +// callback(); +// }); +// } + +// async.times(NUM_CONCURRENT_REQUESTS, (n, next) => { +// makeRequest(next); +// }, (err) => { +// if (err) { +// console.error('Error in making requests:', err); +// } else { +// console.log('Test completed.'); +// console.log('Total requests:', totalRequests); +// console.log('Successful requests:', successfulRequests); +// console.log('QPS:', totalRequests); +// } + +// // Cleanup and disconnect +// // pinusClient.disconnect(); +// }); +// // done(); +// }) +// }); + +import { Client } from './Client'; +import 'mocha'; +import { PinusWSClient } from 'pinus-robot-plugin'; +import async from 'async'; + +describe('共鸣', function () { + let pinusClient: PinusWSClient; + let roleInfo; + + before(function (done) { + const c = new Client(); + const timer = setInterval(() => { + if (c.client) { + pinusClient = c.client; + roleInfo = c.roleInfo; + clearInterval(timer); + done(); + } + }, 500); + }); + + after(function (done) { + pinusClient.disconnect(); + // disconnect 后等待 500ms,供服务器清理环境、退出频道等 + setTimeout(() => { + done(); + }, 500); + }); + + // 在测试开始前记录开始时间 + const startTime = Date.now(); + + // it('', function (done) { + // const NUM_CONCURRENT_REQUESTS = 7; + // let totalRequests = 0; + // let successfulRequests = 0; + + // function makeRequest(callback, requestNumber) { + // const timerName = `RequestTime_${requestNumber}`; + // console.time(timerName); // 开始计时 + // pinusClient.request('role.resonanceHandler.getData', {}, (result) => { + // console.timeEnd(timerName); // 结束计时并输出耗时 + // totalRequests++; + // if (result && result.code == 0) { + // successfulRequests++; + // } + // callback(); + // }); + // } + + // async.times(NUM_CONCURRENT_REQUESTS, (n, next) => { + // makeRequest(() => { + // next(); + // }, n); + // }, (err) => { + // if (err) { + // console.error('Error in making requests:', err); + // } else { + // // 在测试结束后记录结束时间 + // const endTime = Date.now(); + // const testDuration = (endTime - startTime- 500) / 1000; // 将毫秒转换为秒 + // console.log('testDuration', endTime - startTime) + // const qps = totalRequests / testDuration; + + // console.log('Test completed.'); + // console.log('Total requests:', totalRequests); + // console.log('Successful requests:', successfulRequests); + // console.log('QPS:', qps); + // } + // done(); + // }); + // }); + + + + // it('', function (done) { + // const NUM_CONCURRENT_REQUESTS = 10; + // const REQUEST_INTERVAL = 125; // 125毫秒的间隔 + // let totalRequests = 0; + // let successfulRequests = 0; + // let currentRequest = 0; + + // function makeRequest(callback, requestNumber) { + // const timerName = `RequestTime_${requestNumber}`; + // console.time(timerName); // 开始计时 + // pinusClient.request('role.resonanceHandler.getData', {}, (result) => { + // console.timeEnd(timerName); // 结束计时并输出耗时 + // totalRequests++; + // if (result && result.code == 0) { + // successfulRequests++; + // } + // callback(); + // }); + // } + + // function sendNextRequest() { + // if (currentRequest < NUM_CONCURRENT_REQUESTS) { + // makeRequest(() => { + // currentRequest++; + // setTimeout(sendNextRequest, REQUEST_INTERVAL); // 添加间隔并继续下一个请求 + // if (currentRequest === NUM_CONCURRENT_REQUESTS) { + // // 最后一个请求完成后调用 done() + // done(); + // } + // }, currentRequest); + // } + // } + + // sendNextRequest(); // 开始第一个请求 + // }); +});