← back to Wine Finder
test-parallel-both.js
132 lines
const { chromium: playwrightChromium } = require('playwright');
const puppeteer = require('puppeteer');
async function testWithPlaywright() {
console.log('🎭 PLAYWRIGHT TEST STARTING...');
const browser = await playwrightChromium.launch({ headless: true });
const context = await browser.newContext({ viewport: { width: 1920, height: 1080 } });
const page = await context.newPage();
const startTime = Date.now();
try {
await page.goto('http://45.61.58.125:9222/verify.html', { waitUntil: 'networkidle' });
console.log('✓ Playwright: Page loaded');
await page.screenshot({ path: '/tmp/playwright-test.png', fullPage: true });
console.log('✓ Playwright: Screenshot saved');
await page.fill('#mainSearchInput', 'Merlot');
await page.click('#searchButtonGiant');
console.log('✓ Playwright: Search executed');
await page.waitForTimeout(8000);
const searchResults = await page.locator('#searchResults.show').count();
console.log('✓ Playwright: Search results - ' + (searchResults > 0 ? 'Visible' : 'Hidden'));
await page.screenshot({ path: '/tmp/playwright-results.png', fullPage: true });
const endTime = Date.now();
console.log('✓ Playwright: Total time - ' + ((endTime - startTime) / 1000) + 's');
await browser.close();
return { success: true, framework: 'Playwright', time: endTime - startTime };
} catch (error) {
console.error('✗ Playwright error:', error.message);
await browser.close();
return { success: false, framework: 'Playwright', error: error.message };
}
}
async function testWithPuppeteer() {
console.log('🎪 PUPPETEER TEST STARTING...');
const browser = await puppeteer.launch({
headless: true,
args: ['--no-sandbox', '--disable-setuid-sandbox']
});
const page = await browser.newPage();
await page.setViewport({ width: 1920, height: 1080 });
const startTime = Date.now();
try {
await page.goto('http://45.61.58.125:9222/verify.html', { waitUntil: 'networkidle2' });
console.log('✓ Puppeteer: Page loaded');
await page.screenshot({ path: '/tmp/puppeteer-test.png', fullPage: true });
console.log('✓ Puppeteer: Screenshot saved');
await page.type('#mainSearchInput', 'Cabernet');
await page.click('#searchButtonGiant');
console.log('✓ Puppeteer: Search executed');
await new Promise(resolve => setTimeout(resolve, 8000));
const searchResults = await page.$('#searchResults.show');
console.log('✓ Puppeteer: Search results - ' + (searchResults ? 'Visible' : 'Hidden'));
await page.screenshot({ path: '/tmp/puppeteer-results.png', fullPage: true });
const endTime = Date.now();
console.log('✓ Puppeteer: Total time - ' + ((endTime - startTime) / 1000) + 's');
await browser.close();
return { success: true, framework: 'Puppeteer', time: endTime - startTime };
} catch (error) {
console.error('✗ Puppeteer error:', error.message);
await browser.close();
return { success: false, framework: 'Puppeteer', error: error.message };
}
}
(async () => {
console.log('');
console.log('=== PARALLEL TESTING: Playwright + Puppeteer ===');
console.log('');
console.log('Starting both frameworks simultaneously...');
console.log('');
const startTime = Date.now();
// Run both tests in parallel
const results = await Promise.all([
testWithPlaywright(),
testWithPuppeteer()
]);
const totalTime = Date.now() - startTime;
console.log('');
console.log('=== PARALLEL TEST RESULTS ===');
console.log('');
results.forEach(result => {
if (result.success) {
console.log('✅ ' + result.framework + ': SUCCESS (' + (result.time / 1000) + 's)');
} else {
console.log('❌ ' + result.framework + ': FAILED - ' + result.error);
}
});
console.log('');
console.log('Total parallel execution time: ' + (totalTime / 1000) + 's');
console.log('');
console.log('📸 Screenshots saved:');
console.log(' - /tmp/playwright-test.png (initial)');
console.log(' - /tmp/playwright-results.png (search: Merlot)');
console.log(' - /tmp/puppeteer-test.png (initial)');
console.log(' - /tmp/puppeteer-results.png (search: Cabernet)');
console.log('');
const allPassed = results.every(r => r.success);
if (allPassed) {
console.log('🎉 ALL PARALLEL TESTS PASSED!');
} else {
console.log('⚠️ Some tests failed');
}
console.log('');
})();