2014-09-30 2 views
0

루프를 수행하는 테스트입니다. 로그인 세부 사항은 데이터베이스에서 검색됩니다. WD가 로깅 후 해당 항목을 찾지 못하기 때문에 비밀번호를 잘못 입력했는지 테스트하는 것은 중단됩니다. 예를 들어 10 개의 암호 중 네 번째 암호가 틀린 경우에만 예외로 판명되고 다음에 계속 시험이 수행 될 때 어떻게 테스트가 중단되지 않습니까?오류에도 불구하고 루프에서 테스트를 계속하는 방법

예를 들어 보겠습니다. 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? 진실성? softAssert? 방법?

답변

0

알겠습니까? 테스트 케이스에 로직을 추가하십시오. 3 가지 스타일의 3 가지 경우.

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); 
    } 
} 
+0

응답 해 주셔서 감사합니다. 내가 의미하는 바를 설명하려고 노력할 것이다. 데이터베이스 로그인과 암호 중에서 선택하십시오. 예를 들어, 그 중 10 개는 기록 할 수없는 것들입니다. 나는 잘못된 것을 잡아두고 싶다.하지만 데이터베이스 로그인과 패스워드에서 다운로드 한 모든 것에 대해서도 테스트를 실행하고 싶다. 즉, 로그인과 암호를 선택하고 로그인 한 후 암호가 정확하지 않으면 (로그인 할 수 없음) 해당 파일을 Excel이나 로그와 같은 파일에 저장하지만 테스트를 중단하지 않고 다음 로그인과 암호에 대해서만 계속하십시오. 전체 목록. – grandecalvo

+0

필자는 매개 변수에서 사용하기 쉽고 간단한 테스트 보고서를 생성하기 때문에 TestNG를 선호합니다. – grandecalvo

+0

다른 검사가 필요할 수 있으며 설명한대로 다른 기능을 실행할 수 있습니다. –

관련 문제