자바 + selenium 테스트 프레임 워 크 (테스트 데이터 준비) 버 전 진화 6

자바 + selenium 테스트 프레임 워 크 (테스트 데이터 준비) 버 전 진화 6
테스트 사례 를 추가 할 때 테스트 데이터 와 테스트 프레임 워 크, 그리고 페이지 요 소 를 분리 하 기 를 원 합 니 다.이렇게 하면 유지 하기 편리 하 다.
testng 에서 제공 하 는 DataProvider 주 해 는 테스트 데 이 터 를 집중 적 으로 관리 하 는 데 편리 합 니 다.
DataProvider
public class SearchData {

    @DataProvider(name = "searchKey1")  
    public static Object[][] searchKeys() {
        return new Object[][]{      
                {"apple"},  
                {"  "}
            };
    }

    @DataProvider(name = "searchKey2")
    public Object[][] providerMethod(Method method){
        Object[][] result = null;
        if(method.getName().equals("testSearch1")){
            result = new Object[][]{new Object[]{"apple"}};
        }else if(method.getName().equals("testSearch2")){
            result = new Object[][]{new Object[]{"  "}};
        }
        return result;
    }
}

테스트 호출
@Test(dataProvider = "searchKey1", dataProviderClass = SearchData.class)
public void testSearch(String text){
    page.SearchText(text);
    sleep(1);
    System.out.println(driver.getTitle());
    Assert.assertTrue(driver.getTitle().contains(text));
    System.out.println(page.getCurrentUrl());
}

테스트 데이터 준비 이념
1. 테스트 데 이 터 를 단독 파일 에서 관리 하면 테스트 페이지 가 변 할 때 통일 적 으로 처리 할 수 있 습 니 다.2. 페이지 의 변 화 를 방지 하기 위해 테스트 데 이 터 를 전달 할 때 필드 가 아 닌 클래스 로 전달 합 니 다.
다음 과 같이 고 통 스 럽 고 지루 한 실제 사용 예
만약 에 우리 의 DemandClass 에 변화 가 생 겼 다 면 테스트 용례 를 수정 할 때 필드 를 직접 나열 하 는 것 보다 수정 위 치 를 더 잘 정 하 는 것 이 아 닙 니까?
이렇게 하 는 게 맞 는 지 모 르 겠 어 요. 여러분 이 탐색 해 봐 야 겠 어 요...더 좋 은 관리 방법 이 있다 면 공유 하 세 요...
public class DemandData {

    public String title;
    public int[] resType;
    public String bizType;
    public int demandType;
    public String feedbackDate;
    public String vender;

    public final String contract="181315IDC0016";
    //--    
    //     
    public String mserversName;

    //     
    public String areaDemand ;

    //         
    public String serversNum;

    //      
    public String stability;

    //     
    public String museTimeDesc;

    //     
    public String mothers;

    //--    
    //      
    public String netbandWidth;

    //      
    public String bandWidthDesc;

    //      
    public String netWorkStability;

    //     
    public String netWorkInterface;

    //     
    public String moduleType;

    //    
    public String nothers;

    //     
    public String nuseTimeDesc;

    //--    

    //    
    public String transmissionType;
    //    
    public String demandNum;

    //      
    public String circuitryUnit;

    //A   
    public String a_ip_address;

    //B   
    public String b_ip_address;

    //    
    public String necessaryCondition;

    //     
    public String notNecessaryCondition;

    //    
    public String tuseTimeDesc;

    //    
    public String tothers;

    public String dataInfo;



    @DataProvider(name = "machine") 
    public static Object[][] machine() {
        DemandData demand = new DemandData();

        demand.dataInfo="  -    ";
        demand.title = "  -    ";
        demand.resType = new int[1];
        demand.resType[0]=0;

        demand.bizType= "IDC";
        demand.demandType = 0;
        demand.feedbackDate = "2013-07-01";
        demand.vender="       ";

        demand.mserversName = "        ";
        demand.areaDemand ="      ";
        demand.serversNum = "100";
        demand.museTimeDesc ="    ";


        DemandData demand1 = new DemandData();

        demand1.dataInfo="  -  ";
        demand1.title = "  -  ";
        demand1.resType = new int[1];
        demand1.resType[0]=0;

        demand1.bizType= "CDN";
        demand1.demandType = 1;
        demand1.feedbackDate = "2013-07-01";
        demand1.vender="       ";

        demand1.mserversName = "        ";
        demand1.areaDemand ="      ";
        demand1.serversNum = "100";
        demand1.stability = "99.99";
        demand1.museTimeDesc ="    ";
        demand1.mothers="           ";

        DemandData demand2 = new DemandData();

        demand2.dataInfo="  -  ";
        demand2.title = "  -  ";
        demand2.resType = new int[1];
        demand2.resType[0]=0;

        demand2.bizType= "P2SP";
        demand2.demandType = 2;
        demand2.feedbackDate = "2013-07-01";
        demand2.vender="       ";

        demand2.mserversName = "        ";
        demand2.areaDemand ="      ";
        demand2.serversNum = "100";
        demand2.stability = "99.99";
        demand2.museTimeDesc ="    ";
        demand2.mothers="           ";

        return new Object[][]{      
                {demand},
                {demand1},
                {demand2},
            };
        }

    @DataProvider(name = "network") 
    public static Object[][] network() {
        DemandData demand = new DemandData();

        demand.dataInfo="network-   ";
        demand.title = "network-   ";
        demand.resType = new int[1];
        demand.resType[0]=1;

        demand.bizType= "IDC";
        demand.demandType = 0;
        demand.feedbackDate = "2013-07-01";
        demand.vender="       ";


        demand.netbandWidth ="1234";
        demand.nuseTimeDesc="           ";


        DemandData demand1 = new DemandData();

        demand1.dataInfo="network-    ";
        demand1.title = "network-    ";
        demand1.resType = new int[1];
        demand1.resType[0]=1;

        demand1.bizType= "IDC";
        demand1.demandType = 1;
        demand1.feedbackDate = "2013-07-01";
        demand1.vender="       ";


        demand1.netbandWidth ="1234";
        demand1.bandWidthDesc="         ";
        demand1.netWorkStability="99.99";
        demand1.netWorkInterface="         ";
        demand1.moduleType="        ";
        demand1.nothers="         ";
        demand1.nuseTimeDesc="           ";

        return new Object[][]{      
            {demand},
            {demand1},
        };
    }


    @DataProvider(name = "transInfo")   
    public static Object[][] transInfo() {
        DemandData demand = new DemandData();

        demand.dataInfo="transInfo-    ";
        demand.title = "      ";
        demand.resType = new int[1];
        demand.resType[0]=2;

        demand.bizType= "IDC";
        demand.demandType = 0;
        demand.feedbackDate = "2013-07-01";
        demand.vender="       ";


        demand.transmissionType = "  ";
        demand.demandNum="1234";
        //demand.circuitryUnit;
        demand.a_ip_address="     A   ";
        demand.b_ip_address="     B   ";

        demand.necessaryCondition="         ";

        demand.tuseTimeDesc="           ";


        DemandData demand1 = new DemandData();

        demand1.dataInfo="transInfo-    ";
        demand1.title = "      ";
        demand1.resType = new int[1];
        demand1.resType[0]=2;

        demand1.bizType= "CDN";
        demand1.demandType = 1;
        demand1.feedbackDate = "2013-07-01";
        demand1.vender="       ";


        demand1.transmissionType = "  ";
        demand1.demandNum="1234";
        demand1.circuitryUnit="G";
        demand1.a_ip_address="     A   ";
        demand1.b_ip_address="     B   ";

        demand1.necessaryCondition="         ";
        demand1.notNecessaryCondition="          ";
        demand1.tuseTimeDesc="           ";
        demand1.tothers="          ";

        return new Object[][]{      
            {demand},
            {demand1},
        };
    }


    @DataProvider(name = "demand")  
    public static Object[][] demand() {
        DemandData demand = new DemandData();

        demand.dataInfo="       ";
        demand.title = "      ";
        demand.resType = new int[3];
        demand.resType[0]=0;
        demand.resType[1]=1;
        demand.resType[2]=2;

        demand.bizType= "P2SP";
        demand.demandType = 2;
        demand.feedbackDate = "2013-07-01";
        demand.vender="       ";

        demand.mserversName = "        ";
        demand.areaDemand ="      ";
        demand.serversNum = "100";
        demand.stability = "99.99";
        demand.museTimeDesc ="    ";
        demand.mothers="           ";

        demand.netbandWidth ="1234";
        demand.bandWidthDesc="         ";
        demand.netWorkStability="99.99";
        demand.netWorkInterface="         ";
        demand.moduleType="        ";
        demand.nothers="         ";
        demand.nuseTimeDesc="           ";


        demand.transmissionType = "  ";
        demand.demandNum="1234";
        demand.circuitryUnit="G";
        demand.a_ip_address="     A   ";
        demand.b_ip_address="     B   ";

        demand.necessaryCondition="         ";
        demand.notNecessaryCondition="          ";
        demand.tuseTimeDesc="           ";
        demand.tothers="          ";

        return new Object[][]{      
            {demand},
        };
    }
}

좋은 웹페이지 즐겨찾기