Selenium如何在任何测试失败时不阻止测试的执行



我运行硒测试,ti给我

5个步骤(1个失败,2个跳过,2个通过(

如何在任何测试失败时不阻止测试的执行。

这是下面的代码

@When("^user enters username and email and password$")
public void user_enters_username_and_email_and_password() throws InterruptedException {
for (User1 user:loadUserStepDfn.data){
createUser.enterUsername(user.getUsername());
createUser.enterEmail(user.getEmail());
createUser.enterPassword(user.getPassword());

if(!user.getUsermsg().isEmpty()) {
Assert.assertEquals(createUser.getUsername_rqM(), user.getUsermsg());
}
if(!user.getEmailmsg().isEmpty()) {
Assert.assertEquals(createUser.getEmail_rqM(), user.getEmailmsg());
}
if(!user.getPassmsg().isEmpty()) {
Assert.assertEquals(createUser.getPassword_rqM(), user.getPassmsg());
}

createUser.clickOnCreate();
createUser.clearAll();
driver.navigate().refresh();
}
}

也许软断言org.testng.asserts.SoftAssert会对您有所帮助。软断言是指当测试失败时不会终止测试,但其结果包含在测试执行报告中的断言。

您应该使用SoftAssert,或者您可以尝试使用这样的try-catch块:

if (!user.getUsermsg().isEmpty()) {
try {
Assert.assertEquals(createUser.getUsername_rqM(), user.getUsermsg());
} catch (AssertionError e) {
System.out.println(e.getMessage());
}
}
if (!user.getEmailmsg().isEmpty()) {
try {
Assert.assertEquals(createUser.getEmail_rqM(), user.getEmailmsg());
} catch (AssertionError e) {
System.out.println(e.getMessage());
}
}
if (!user.getPassmsg().isEmpty()) {
try {
Assert.assertEquals(createUser.getEmail_rqM(), user.getEmailmsg());
} catch (AssertionError e) {
System.out.println(e.getMessage());
}
}

最新更新