4

我对 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 测试失败?

4

5 回答 5

5

TestNG 或任何其他测试工具根据断言决定测试的成功或失败。

Assert.assertEquals(actualVal, expectedVal);

因此,如果actualValexpectedVal相同,则测试将通过,否则将失败。

同样,如果您使用任何 IDE(如 Eclipse),您会发现其他断言选项。

于 2012-12-07T14:45:26.837 回答
3

如果您想根据对该文本值的验证来停止测试执行,那么您可以使用 Asserts。但是,如果您想将测试结果记录为失败并继续,您应该尝试使用软断言,它将验证记录为通过或失败并继续测试。最新的 Testng 可以处理这个问题 - Cedric 博客上的信息

于 2012-12-07T14:55:42.710 回答
0

在 if 条件失败的地方编写此代码

throw new RuntimeException("XXXX not found: ");
于 2012-12-07T14:38:30.513 回答
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);
}
于 2014-03-25T10:17:13.557 回答
0

你可以这样做。

布尔结果 = webdriver.findElement(By.cssSelector("BODY")).getText().matches("^[\s\S] xxxxxx[\s\S] $") Assert.assertTrue(result);

于 2020-03-13T03:36:27.423 回答