我正在使用 selenium webdriver 2.47.1 和 TestNG 进行自动化过程。在我的代码中,我有 12 个不同的测试,在每个测试结束时,我使用 if else 循环检查测试是否通过。下面给出了示例代码..
@Test(priority = 0)
public void Login() {
String UserName = ex.getExcelValue(scenarioName, 2, 4);
cd.findElement(By.xpath("//body/center/form/table/tbody/tr/td/div/div[2]/table/tbody/tr[1]/td[2]/input")).sendKeys(UserName);
String PassWord = ex.getExcelValue(scenarioName, 3, 4);
cd.findElement(By.xpath("//body/center/form/table/tbody/tr/td/div/div[2]/table/tbody/tr[2]/td[2]/input")).sendKeys(PassWord);
cd.findElement(By.xpath("//body/center/form/table/tbody/tr/td/div/div[2]/table/tbody/tr[3]/td[2]/input")).click();
cd.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
String ExpTitle = "Demo Practice";
String ActTitle = cd.getTitle();
if(ExpTitle.equals(ActTitle)) {
ex.setExcelValue(scenarioName, 2, 8, "PASSED");
System.out.println("PASSED : User Logged in Successfully");
} else {
ex.setExcelValue(scenarioName, 2, 8, "FAILED");
System.out.println("FAILED : User Not Logged in");
}
}
我正在使用 Jenkins 进行持续集成。现在,当我运行上面的脚本时,Jenkins 构建已成功完成,即使测试失败了。如何改变这个?
最佳答案
我认为你正在寻找的东西可以这样处理。使用 testng
断言进行测试。这样,您的持续集成环境就可以显示您的测试失败。
@Test
public void Login() {
String UserName = ex.getExcelValue(scenarioName, 2, 4);
cd.findElement(By.xpath("//body/center/form/table/tbody/tr/td/div/div[2]/table/tbody/tr[1]/td[2]/input")).sendKeys(UserName);
String PassWord = ex.getExcelValue(scenarioName, 3, 4);
cd.findElement(By.xpath("//body/center/form/table/tbody/tr/td/div/div[2]/table/tbody/tr[2]/td[2]/input")).sendKeys(PassWord);
cd.findElement(By.xpath("//body/center/form/table/tbody/tr/td/div/div[2]/table/tbody/tr[3]/td[2]/input")).click();
cd.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
String ExpTitle = "Demo Practice";
String ActTitle = cd.getTitle();
ex.setExcelValue(scenarioName, 2, 8, "FAILED");
assertEquals(ActTitle, ExpTitle, "Expected: "+ExpTitle+" but found: "+ActTitle);
ex.setExcelValue(scenarioName, 2, 8, "PASSED");
}
我想我会避免一些事情:
- 在测试中使用
优先级
。使它们相互依赖,您将无法使方法并行运行 - 避免
System.out.println()
。断言和记录器是你的 friend 。
关于java - 如何根据测试结果更改 Jenkins 输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32667432/