【问题标题】:ScreenShot Not showing in testNg Report plugin屏幕截图未显示在 testNg 报告插件中
【发布时间】:2022-01-02 15:02:45
【问题描述】:

我有一个问题,我拍摄的屏幕截图没有显示在 TestNg 报告插件中,我很确定问题是我给他们的路径,但我不知道我还能给出什么其他路径有解决方案吗?

我的截图代码:

public void ScreenShot() {
    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH_mm_ss");
    LocalDateTime now = LocalDateTime.now();
    String destDir = System.getProperty("user.dir") + "/" + "test-output/ScreenShots";
    String FileName = "SoftAssertScreenshot_" + dtf.format(now) + ".png";
    String DestFile = destDir + "/" + FileName;
    Screenshot screenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(1000)).takeScreenshot(driver);
    BufferedImage image = screenshot.getImage(); 
    try {
        ImageIO.write(image, "PNG", new File(DestFile));
        System.out.println("test");
    } catch (IOException e) {
        e.printStackTrace();
    }
    Reporter.log("</br><font color='#73a9d0'>***************Screen Of the error****************</font>");
    Reporter.log("</br><img id='ErrorResult' src='" + DestFile + "' style='width:600px'/>");
}

testng 报告中显示的内容: [![测试结果图片][1]][1]

测试中的HTML:

<img id="ErrorResult" src="C:\Users\user\eclipse-workspace\07zr-aut\Demo_Automatisation/test-output/ScreenShots/SoftAssertScreenshot_2021-11-24 08_50_12.png" style="width:600px">

感谢您的帮助! [1]:https://i.stack.imgur.com/5zp1Y.png

【问题讨论】:

    标签: java selenium jenkins testng


    【解决方案1】:

    我尝试了相同的代码,但看到了附加图像。

    代码

    String DestFile = System.getProperty("user.dir") + "/Data/SO.png";
    Reporter.log("</br><font color='#73a9d0'>***************Screen Of the error****************</font>");
    Reporter.log("</br><img id='ErrorResult' src='" + DestFile + "' style='width:600px'/>");
    

    输出

    HTML

    <img id="ErrorResult" src="C:\Users\Nandan\EclipseWorkspace\Selenium3_SO/Data/SO.png" style="width:600px">
    

    您的Reporter.log 代码没有任何问题。请尝试以下方法,

    • 检查图像是否真的存在于位置C:\Users\user\eclipse-workspace\07zr-aut\Demo_Automatisation/test-output/ScreenShots/SoftAssertScreenshot_2021-11-24 08_50_12.png

    • ImageIO.write(image, "PNG", new File(DestFile)); 行之后放置一个调试点,以确认图像已成功写入给定位置。

    • screenshot.getImage();getImage() 方法的目的是什么?它是否返回RenderedImage?如果是,您在哪里传递文件位置?我在下面做,它正在工作。您是否遵循相同的方法?

    String DestFile = System.getProperty("user.dir") + "/Data/"+imageName+".png";
    Image image = ImageIO.read(new File(DestFile));
    BufferedImage buffered = (BufferedImage) image;
    ImageIO.write(buffered, "PNG", new File(DestFile));
    
    

    This 应该可以帮助你。您需要在 Jenkins 工作区中找到 screenshots 文件夹的确切位置并更新 String destDir

    【讨论】:

    • 如果我在 Eclipse 中检查照片正在显示,那么相同的代码会给我一个正确的页面,并且一切都很好位置是在 DestFile 中发送的,问题是 jenkins 采用的路径不起作用 btw 我正在使用 jenkins localy
    • 你在Jenkins中配置TestNG报告插件了吗?
    • 我没有自己配置测试我配置了我放入的批次 Publish TestNG 结果 TestNG XML 报告模式“**/testng-results.xml”
    • 我是不是很愚蠢,如果我的文件存在于 /test-output/screenShots 中并且 Testng-results 也存在于 test-output 中,这就是为什么它永远无法工作的原因?
    • 给它 jenkins 的绝对路径的问题如果我从 eclipse 执行它会出现错误图像
    猜你喜欢
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多