Files
bigwo/test2/server/tests/quick_test_viking.js

60 lines
1.9 KiB
JavaScript
Raw Normal View History

const path = require('path');
const VikingRetrievalPerformanceTester = require('./viking_retrieval_performance');
require('dotenv').config({ path: path.join(__dirname, '../.env') });
async function main() {
const args = process.argv.slice(2);
const testType = args[0] || 'full';
const tester = new VikingRetrievalPerformanceTester();
const testQueries = [
{ name: 'Product Query - Xiaohong', query: '小红产品有什么功效' },
{ name: 'Product Query - Dabai', query: '大白产品怎么吃' },
{ name: 'Company Info', query: '德国PM公司介绍' },
{ name: 'NTC Technology', query: 'NTC营养保送系统原理' },
{ name: 'Hot Answer', query: '基础三合一怎么吃' },
{ name: 'No Hit Query', query: '今天天气怎么样' }
];
switch (testType) {
case 'latency':
console.log('Running latency test only...');
await tester.warmup(testQueries.map(q => q.query));
await tester.testLatency(testQueries, 5);
tester.printSummary();
tester.saveReport('latency_test.json');
break;
case 'cache':
console.log('Running cache efficiency test only...');
await tester.warmup(testQueries.map(q => q.query));
await tester.testCacheEfficiency(testQueries.slice(0, 3), 5);
tester.printSummary();
tester.saveReport('cache_test.json');
break;
case 'concurrency':
console.log('Running concurrency test only...');
await tester.warmup(testQueries.map(q => q.query));
await tester.testConcurrency(testQueries.slice(0, 3), [1, 2, 3, 5]);
tester.printSummary();
tester.saveReport('concurrency_test.json');
break;
case 'full':
default:
console.log('Running full performance test suite...');
await tester.runFullSuite();
break;
}
console.log('\nTest completed!');
}
main().catch(err => {
console.error('Test failed:', err);
process.exit(1);
});