大佬教程收集整理的这篇文章主要介绍了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)
可以是您命名为听众的任何课程。
@Description
与 allure-reports
相关,正如代码片段所示,您可以添加有关测试的其他信息。
最后,我们的 Assert.assertEquals(result,truE)
将截取屏幕截图,以防断言失败,因为我们为其启用了 listener.class。
以上是大佬教程为你收集整理的TestNG断言失败时如何截屏?全部内容,希望文章能够帮你解决TestNG断言失败时如何截屏?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。