자동화테스트/Selenium2018. 12. 11. 20:00

크로스 브라우저 테스팅이란 무엇입니까?

크로스 브라우저 테스트 는 여러 브라우저에서 웹 응용 프로그램이 예상대로 작동하는지 확인하는 기능 테스트 유형입니다.

Selenium WebDriver를 사용한 크로스 브라우저 테스트

크로스 브라우저 테스트가 필요한 이유는 무엇입니까?

웹 기반 응용 프로그램은 Windows 응용 프로그램과 완전히 다릅니다. 웹 응용 프로그램은 최종 사용자가 모든 브라우저에서 열 수 있습니다. 예를 들어 일부 사용자 는 Firefox 브라우저 에서 http://twitter.com 을 열고 다른 사용자는 Chrome 브라우저 또는 IE를 사용할 수 있습니다 .

아래 다이어그램에서 IE 에서 Twitter의 로그인 상자가 모든 구석에 곡선을 표시하지 않지만 Chrome 브라우저에서 볼 수 있음을 알 수 있습니다.

Selenium WebDriver를 사용한 크로스 브라우저 테스트

따라서 우리는 모든 인기있는 브라우저에서 웹 응용 프로그램이 예상대로 작동하여 더 많은 사람들이 액세스하고 사용할 수 있도록해야합니다.

이 동기는 제품의 크로스 브라우저 테스트 를 통해 충족 될 수 있습니다 .

크로스 브라우저 이슈 이유

  1. 여러 브라우저에서 글꼴 크기가 일치하지 않습니다.
  2. 자바 스크립트 구현은 다를 수 있습니다.
  3. CSS, HTML 유효성 검사 차이가있을 수 있습니다.
  4. 일부 브라우저는 여전히 HTML5를 지원하지 않습니다.
  5. 페이지 정렬 및 div 크기.
  6. 이미지 방향.
  7. 브라우저와 OS의 호환성 문제. 기타.

크로스 브라우저 테스트를 수행하는 방법

Selenium WebDriver를 사용하는 경우 Internet Explorer, FireFox, Chrome, Safari 브라우저를 사용하여 테스트 케이스를 자동화 할 수 있습니다.

동일한 머신에서 여러 브라우저를 사용하여 테스트 케이스를 동시에 실행하려면 Testng 프레임 워크를 Selenium WebDriver와 통합 할 수 있습니다 .

당신의 testing.xml은 그렇게 보일 것입니다,

Selenium WebDriver를 사용한 크로스 브라우저 테스트

이 testing.xml은 Test Case 와 매핑 될 것입니다.

Selenium WebDriver를 사용한 크로스 브라우저 테스트

여기에서 testing.xml에는 두 개의 테스트 태그 ( 'ChromeTest', 'FirefoxTest')가 있으므로이 테스트 사례는 두 개의 다른 브라우저에 대해 두 번 실행됩니다.

첫 번째 테스트 'ChromeTest'는 'browser'매개 변수의 값을 'chrome'으로 전달하므로 ChromeDriver가 실행됩니다. 이 테스트 케이스는 Chrome 브라우저에서 실행됩니다.

두 번째 테스트 'FirefoxTest'는 'browser'매개 변수의 값을 'Firefox'로 전달하므로 FirefoxDriver가 실행됩니다. 이 테스트 케이스는 FireFox 브라우저에서 실행됩니다.

전체 코드 :

Guru99CrossBrowserScript.java

package parallelTest;

import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class CrossBrowserScript {

	WebDriver driver;

	/**
	 * 이 함수는 testng.xml의 각 Test 태그 앞에 실행됩니다.
	 * @param browser
	 * @throws Exception
	 */
	@BeforeTest
	@Parameters("browser")
	public void setup(String browser) throws Exception{
		//TestNG에서 전달 된 매개 변수가 'firefox'인지 확인합니다.
		if(browser.equalsIgnoreCase("firefox")){
		//firefox 인스턴스를 만듭니다.
			System.setProperty("webdriver.firefox.marionette", ".\\geckodriver.exe");
			driver = new FirefoxDriver();
		}
		//매개 변수가 'chrome'으로 전달되었는지 확인
		else if(browser.equalsIgnoreCase("chrome")){
			//경로를 chromedriver.exe로 설정합니다.
			System.setProperty("webdriver.chrome.driver",".\\chromedriver.exe");
			//chrome 인스턴스를 만듭니다.
			driver = new ChromeDriver();
		}
		//매개 변수가 'Edge'로 전달되었는지 확인
				else if(browser.equalsIgnoreCase("Edge")){
					//경로를 Edge.exe로 설정합니다.
					System.setProperty("webdriver.edge.driver",".\\MicrosoftWebDriver.exe");
					//Edge 인스턴스를 만듭니다.
					driver = new EdgeDriver();
				}
		else{
			//예외를 throw하는 브라우저를 전달하지 않은 경우
			throw new Exception("Browser is not correct");
		}
		driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
	}
	
	@Test
	public void testParameterWithXML() throws InterruptedException{
		driver.get("http://demo.guru99.com/V4/");
		// 사용자 이름 찾기
		WebElement userName = driver.findElement(By.name("uid"));
		// 사용자 이름 채우기
		userName.sendKeys("guru99");
		//Find password
		WebElement password = driver.findElement(By.name("password"));
		// 암호를 입력하십시오.
		password.sendKeys("guru99");
	}
}

testing.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite name="TestSuite" thread-count="2" parallel="tests" >

<test name="ChromeTest">

<parameter name="browser" value="Chrome" />

<classes>

<class name="parallelTest.CrossBrowserScript">

</class>

</classes>

</test>

<test name="FirefoxTest">

<parameter name="browser" value="Firefox" />

<classes>

<class name="parallelTest.CrossBrowserScript">

</class>

</classes>

</test>

<test name="EdgeTest">

<parameter name="browser" value="Edge" />

<classes>

<class name="parallelTest.CrossBrowserScript">

</class>

</classes>

</test>

</suite>

참고 : 테스트를 실행하려면 testing.xml을 마우스 오른쪽 단추로 클릭하고 다음 계정으로 실행을 선택하고 TestNG를 클릭합니다.

Selenium WebDriver를 사용한 크로스 브라우저 테스트

개요

  1. 크로스 브라우저 테스트는 다른 웹 브라우저로 웹 응용 프로그램을 테스트하는 기술입니다.
  2. Selenium은 자동화를 위해 다양한 유형의 브라우저를 지원할 수 있습니다.
  3. Selenium은 TestNG와 통합되어 다중 브라우저 테스트를 수행 할 수 있습니다.
  4. testing.xml의 매개 변수에서 브라우저 이름을 전달할 수 있으며, 테스트 사례에서는 이에 따라 WebDriver 참조를 만들 수 있습니다.

참고 : 주어진 프로그램은 Selenium 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 및 Microsoft Edge 14.14393에서 제작 및 테스트되었습니다. 프로그램에서 오류가 발생하면 드라이버를 업데이트하십시오.

튜토리얼 데모 셀레니움 프로젝트 파일 첨부

Crossbrowser_v1.zip



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