当前位置: 首页 > 知识库问答 >
问题:

我想使用扩展数据块报告-cucumber4-适配器添加日志和屏幕截图

宣望
2023-03-14

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

  • cucumber核 4.2.0
  • cucumber爪哇 4.2.0
  • cucumber-朱尼特 4.2.0
  • 扩展报告-cucumber4-适配器 1.0.7

我能够生成一个 HTML 报告。但是,我想知道如何使用扩展报告-cucumber4-适配器添加屏幕截图和日志

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个答案

邢良才
2023-03-14

我能够使用范围报告-cucumber4-适配器 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”);

谢哲瀚
2023-03-14

如果要将日志消息或屏幕截图添加到测试步骤,请遵循此方法。创建一个静态报告类并添加自定义日志方法,如下所示,

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

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

public static sync void addMessageToTestStep(String Message) {

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

Public static synchronized void addScreenShotToTestStep(String Message)
{

stepTestThreadLocal.get().embed(screenshot, "image/png");
    }
 类似资料:
  • 我正在尝试使用extent report构建selenium,但无法使用save screenshot函数,因为我无法引用ITestListener类中的WebDriver对象。下面是我的示例代码: 测试转轮。java: TestListener.java公共类TestListener实现ITestListener{ 问题: > 如何将WebDriver对象从TestRunner.java传递给T

  • 我使用的是扩展报告4。实际上,当测试失败时,我试图在扩展报告中添加屏幕截图。我使用下面的代码来实现这一点。截图会附在我的报告的结尾(请参考截图),但我希望截图在适当的步骤中附上,即当测试用例失败时。请帮助我解决方案或变通方法

  • Cucumber Extent Reports在没有屏幕截图的情况下工作,但是当我想要在Extent report中使用屏幕截图时,我会得到以下例外。 为了制作cucumber范围报告,我只做了配置更改。。。没有代码更改。为了添加截图,我在下面添加了钩子来添加截图API。 波姆。xml: 跑步者代码: 在钩子中添加截图代码: 添加了最后一行- 我使用extent.properties文件和exte

  • 扩展说明 日志输出适配扩展点。 扩展接口 org.apache.dubbo.common.logger.LoggerAdapter 扩展配置 <dubbo:application logger="xxx" /> 或者: -Ddubbo:application.logger=xxx 已知扩展 org.apache.dubbo.common.logger.slf4j.Slf4jLoggerAdap

  • 我在我的项目中使用cucumber版本4。我在我的项目中使用以下依赖项。 使用上述依赖关系,我能够生成“cucumberjvm报告”。 我还用java编写了代码,用于将屏幕截图附加到报告中,我只在场景失败时拍摄屏幕截图。 我不确定是否遗漏了什么,但屏幕截图没有附加到报告中。cucumber生成的默认html报告正在显示屏幕截图。 谁能帮我一下吗。谢谢

  • 我无法看到截图被捕获在cucumber的程度报告。 我已经调试并观察到代码已经执行,但屏幕截图并没有保存在extent report或html report文件中。 截图代码 if(scenario.isFailed()){byte[]screenshot=seleniumitls.captureShot();scenario.public void screenshot(scenario sce

  • 我在使用测试时遇到空指针异常。将()方法记录到页面对象中。 我的扩展报告测试在TestBase类的“@Beforemethod”中定义。因此,我需要访问test.log();进入Page Object例如。LoginPage.java.它在测试用例级别运行良好,即。LoginPageTest.java 下面是登录页面。java(这是一个页面对象类) 正如您在LoginPage类中看到的,我使用了T

  • 我使用的框架是使用cucumber、selenium、testng和maven构建的。 Maven仅适用于依赖项。 Testng使用AbstractTestNG CucumberTests执行cucumber功能文件。 我还使用extentreports testng适配器实现了扩展报告。看看我提到的这个链接——http://extentreports.com/docs/versions/4/ja