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