gpt4 book ai didi

java - 如何在java中使用softassertion拍摄快照

转载 作者:行者123 更新时间:2023-12-02 01:27:27 25 4
gpt4 key购买 nike

我是软件自动化工程师,我正在开发产品。几天来我面临着有关软断言和硬断言的问题。

1)在我的场景中,我需要关闭选项卡,在关闭选项卡之前,如果测试用例失败,我需要拍摄失败屏幕的快照,当我使用硬断言时,系统拍摄快照但关闭选项卡并拍摄其他屏幕的快照,所以这不是一个好的技术,当我使用软断言时,系统不会拍摄快照。任何人都可以帮助我找到最好的解决方案

if (IspersistTotalTickets == false) {
CloseTab();
Assert.assertTrue(IspersistTotalTickets == false);
logger.log(LogStatus.PASS,"Test case Pass:Tickets are Not showing On the Registeration Site");

} else {
SoftAssert softAssert = new SoftAssert();
softAssert.assertTrue(IspersistTotalTickets == false);
softAssert.assertAll();
//ITestResult result1=FAILURE;
//this.testIT(result1);
CloseTab();
logger.log(LogStatus.FAIL, "Test case Failed:Total Tickets are Found On the Registeration Site");
}

@AfterMethod
public void testIT(ITestResult result) throws Exception {
if (ITestResult.FAILURE == result.getStatus()) {
String screenShotPath = utility.captureScreenshot(driver, result.getName());
// System.out.println("screenshot path:"+screenShotPath);
String image = logger.addScreenCapture(screenShotPath);
logger.log(LogStatus.FAIL, result.getName(), image);
}

report.endTest(logger);
report.flush();
// driver.quit();
}

在关闭选项卡之前我需要正确的快照

最佳答案

根据您的代码,最简单的方法是始终在硬断言之前截取屏幕截图(如果您不希望在没有失败时保留它,请在断言通过后删除屏幕截图),或者在软断言中的assertAll()之前截图。

但是,我建议改为考虑重构测试,将看似清理的内容 (closeTab()) 移至 @AfterTest,并创建一个规则 (@Rule),每当测试失败时,该规则将通过重写 TestWatcher 来截取屏幕截图.失败()。

关于java - 如何在java中使用softassertion拍摄快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57575510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com