尽管有错误,如何在循环中继续测试

时间:2014-09-30 09:05:46

标签: java junit selenium-webdriver testng

是执行循环的测试。从数据库中检索登录详细信息。测试密码是否不正确是因为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?怎么样?

1 个答案:

答案 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);   
    }
}