簡體   English   中英

如何在testng中創建自定義報告

[英]how to create custom reports in testng

我有以下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本身自動生成的,但是當我們運行另一個測試時,它會被覆蓋,這對我沒有幫助。 有什么幫助嗎?

有很多方法可以實現這一目標

  1. 如果您使用的是XML報告,則可以實現IReporter並創建一個偵聽器。 您必須重寫一個稱為generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory)並且可以有自己的邏輯來每次運行測試用例時將輸出保存到另一個文件夾中。
  2. 如果將其設置為3,則testNG中有一個名為fileFragmentationLevel的屬性,我認為您的報告不會被覆蓋。 在XML報告程序類中
  3. 您可以創建一個偵聽器,該偵聽器將擴展TestListenerAdapter並重寫onStart(ITestContext testContext)方法以每次都備份您的testoutput文件夾。 但是我不喜歡這種方法。

我更喜歡#1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM