// 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 = 8; 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 - 500) 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 = 6; // const REQUEST_INTERVAL = 170; // 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++; // if (currentRequest === NUM_CONCURRENT_REQUESTS) { // done(); // } // }, currentRequest); // } // } // // const requestIntervalId = setInterval(sendNextRequest, REQUEST_INTERVAL); // // 当所有请求完成后清除定时器 // if (currentRequest === NUM_CONCURRENT_REQUESTS) { // clearInterval(requestIntervalId); // } // }); });