程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了TestNG断言失败时如何截屏?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决TestNG断言失败时如何截屏??

开发过程中遇到TestNG断言失败时如何截屏?的问题如何解决?下面主要结合日常开发的经验,给出你关于TestNG断言失败时如何截屏?的解决方法建议,希望对你解决TestNG断言失败时如何截屏?有所启发或帮助;
String Actualvalue= d.findElement(By.xpath("//[@ID=\"wrapper\"]/main/div[2]/div/div[1]/div/div[1]/div[2]/div/table/tbody/tr[1]/td[1]/a")).getText();
          
          Assert.assertEquals(Actualvalue,"jumlga"); 
          captureScreen(d,"Fail");

解决方法

断言不应放在您的捕获屏幕之前。因为它会立即关闭测试过程所以你的代码

captureScreen(d,"Fail");

将无法访问

我通常这样做:

Boolean result = false;
try {
   // do stuff here
   result = true;
} catch(Exception_class_Name eX) {
   // code to handle error and capture screen shot
   
   captureScreen(d,"Fail");
}
# then using assert
Assert.assertEquals(result,truE); 
,

1.
一个好的解决方案是使用像 allure-reports 这样的报告框架。 阅读此处:allure-reports

2.
通过在每个测试中添加 try catch,我们不会让我们的测试变得丑陋,因此我们将使用 Listeners,它使用注释系统来“聆听”我们的测试并采取@R_874_11258@行动。

例:

public class listeners extends commonOps implements ITestListener {

public void onTestFailure(ITestResult iTestResult) {
    System.out.println("------------------ StarTing Test: " + iTestResult.getName() + " Failed ------------------");
    if (platform.equalsIgnoreCase("web"))
    saveScreenshot();
}
}

请注意,我只使用了相关方法来回答您的问题,建议您阅读此处: TestNG Listeners

现在,每次测试失败时,我们都希望通过 screenshot 获取一个 allure-reports 内置方法,因此将在我们的 listeners class 中添加此方法

例:

@Attachment(value = "Page Screen-Shot",type = "image/png")
public byte[] saveScreenshot(){
    return ((TakesScreenshot)driver).getScreenshotAs(OutputType.bYTES);
}

测试示例

@Listeners(listeners.class)
public class myTest extends commonOps {

    @Test(description = "Test01: Add numbers and verify")
    @Description("Test Description: Using Allure reports Annotations")
    public void test01_myFirstTest(){
        Assert.assertEquals(result,truE)  
    }
}

请注意,我们在课程开头使用了 @Listeners(listeners.class) 注释,它允许我们的听众收听我们的测试,请注意 (listeners.class) 可以是您命名为听众的任何课程。

@Descriptionallure-reports 相关,正如代码片段所示,您可以添加有关测试的其他信息。

最后,我们的 Assert.assertEquals(result,truE) 将截取屏幕截图,以防断言失败,因为我们为其启用了 listener.class。

大佬总结

以上是大佬教程为你收集整理的TestNG断言失败时如何截屏?全部内容,希望文章能够帮你解决TestNG断言失败时如何截屏?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: