prashant-ramcharan / courgette-jvm

Multiprocess | Parallel Cucumber-JVM | Parallelize your Java Cucumber tests on a feature level or on a scenario level.
MIT License
132 stars 38 forks source link

How to add custom log along with screenshot in extent report #151

Closed LearningPur closed 4 years ago

LearningPur commented 4 years ago

This is not an issue but Question if you can please answer.

Hi @prashant-ramcharan , In recent version of 'Courgette" has extent report integrated and after trying in my framework it create an extent report as expected but when it comes to add custom log like an example extent.pass("customer msg here"), extent.fail("custom msg here") along with attaching screenshot is not happening.

Since i am importing extent report thru "Courgette" not sure which api to call to add custom log and screenshot in extent report. Can you please suggest how to do it.

Extent report screenshot without "Screenshot attached in there"

Screen Shot 2020-01-21 at 8 37 31 PM

courgette-report.html report with screenshot attached

Screen Shot 2020-01-21 at 8 38 25 PM

Thanks

prashant-ramcharan commented 4 years ago

Hello,

You can add custom log messages by using Cucumber scenario.write(...). Courgette uses this to log to the extent report. You cannot access the extent report methods from Courgette so you cannot call any of it's APIs.

Using the above, you can also write custom html and embed base64 images.

Example

// write custom html
scenario.write("<h1 style=\"color:red;\">This is custom html</h1>");

// embed base64 image
scenario.write("<img src=\"data:image/png;base64,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aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgr1MYS0AAAAHGlET1QAAAACAAAAAAAAAEkAAAAoAAAASQAAAEkAAD4P8VXftAAAPdtJREFUeAHsnQW8FUX7x4eUbjBoEQEJReLS3aII2KAYiCKi+Pr6GhiIYmGACHZg/VWUlu6SFhQkBEXpTqXhP7+5zN45c0+fPXX5PXy4W7Ozs9+NM/ubZ57JVL5StbOCRgIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIJTiATBe0Ev0IsHgmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQgCJAQZs3AgmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQQFIQoKCdFJeJhSQBEiABEiABEiABEiABEiABEiABEiABEiABEiABEqCgzXuABEiABEiABEiABEiABEiABEiABEiABEiABEiABEggKQhQ0E6Ky8RCkgAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJUNDmPUACJEACJEACJEACJEACJEACJEACJEACJEACJEACJJAUBChoJ8VlYiFJgARIgARIgARIgARIgARIgARIgARIgARIgARIgAQoaPMeIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESSAoCFLST4jKxkCRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAhS0eQ+QAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAkkBQEK2klxmVhIEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABCtq8B0iABEiABEiABEiABEiABEiABEiABEiABEiABEiABJKCAAXtpLhMLCQJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAFbd4DJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACSUGAgnZSXCYWkgRIgARIgARIgARIgARIgARIgARIgARIgARIgARIgII27wESIAESIAESIAESIAESIAESIAESIAESIAESIAESIIGkIEBBOykuEwtJAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAQZv3AAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQQFIQoKCdFJeJhSQBEiABEiABEiABEiABEiABEiABEiABEiABEiABEqCgzXuABEiABEiABEiABEiABEiABEiABEiABEiABEiABEggKQhQ0E6Ky8RCkgAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJUNDmPUACJEACJEACJEACJEACJEACJEACJEACJEACJEACJJAUBChoJ8VlYiFJgARIgARIgARIgARIgARIgARIgARIgARIgARIgAQoaPMeIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESSAoCFLST4jKxkCRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAhS0eQ+QAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAkkBQEK2klxmVhIEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABCtq8B0iABEiABEiABEiABEiABEiABEiABEiABEiABEiABJKCAAXtpLhMLCQJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAFbd4DJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACSUGAgnZSXCYWkgRIgARIgARIgARIgARIgARIgARIgARIgARIgARIIGkF7Xx584ratWqKSpUqiEoVK4i8efOJEsUvEcXlf9O2bt0mtsj/hw8fEmvWrhNr1qwTi5csFYcOHzaTcZ4ESIAESIAESIAESIAESIAESIAESIAESIAESIAESCDBCSSVoA3huuP114mU2rWUiB0JW4jbixYvEaNGj1VCdyR5cV8SIAESIAESIAESIAESIAESIAESIAESIAESIAESIIHoE0h4QRue2BCx77yjazrva7fwwIv7s8+/VOI2Pbfdosp8SIAESIAESIAESIAESIAESIAESIAESIAESIAESMBdAgkraEPI7nZHF/m/q8B8LAxi9nApbA///CuGJIkFcB6DBEiABEiABEiABEiABEiABEiABEiABEiABEiABEIgkJCCNjyy+z75v5gJ2TYvCNsDXn5NeWzb25JxOW+ePCJnzpwiW7ZsQmRKxjNgmUmABEiABEiABEgghgTOCnHy5Elx9OhRcfjIkRgemIciARIgARIgARIgARIgARIIRCChBG0M6PjKgBdkjOyagcodk+2LFi8VT/R9RiAkSTJa1qxZRaGCBUW27FLIppEACZAACZAACZAACYRM4OSJk2Lf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\"\">");
courgette_151
LearningPur commented 4 years ago

As always replying in less then 12 hours really appreciated @prashant-ramcharan

If you don't mind can you please share how do you convert image into base64 String and copy/paste that string to scenario.write to attach screenshot in extent report.

The line of code i have in my framework for this solution is somehow "TAKING FOREVER INFINITE LOOP"

TakesScreenshot screenshot = (TakesScreenshot) WebDriverRunner.getWebDriver(); String base64Image = screenshot.getScreenshotAs(OutputType.BASE64); scenario.write("<img src=\"data:image/png;base64,"+base64Image+"\">");

I also tried to keep base64 String in scenario.write but it throws an error says "Constant String is too long", PFB screenshot

Screen Shot 2020-01-22 at 12 10 38 PM

When i copy/paste the line of code you have in your comment above to attach screenshot in extent report it does attach.

Do you know how can we shorten the base64 string length that might solve the issue.

prashant-ramcharan commented 4 years ago

The line of code i have in my framework for this solution is somehow "TAKING FOREVER INFINITE LOOP"

Unfortunately, I cannot help with this.

Do you know how can we shorten the base64 string length that might solve the issue.

This works fine for me.

        TakesScreenshot screenshot = (TakesScreenshot) driver;
        String base64Image = screenshot.getScreenshotAs(OutputType.BASE64);
        scenario.write("<img src=data:image/png;base64," + base64Image + ">");
LearningPur commented 4 years ago

Nevermind, I found the solution. Thanks for your help though @prashant-ramcharan