Files
trading_bot_v3/test-simple-screenshot.js
mindesbunister 45202cabe7 🚀 Major optimization: Dual-session screenshot service + Docker build speed improvements
 Key Achievements:
- Fixed DIY module screenshot failures - now works 100%
- Optimized Docker builds for i7-4790K (4 cores/8 threads)
- Implemented true parallel dual-session screenshot capture
- Enhanced error diagnostics and navigation timeout handling

🔧 Technical Improvements:
- Enhanced screenshot service with robust parallel session management
- Optimized navigation with 90s timeout and domcontentloaded strategy
- Added comprehensive error handling with browser state capture
- Docker build optimizations: 8-thread npm installs, parallel downloads
- Improved layer caching and reduced build context
- Added fast-build.sh script for optimal CPU utilization

📸 Screenshot Service:
- Parallel AI + DIY module capture working flawlessly
- Enhanced error reporting for debugging navigation issues
- Improved chart loading detection and retry logic
- Better session cleanup and resource management

🐳 Docker Optimizations:
- CPU usage increased from 40% to 80-90% during builds
- Build time reduced from 5-10min to 2-3min
- Better caching and parallel package installation
- Optimized .dockerignore for faster build context

🧪 Testing Infrastructure:
- API-driven test scripts for Docker compatibility
- Enhanced monitoring and diagnostic tools
- Comprehensive error logging and debugging

Ready for AI analysis integration fixes next.
2025-07-13 17:26:49 +02:00

60 lines
1.9 KiB
JavaScript
Executable File

#!/usr/bin/env node
/**
* Simple test script using curl to test the enhanced screenshot service
*/
const { execSync } = require('child_process');
async function testScreenshotService() {
console.log('🚀 Testing Enhanced Screenshot Service with curl');
try {
// Test the API endpoint
console.log('\n🔍 Testing API endpoint...');
const curlCommand = `curl -X POST http://localhost:3000/api/enhanced-screenshot \\
-H "Content-Type: application/json" \\
-d '{"symbol": "SOLUSD", "timeframe": "240", "layouts": ["ai"]}' \\
--max-time 120 \\
--silent \\
--show-error`;
console.log('📞 Making API request...');
const startTime = Date.now();
const result = execSync(curlCommand, { encoding: 'utf8', maxBuffer: 1024 * 1024 });
const endTime = Date.now();
const duration = (endTime - startTime) / 1000;
console.log('\n✅ API Response received!');
console.log(`⏱️ Duration: ${duration.toFixed(2)} seconds`);
console.log('📄 Response:', result.slice(0, 500) + (result.length > 500 ? '...' : ''));
try {
const parsed = JSON.parse(result);
if (parsed.screenshots) {
console.log(`📸 Screenshots: ${parsed.screenshots.length}`);
parsed.screenshots.forEach((screenshot, index) => {
console.log(` ${index + 1}. ${screenshot}`);
});
}
if (parsed.errors) {
console.log('❌ Errors:');
parsed.errors.forEach((error, index) => {
console.log(` ${index + 1}. ${error}`);
});
}
} catch (parseError) {
console.log('⚠️ Response is not valid JSON, raw response:', result);
}
} catch (error) {
console.error('\n❌ Test failed:', error.message);
console.error('Error details:', error.stdout || error.stderr || 'No additional details');
}
}
// Run the test
testScreenshotService();