如何在testng中创建自定义报告

问题描述 投票:0回答:1

我有以下Java代码:

public class Login {
    String Login_Status = null;
    String Login_Message = null;

    @Test
    @Parameters({"USERNAME","PASSWORD"})
    public void Execute(String UserName, String Password) throws IOException {
        try {
            Config.driver.findElement(By.linkText("Log in")).click();
            Config.driver.findElement(By.id("user_login")).sendKeys(UserName);
            Config.driver.findElement(By.id("user_pass")).sendKeys(Password);
            Config.driver.findElement(By.id("wp-submit")).click();
            // perform validation here
            boolean expvalue = Config.driver.findElement(By.xpath("//a[@rel='home']")).isDisplayed();
            if (expvalue) {
                Login_Status = "PASS";
                Login_Message="Login Successfull for user:" + UserName + ",password:" + Password + ",\n EXPECTED: rtMedia Demo Site LINK SHOULD BE PRESENT ON THE HOME PAGE OF rtMedia ACTUAL: rtMedia LINK is PRESENT ON THE HOME PAGE OF rtMedia. DETAILS:NA";
            }
        } catch(Exception generalException) {
            Login_Status = "FAIL";
            Login_Message = "Login UnSuccessfull for user:" + UserName + ",password:" + Password + ",\n EXPECTED: rtMedia Demo Site LINK SHOULD BE PRESENT ON THE HOME PAGE OF rtMedia ACTUAL: rtMedia LINK is  NOT PRESENT ON THE HOME PAGE OF rtMedia. DETAILS:Exception Occurred:"+generalException.getLocalizedMessage();
            // File scrFile = ((TakesScreenshot) Config.driver).getScreenshotAs(OutputType.FILE);  
           // FileUtils.copyFile(scrFile, new File("C:\\Users\\Public\\Pictures\\failure.png")); 

        } finally {
            Assert.assertTrue(Login_Status.equalsIgnoreCase("PASS"), Login_Message);
        }   
    }
}

我为登录功能编写了上面的Java代码,现在我想为结果创建报告(通过或失败),它应该存储在文件夹中?我不知道生成报告,我发现报告是由TestNG自动生成的,但是当我们运行另一个测试时它会被覆盖,这对我没有帮助。有帮助吗?

java testng
1个回答
0
投票

有很多方法可以实现这一目标

  1. 如果您正在使用XML报告,那么您可以实现IReporter并创建一个监听器。您必须覆盖名为generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory)的方法,并且您可以拥有自己的逻辑,以便在每次运行测试用例时将输出保存在不同的文件夹中。
  2. testNG中有一个名为fileFragmentationLevel的属性,如果将其设置为3,我认为您的报告不会被覆盖。它在XML记者课上
  3. 您可以创建一个侦听器,它将扩展TestListenerAdapter并覆盖onStart(ITestContext testContext)方法,以便每次备份testoutput文件夹。但我不喜欢这种方法。

我更喜欢#1。

© www.soinside.com 2019 - 2024. All rights reserved.