자동화테스트/Selenium2019. 1. 13. 08:00

Selenium WebDriver에서 객체 저장소 만들기 : XML 속성 파일

Object Repository 무엇입니까?

오브젝트 저장소는 모든 오브젝트에 대한 공통 저장 위치입니다. Selenium WebDriver 컨텍스트에서 객체는 일반적으로 요소를 고유하게 식별하는 사용되는 로케이터입니다.

객체 저장소를 사용하는 주된 이점은 테스트 케이스에서 객체를 분리하는 것입니다하나의 web 요소의 로케이터 값이 변경되면 로케이터가 사용 모든 테스트 케이스를 변경하는 대신 오브젝트 저장소 변경하면 됩니다오브젝트 저장소를 유지 보수하면 프레임 워크 구현의 모듈성이 향상됩니다.

튜토리얼에서는,

셀레늄 드라이버의 객체 저장소 유형

Selenium WebDriver 기본적으로 내장 객체 저장소를 제공하지 않습니다그러나 - 접근법을 사용하여 객체 저장소를 작성할 있습니다. 여기서 키는 객체에 지정된 이름을 참조하고 값은 페이지 내에서 객체를 고유하게 식별하는 사용되는 속성을 참조합니다.

다음은 Selenium WebDriver에서 작성할 있는 오브젝트 저장소의 유형입니다.

1.     특성 파일을 사용한 오브젝트 저장소

2.     XML 파일을 사용한 객체 저장소

Properties 파일을 사용하는 Selenium Web Driver 객체 저장소

접근법에서 특성 파일은 데이터가 - 쌍의 형식으로 저장되는 텍스트 파일입니다아래 자습서에서는 다음 주제를 다룹니다.

1 단계) 이클립스에서 속성 파일 만들기

1.     우선, 아래 자바 프로젝트 구조를 Eclipse에서 작성해야 합니다프로젝트 이름과 패키지 이름은 유효한 모든 이름이 있습니다.

2.     메인 프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭하고 New-> Other 선택하십시오.

3.     다음 창에서 일반 -> 파일을 선택하고 '다음'버튼을 클릭하십시오.

4.     파일 리소스 창에 '.properties'확장자를 가진 유효한 파일 이름을 입력하고 '마침'버튼을 누릅니다.

5.     'application.properties'라는 파일이 프로젝트 구조에 표시되어야 합니다.

2 단계) 속성 파일에 데이터 저장

1.     데이터는 - 쌍의 형태로 특성 파일에 저장되며 키는 파일에서 고유합니다.

2.     로케이터 값을 사용하여 요소를 식별하기 위해 특성 파일을 사용하려고합니다.

3.     Eclipse에서 application.properties 파일을 열고 다음 데이터를 저장하십시오.

MobileTesting=//a[text()='MOBILE TESTING']
EmailTextBox = philadelphia-field-email
SignUpButton = philadelphia-field-submit

4) 자습서에서는 다음 데모 사이트가 사용됩니다http://demo.guru99.com/test/guru99home/ . 테스트 시나리오는 다음과 같습니다.

  • XPATH 사용하여 모바일 테스트 링크를 클릭하십시오.
  • 뒤로 이동
  • ID 사용하여 이메일 텍스트 상자에 데이터 입력
  • ID 사용하여 가입 버튼을 클릭하십시오.

3) 속성 파일에서 데이터 읽기

1.     등록 정보 파일에서 데이터를 읽는 것은 java.util 패키지에서 제공되는 내장 Properties 클래스를 사용하여 수행 있습니다.

2.     처음에는 Properties 클래스의 객체를 다음과 같이 생성해야합니다.

Properties obj = new Properties(); 

3.     우리는 속성 파일에 대한 경로를 가진 FileInputStream 클래스의 객체를 생성해야한다.

FileInputStream objfile = FileInputStream (System.getProperty ( "user.dir") + "\\ application.properties");

4.     속성 파일에서 데이터 읽기는 java Properties 클래스에서 제공하는 load 메서드를 사용하여 수행 있습니다아래 코드는 load 메소드의 사용법을 보여줍니다.

Properties obj = new Properties();
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
obj.load(objfile);
String mobileTesting = obj.getProperty("MobileTesting");

'mobileTesting'문자열에는 페이지 내의 모바일 테스트 링크를 식별하는 XPATH 포함됩니다.

4 단계) 테스트 스크립트에서 특성 파일 사용

특성 파일은 특성 파일에서 데이터를 읽고 데이터를 매개 변수로 findElement 메소드에 전달하여 테스트 스크립트에서 사용할 있습니다아래 코드는 테스트 스크립트의 특성 파일에서 읽은 데이터의 사용법을 보여줍니다.

driver.findElement (By.xpath (obj.getProperty ( "MobileTesting"))). click ();

driver.findElement (By.id (obj.getProperty ( "EmailTextBox"))). sendKeys ( " testguru99@gmail.com ");                                                                                                    

driver.findElement (By.id (obj.getProperty ( "SignUpButton"))). click ();  

아래는 위의 테스트 시나리오에 사용 전체 코드입니다.

package com.objectrepository.demo;                           
 
import java.io.FileInputStream;                              
import java.io.FileNotFoundException;                        
import java.io.IOException;                   
import java.util.Properties;                  
 
import org.openqa.selenium.By;                
import org.openqa.selenium.WebDriver;                        
import org.openqa.selenium.chrome.ChromeDriver;                             
 
public class DemoOR {                                                       
 
public static void main(String[] args) throws IOException {                                                                                                                                
               
// Create WebDriver Instance                  
    WebDriver driver;                                        
    System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");                                                                 
    driver = new ChromeDriver();                                                                           
    driver.get("http://demo.guru99.com/test/guru99home/");                                                                
    driver.manage().window().maximize();                                    
// Load the properties File                   
    Properties obj = new Properties();                                                                     
    FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");                                                                                                                            
    obj.load(objfile);                                                                      
// Nagigate to link Mobile Testing and Back                  
    driver.findElement(By.xpath(obj.getProperty("MobileTesting"))).click();                                                                                             
    driver.navigate().back();                                
// Enter Data into Form                       
    driver.findElement(By.id(obj.getProperty("EmailTextBox"))).sendKeys("testguru99@gmail.com");                                                                                                                          
    driver.findElement(By.id(obj.getProperty("SignUpButton"))).click();                                                                                                 
  }                            
 
}

                              

XML 파일을 사용하는 Selenium WebDriver 객체 저장소

XML Extensible Markup Language 약자입니다. XML 파일은 DOM (Document Object Model) 기본 구조로 사용합니다. XML 파일 형식은 페이지가 구성되는 HTML 형식을 복제합니다다음은 다루게 주제 목록입니다.

1 단계) 이클립스에서 XML 파일 만들기

1.     아래 자바 프로젝트 구조는 Eclipse에서 만들어야합니다.

2.     프로젝트 폴더를 마우스 오른쪽 단추로 클릭하고 새로 만들기 -> 기타를 선택하십시오.

3.     XML 폴더에서 XML 파일을 선택하고 '다음'버튼을 클릭하십시오.

4.     올바른 XML 파일 이름을 입력하고 '마침'버튼을 클릭하십시오.

5.     아래 그림과 같이 XML 파일이 프로젝트 폴더에 추가됩니다.

2 단계) XML 파일에 데이터 저장

데이터는 DOM (Document Object Model) 형태로 XML 파일에 저장 있습니다간단히하기 위해 아래 테스트 시나리오를 예제로 사용할 있습니다.

  • XPATH 사용하여 모바일 테스트 링크를 클릭하십시오.
  • 홈페이지로 돌아 가기
  • ID 사용하여 이메일 텍스트 상자에 데이터 입력
  • ID 사용하여 가입 버튼을 클릭하십시오.

다음은 사용할 XML 파일의 형식입니다.

<menu>     
      <mobiletesting>//a[text()='MOBILE TESTING']</mobiletesting>  
      <email> philadelphia-field-email</email> 
      <signup> philadelphia-field-submit </signup>     
 </menu>

XML 코드를 properties.xml 저장하십시오.

디자인 탭에서

3 단계) XML 파일에서 데이터 읽기

1. XML 파일에서 데이터 읽기는 java 내장 'dom4j'클래스를 사용하여 수행 있습니다코드를 진행하기 전에 프로젝트의 빌드 패스에 아래의 JAR 파일을 추가해야합니다.

  • jaxen.jar
  • dom4j-1.6.jar

2. 아래는 XML 파일에서 데이터를 읽는 코드입니다.

                               File inputFile = new File(System.getProperty("user.dir") +"\\properties.xml");
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read(inputFile);
        String mobileTesting = document.selectSingleNode("//menu/mobiletesting").getText();
        String emailTextBox = document.selectSingleNode("//menu/email").getText();
        String signUpButton = document.selectSingleNode("//menu/signup").getText();

 

3. 처음에는 File 객체를 만들어 SAXReader 클래스의 'read'메소드에 매개 변수로 전달해야합니다. XML 파일 데이터가 성공적으로 읽혀지면 'selectSingleNode'메소드를 사용하여 XML 문서의 개별 노드에 액세스 있습니다.

4) 테스트 스크립트에서 XML 파일 사용

XML 파일은 XML 파일에서 데이터를 읽고 매개 변수로 데이터를 findElement 메소드에 전달하여 테스트 스크립트에서 사용할 있습니다아래 코드는 테스트 스크립트에서 XML 파일로부터 읽은 데이터의 사용법을 보여줍니다.

driver.findElement (By.xpath (mobileTesting)). click ();

driver.findElement (By.id (emailTextBox)). sendKeys ( " testguru99@gmail.com ");

driver.findElement (By.id (signUpButton)). click ();

아래 코드는 selenium WebDriver에서 XML 파일을 사용하는 방법을 보여줍니다.

package com.objectrepository.demo;                           
import java.io.*;                             
import java.util.*;                           
import org.dom4j.*;                           
import org.dom4j.io.SAXReader;                
import org.openqa.selenium.By;                
import org.openqa.selenium.WebDriver;                        
import org.openqa.selenium.chrome.ChromeDriver;                             
 
public class DemoORXML {                                                    
 
public static void main(String[] args) throws DocumentException {                                                                                                                                         
// Creating WebDriver Instance                
    WebDriver driver;                                        
    System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");                                                                 
    driver = new ChromeDriver();                                                                           
    driver.get("http://demo.guru99.com/test/guru99home/");                                                                
    driver.manage().window().maximize();                                    
// Reading XML File                           
    File inputFile = new File(System.getProperty("user.dir") +"\\properties.xml");                                                                                                                        
    SAXReader saxReader = new SAXReader();                                                                 
    Document document = saxReader.read(inputFile);                                                                                                       
    String mobileTesting = document.selectSingleNode("//menu/mobiletesting").getText();                                                                                                
    String emailTextBox = document.selectSingleNode("//menu/email").getText();                                                                                                         
    String signUpButton = document.selectSingleNode("//menu/signup").getText();                                                                                                        
 
//Navigating to Mobile Testing and back                      
    driver.findElement(By.xpath(mobileTesting)).click();                                                                  
    driver.navigate().back();                                
//Entering Form Data                          
driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com");                                                                                
driver.findElement(By.id(signUpButton)).click();                                                           
 
               }                              
}

                              

개요:

  • 오브젝트 리포지토리는 모든 개체에 대한 공통 저장 위치입니다
  • Selenium WebDriver 기본적으로 내장 객체 저장소를 제공하지 않습니다.
  • Selenium에서 2 가지 타입의 Object Repository 생성 있습니다.

1.     특성 파일을 사용한 오브젝트 저장소

2.     XML 파일을 사용한 객체 저장소

  • 특성 파일은 데이터가 - 쌍의 형식으로 저장되는 텍스트 파일입니다
  • XML 파일 형식은 페이지가 구성되는 HTML 형식을 복제합니다.

 


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터