반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 받은 트랙백

글 보관함


지난 번 Selenium 관련 글에서 두개의 웹 어플리케이션에서 진행되는 flow를 하나의 테스트 케이스로 만드는 방법을 살펴 봤습니다.


아래와 같이 Selenium WebDriver의 Suite xml 파일에 <test> 라는 태그를 사용해서 진행할 수 있는 방법을 정리해 뒀었습니다.



<suite name="suite 이름">

     <listeners>
        <listener class-name=".........." />
    </listeners>
    <!-- GLOBAL PARAMETERS -->
    <parameter name="waitTime" value="40" />
    <parameter name="thinkTime" value="2" />

    <parameter name="app_url" value="웹 어플리케이션 URL" />
    <parameter name="username" value="아이디" />
    <parameter name="password" value="비밀번호" />
   
   
    <test verbose="10" name="이름 1" annotations="JDK" preserve-order="true">
        <classes>
            <class name="실행할 클래스 1" />
            <class name="실행할 클래스 2" />
            <class name="실행할 클래스 3" />
        </classes>
    </test>
   
    <test verbose="10" name="이름 2" annotations="JDK" preserve-order="true">
        <parameter name="browser" value="ie" />
        <parameter name="app_url1" value="웹 앱 URL 2" />
        <parameter name="username" value="아이디"" />
        <parameter name="password" value="비밀번호" />
       
        <classes>
            <class name="실행할 클래스 1" />
            <class name="실행할 클래스 2" />           
            <class name="실행할 클래스 3" />
        </classes>
    </test>
</suite>

첫번째 <test> 에서 사용하는 것은 일반 유저가 사용하는 웹 어플리케이션 이고 두번째 <test> 에서 사용하는 웹 어플리케이션은 관리자가 사용하는 것일 수 있는데요.


이 때 유저가 입력한 정보가 관리자 모드에서 제대로 표현 되는 지 여부를 테스트 해야 될 때가 있습니다.


예를 들어 첫번째 <test> 의 '실행할 클래스 3' 에서 유저가 물건을 주문했고 그 주문 번호가 1111111 일 경우.

두번째 <test> 에서는 이 주문번호가 제대로 입력이 됐는지. 그리고 그 주문번호에 따른 정보들이 제대로 들어가 있는지를 테스트 해야 될 수 있습니다.


이럴 경우 유저가 입력한 정보를 관리자모드에서 확인하도록 하는 방법은 여러 방법이 있겠습니다.


DB를 사용해서 정보를 가져와서 웹 페이지의 정보를 비교할 수 있겠고. 아니면 유저가 정보를 입력할 때 text나 다른 physical 한 파일 형태로 저장하고 관리자 모드에서 그 파일 안의 정보를 가져와서 테스트를 할 수 도 있구요.


그런데 단지 주문 번호 하나만 테스트를 해야 되는데 이렇게 DB 연결이나 물리적인 파일형태로 데이터를 저장하고 가져오는 것은 너무 복잡한 해결방법이 될 겁니다.


이 경우에는 User 모드에서 변수를 public static으로 저장하고 관리자 모드에서 그 정보를 가져와서 사용할 수 있습니다. (이것은 Selenium Webdriver에 대한 정보라기 보다는 자바 기초 정보입니다.)



예를 들어 위 코드내의 첫번째 <text>에 있는 '실행할 클래스 3' 에 아래와 같이 선언된 변수가 있습니다.


public static String orderNumber = null;

public static String userName = null;


그리고 유저가 이 정보를 입력하는 테스트 케이스에서 아래와 같이 이 변수에 그 정보를 담습니다.


@Test(alwaysRun = true)

public void inputOrderNumber() {

orderNumber = InputForm.getOrderNumber();

userName = InputForm.getUsername();

}


이 정보를 두번째 <test> 의 '실행할 클래스 3'에서 가져와서 해당 관리자모드 웹 페이지에 표시된 정보와 비교롤 합니다.


public static String orderNumber = null;

public static String userName = null;


@Test(alwaysRun = true)

public void checkOrderNumber() {

orderNumber = inputForm.orderNumber; (inputForm 은 첫번째 <test>의 '실행할 클래스3' 의 클래스 명)

}


오늘은 자바 기초 문법을 하나 정리 했네요.

반응형

Comment

이전 1 2 3 4 5 6 7 8 9 ··· 29 다음