Selenium WebDriver에서 객체 저장소 만들기 : XML 및 속성 파일
Object Repository 란 무엇입니까?
오브젝트 저장소는 모든 오브젝트에 대한 공통 저장 위치입니다. Selenium WebDriver 컨텍스트에서 객체는 일반적으로 웹 요소를 고유하게 식별하는 데 사용되는 로케이터입니다.
객체 저장소를 사용하는 주된 이점은 테스트 케이스에서 객체를 분리하는 것입니다. 하나의 web 요소의 로케이터 값이 변경되면 로케이터가 사용 된 모든 테스트 케이스를 변경하는 대신 오브젝트 저장소 만 변경하면 됩니다. 오브젝트 저장소를 유지 보수하면 프레임 워크 구현의 모듈성이 향상됩니다.
이 튜토리얼에서는,
- Object Repository 란 무엇입니까?
- 셀레늄 웹 드라이버의 객체 저장소 유형
- Properties 파일을 사용하는 Selenium Web Driver 객체 저장소
- XML 파일을 사용하는 Selenium WebDriver 객체 저장소
셀레늄 웹 드라이버의 객체 저장소 유형
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 형식을 복제합니다.
'자동화테스트 > Selenium' 카테고리의 다른 글
Selenium Webdriver에서 Sikuli를 사용하여 파일 업로드 (0) | 2019.01.15 |
---|---|
Selenium Webdriver에서 페이지를 위로 또는 아래로 스크롤 (0) | 2019.01.14 |
초보자를위한 셀렌 C샵 Webdriver 튜토리얼 (0) | 2019.01.12 |
Selenium의 드래그 앤 드롭 액션 dragAndDrop dragAndDropBy (0) | 2019.01.11 |
셀레늄과 함께 cucumber 사용 (0) | 2019.01.10 |