是执行循环的测试。从数据库中检索登录详细信息。测试密码是否不正确是因为WD在记录后没有找到该项目他应该点击。例如,如果十个密码中的第四个被证明是错误的,那么测试是如何不被中断的,只是标记为异常,并且接下来继续进行测试?
我关心这个例子。 100个登录和密码以捕获那些不正确的。
一段代码:
driver.get(baseUrl + "a url");
AssertJUnit.assertEquals("assert text", driver.getTitle());
driver.findElement(By.id("login")).clear();
driver.findElement(By.id("login")).sendKeys(login);
driver.findElement(By.id("password")).clear();
driver.findElement(By.id("password")).sendKeys(password);
driver.findElement(By.cssSelector("span.triangle")).click();
如果登录失败,您可以单击最后一行代码上的按钮。 用什么?的assertEquals? verifity? softAssert?怎么样?
答案 0 :(得分:1)
我明白了吗?在测试用例中添加您的逻辑。三种风格的三种情况。
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
public class StackOverFlow26116823 {
private static String password = "s";
private static String getPassword(){
return password + "a";
}
@Test
public void testFail() {
for(int i = 0 ; i < 100; i ++){
assertEquals("a" , getPassword());
}
}
@Test
public void testLoopToSave() {
List<AssertionError> errorS = new ArrayList<AssertionError>();
for(int i = 0 ; i < 100; i ++){
try{
assertEquals("a" , getPassword());
}catch(AssertionError e){
errorS.add(e);
}
}
assertTrue( getAllErrorMessageTrace(errorS) , errorS.size() == 0 );
}
private String getAllErrorMessageTrace(List<AssertionError> errorS) {
// TODO Auto-generated method stub
return "";
}
@Test
public void testLoopJustCountAndLogging() {
boolean errorFlag = false;
for(int i = 0 ; i < 100; i ++){
try{
assertEquals("a" , getPassword());
}catch(AssertionError e){
System.out.println( i + ": " + e.getMessage() );
errorFlag = true;
}
}
assertTrue( "Some errors that you can find in log. ", errorFlag);
}
}