我有以下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自动生成的,但是当我们运行另一个测试时它会被覆盖,这对我没有帮助。有帮助吗?
有很多方法可以实现这一目标
generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory)
的方法,并且您可以拥有自己的逻辑,以便在每次运行测试用例时将输出保存在不同的文件夹中。fileFragmentationLevel
的属性,如果将其设置为3,我认为您的报告不会被覆盖。它在XML记者课上TestListenerAdapter
并覆盖onStart(ITestContext testContext)
方法,以便每次备份testoutput文件夹。但我不喜欢这种方法。我更喜欢#1。