Skip to content

Commit

Permalink
fix: screenshots every session for easy debugging
Browse files Browse the repository at this point in the history
  • Loading branch information
kobenguyent committed Jun 27, 2023
1 parent 1b5844a commit 0c9399e
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 23 deletions.
31 changes: 20 additions & 11 deletions lib/helper/Playwright.js
Original file line number Diff line number Diff line change
Expand Up @@ -2090,23 +2090,32 @@ class Playwright extends Helper {
*/
async saveScreenshot(fileName, fullPage) {
const fullPageOption = fullPage || this.options.fullPageScreenshots;
const outputFile = screenshotOutputFolder(fileName);
let outputFile = screenshotOutputFolder(fileName);

this.debug(`Screenshot is saving to ${outputFile}`);

await this.page.screenshot({
path: outputFile,
fullPage: fullPageOption,
type: 'png',
});

if (this.activeSessionName) {
const activeSessionPage = this.sessionPages[this.activeSessionName];

if (activeSessionPage) {
return activeSessionPage.screenshot({
path: outputFile,
fullPage: fullPageOption,
type: 'png',
});
for (const sessionName in this.sessionPages) {
const activeSessionPage = this.sessionPages[sessionName];
outputFile = screenshotOutputFolder(`${sessionName}_${fileName}`);

this.debug(`${sessionName} - Screenshot is saving to ${outputFile}`);

if (activeSessionPage) {
await activeSessionPage.screenshot({
path: outputFile,
fullPage: fullPageOption,
type: 'png',
});
}
}
}

return this.page.screenshot({ path: outputFile, fullPage: fullPageOption, type: 'png' });
}

/**
Expand Down
31 changes: 20 additions & 11 deletions lib/helper/Puppeteer.js
Original file line number Diff line number Diff line change
Expand Up @@ -1838,23 +1838,32 @@ class Puppeteer extends Helper {
*/
async saveScreenshot(fileName, fullPage) {
const fullPageOption = fullPage || this.options.fullPageScreenshots;
const outputFile = screenshotOutputFolder(fileName);
let outputFile = screenshotOutputFolder(fileName);

this.debug(`Screenshot is saving to ${outputFile}`);

await this.page.screenshot({
path: outputFile,
fullPage: fullPageOption,
type: 'png',
});

if (this.activeSessionName) {
const activeSessionPage = this.sessionPages[this.activeSessionName];

if (activeSessionPage) {
return activeSessionPage.screenshot({
path: outputFile,
fullPage: fullPageOption,
type: 'png',
});
for (const sessionName in this.sessionPages) {
const activeSessionPage = this.sessionPages[sessionName];
outputFile = screenshotOutputFolder(`${sessionName}_${fileName}`);

this.debug(`${sessionName} - Screenshot is saving to ${outputFile}`);

if (activeSessionPage) {
await activeSessionPage.screenshot({
path: outputFile,
fullPage: fullPageOption,
type: 'png',
});
}
}
}

return this.page.screenshot({ path: outputFile, fullPage: fullPageOption, type: 'png' });
}

async _failed() {
Expand Down
10 changes: 9 additions & 1 deletion lib/plugin/screenshotOnFail.js
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,15 @@ module.exports = function (config) {

const allureReporter = Container.plugins('allure');
if (allureReporter) {
allureReporter.addAttachment('Last Seen Screenshot', fs.readFileSync(path.join(global.output_dir, fileName)), 'image/png');
allureReporter.addAttachment('Main session - Last Seen Screenshot', fs.readFileSync(path.join(global.output_dir, fileName)), 'image/png');

if (helper.activeSessionName) {
for (const sessionName in helper.sessionPages) {
const screenshotFileName = `${sessionName}_${fileName}`;
test.artifacts[`${sessionName}_screenshot`] = path.join(global.output_dir, screenshotFileName);
allureReporter.addAttachment(`${sessionName} - Last Seen Screenshot`, fs.readFileSync(path.join(global.output_dir, screenshotFileName)), 'image/png');
}
}
}

const cucumberReporter = Container.plugins('cucumberJsonReporter');
Expand Down

0 comments on commit 0c9399e

Please sign in to comment.