我想使用extentreports-cucumber4-adapter添加日志和屏幕截图

时间:2019-05-17 18:34:54

标签: selenium cucumber extentreports

我正在从事硒黄瓜项目。我正在使用以下版本:

  • 黄瓜芯4.2.0
  • 黄瓜Java 4.2.0
  • 黄瓜Junit 4.2.0
  • extentreports-cucumber4-adapter 1.0.7

我能够生成HTML报告。但是,我想知道如何使用scopereports-cucumber4-adapter

添加屏幕截图和日志
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;

import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)
@CucumberOptions(features = <PATH>,
glue = {"testcases.periscope"},plugin = {"com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:", "json:target/cucumber-report.json","html:target/Report.html"})
//@Category(Example.class)
public class RunCukesTest {
}

2 个答案:

答案 0 :(得分:0)

我能够使用 extentreports-cucumber4-adapter v1.0.7 添加屏幕截图,但是在 v1.0.6

中却无法实现
<dependency>
    <groupId>com.aventstack</groupId>
    <artifactId>extentreports-cucumber4-adapter</artifactId>
    <version>1.0.7</version>
</dependency>

现在让我们说我们想在测试用例失败时添加屏幕截图,以便我们可以在挂钩中遵循以下代码-

@After
public void afterScenario(Scenario scenario){
        if(scenario.isFailed()){
            byte[] screenshot = ((TakesScreenshot)DriverManager.getDriver()).getScreenshotAs(OutputType.BYTES);
            scenario.embed(screenshot, "image/png");
        }
      }

如果要在报告中打印内容,可以使用 scenario.write(“ message”);

答案 1 :(得分:0)

如果您想在测试步骤中添加日志消息或屏幕截图,请遵循这种方法。 创建一个静态报告类,并添加您的自定义日志方法,

@AfterStep
public static void addStepLog(String Message)
{
ExtentCucumberAdapter.addMessageToTestStep(Message);
}

您必须自定义ExtentCucumberAdapter类,并添加一些静态日志方法以利用线程级步骤信息。

公共静态同步void addMessageToTestStep(String Message) {

stepTestThreadLocal.get()。info(Message); }

Public static synchronized void addScreenShotToTestStep(String Message)
{

stepTestThreadLocal.get().embed(screenshot, "image/png");
    }