我对WebDriver和TestNG框架很陌生。我开始研究一个对电子商务网站进行回归测试的项目。我已经完成了登录和注册等工作。但有一点我不太明白。
例如,我有这个简单的代码来搜索产品。
driver.get(url + "/k/k.aspx");
driver.findElement(By.id("q")).clear();
driver.findElement(By.id("q")).sendKeys("xxxx"); //TODO: Make this dynamic
driver.findElement(By.cssSelector("input.submit")).click();
现在我想检查页面上是否显示了xxxx。这可以通过
完成webdriver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*xxxxxx[\\s\\S]*$")
我将其存储在布尔值中并检查其是真还是假。
现在问题,基于这个布尔值,我想说测试结果是成功还是失败。我怎样才能做到这一点?是什么导致testNG测试失败?
答案 0 :(得分:5)
TestNG或任何其他测试工具根据断言决定测试的成功或失败。
Assert.assertEquals(actualVal, expectedVal);
因此,如果 actualVal 和 expectedVal 相同,则测试将通过,否则将失败。
类似地,如果您使用任何IDE,例如Eclipse,您将找到其他断言选项。
答案 1 :(得分:3)
如果要根据该文本值的验证停止测试执行,则可以使用Asserts。但是,如果要将测试结果记录为失败并继续,则应尝试使用软断言,将验证记录为已通过或失败并继续测试。最新的Testng可以处理这个问题 - Cedric's blog
的信息答案 2 :(得分:0)
将此代码写入if条件失败的位置
throw new RuntimeException("XXXX not found: ");
答案 3 :(得分:0)
你可以使用throw异常,并且每个方法都会调用这个方法也应该在方法名之后抛出Excetion,或者你可以使用try catch。样品:
protected Boolean AssertIsCorrectURL(String exedctedURL) throws Exception {
String errMsg = String.format("Actual URL page: '%s'. Expected URL page: '%s'",
this.driver.getCurrentUrl(), exedctedURL);
throw new Exception(errMsg);
}
答案 4 :(得分:0)
您可以这样做。
布尔结果= webdriver.findElement(By.cssSelector(“ BODY”))。getText()。matches(“ ^ [\ s \ S] xxxxxx [\ s \ S] $” ) Assert.assertTrue(result);