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);
|
|
// }
|
|
// });
|
|
|
|
});
|