WebDriver + TestNG - 如何处理测试结果



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

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

Assert.assertEquals(actualVal, expectedVal);

因此,如果实际 Val 和预期 Val 相同,则测试将通过否则它将失败。

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

如果要根据对该文本值的验证停止测试执行,则可以使用 Asserts。 但是,如果要将测试结果记录为失败并继续,则应尝试使用软断言,这会将验证记录为通过或失败,然后继续测试。 最新的Testng配备了处理这个问题 - Cedric的博客<</p>

div class="one_answers"中的信息>

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

throw new RuntimeException("XXXX not found: ");

您可以使用抛出异常,并且每个将烧掉此甲基的方法也应该在方法名称后抛出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);
}

你可以这样做。

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

最新更新