如何在TestNG(Selenium with Java)中运行测试套件后收集所有System.out.print(“”)结果

时间:2015-08-06 18:30:28

标签: java selenium testng

我正在运行一个包含用Java编写的TestNG测试用例的测试套件。我正在使用xml文件在eclipse IDE中运行该套件。每个测试用例都有几个System.out.print(“”)命令来在屏幕上打印一些东西。有没有办法从控制台收集所有这些结果并在测试套件完成后创建文件?

例如:来自2个独立TC的部分:

    //Go to Pricing -->  Scenarios --> Quick Price Scenario 
    driver.get(variables.portalURL + "Portal/Pricing/QuickPrice"); 

    String QP = driver.findElement(By.cssSelector("div.widget-header > h3")).getText();
     if ((QP.equals("Quick Price Scenario"))==true)
     {System.out.println("\nQuick Price Scenario page loaded");
    }
     else  System.out.println("\nQuick Price Scenario page did not load"); 

     //Custom, QP, and Pipeline Go to Pricing -->  Scenarios --> Custom Scenario 
      driver.get(variables.portalURL + "Portal/Pricing/CustomScenario");   
      String CS = driver.findElement(By.cssSelector("div.widget-header > h3")).getText();
      if ((CS.equals("Custom Scenario"))==true)
      {System.out.println("\nCustom Scenario page loaded");    
 }
     else  System.out.println("\nCustom Scenario page did not load"); 

输出将加载Quick Price Scenario页面。并加载了自定义方案页面(假设两者都是真的)。还会有更多。有没有办法在执行完成后在一个文件中收集所有这些?

1 个答案:

答案 0 :(得分:1)

不,没有办法收集传递给System.out.println(...)的参数 - 该方法会将您的参数转发给stdout,而不会将它们保存在任何地方。

您是否考虑过使用TestNG Reporter? 这将包括TestNG创建的HML报告中的所有输出。

另一种可能性是使用log4j之类的日志记录框架 - 然后您必须将System.out.println("...")的每个调用替换为log.info(...),或者您想要的任何其他日志级别。