首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在java中使用softassertion拍摄快照

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

Stack Overflow用户
提问于 2019-08-20 22:07:21
回答 1查看 140关注 0票数 0

我是一个软件自动化工程师,我正在开发这个产品。有几天,我遇到了一个关于软断言和硬断言的问题。

1)在我的场景中,我需要关闭标签,在关闭标签之前,如果tase失败,我需要拍摄失败屏幕的快照,当我使用硬断言时,系统拍摄快照,但关闭标签并拍摄其他屏幕的快照,因此这不是一个好的技术,当我使用软断言时,系统不拍摄快照。any可以帮助我找到最好的解决方案

代码语言:javascript
运行
复制
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();
    }

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

EN

回答 1

Stack Overflow用户

发布于 2019-08-21 05:04:05

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

然而,我建议重新组织测试,将看起来像cleanup (closeTab())的东西移到@AfterTest,并创建一个规则(@ rule ),它将通过覆盖TestWatcher.failed()来在测试失败时截取屏幕截图。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57575510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档