179 lines
5.8 KiB
TypeScript
179 lines
5.8 KiB
TypeScript
// 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);
|
||
// }
|
||
// });
|
||
|
||
});
|