다음을 사용한 크로스 브라우저 테스트 Selenium 웹드라이버

다음을 사용한 크로스 브라우저 테스트 Selenium

크로스 브라우저 테스트 웹 애플리케이션이 다른 브라우저에서 예상대로 작동하는지 확인하는 기능 테스트 유형입니다.

다음을 사용한 크로스 브라우저 테스트 Selenium

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

웹 기반 애플리케이션은 웹 기반 애플리케이션과 완전히 다릅니다. Windows 응용 프로그램. 최종 사용자는 모든 브라우저에서 웹 애플리케이션을 열 수 있습니다. 예를 들어, 어떤 사람들은 개방형을 선호합니다. https://twitter.com in Firefox 브라우저, 다른 사람이 사용하는 동안 Chrome 브라우저 or IE.

아래 다이어그램에서 이를 확인할 수 있습니다. IETwitter의 로그인 상자는 모든 모서리에 곡선이 나타나지 않지만 Chrome 브라우저에서는 볼 수 있습니다.

크로스 브라우저 테스트

따라서 우리는 더 많은 사람들이 웹 애플리케이션에 액세스하고 사용할 수 있도록 웹 애플리케이션이 널리 사용되는 모든 브라우저에서 예상대로 작동하는지 확인해야 합니다.

이 동기는 Cross Browser를 통해 실현될 수 있습니다. 지원 제품의.

크로스 브라우저 문제 이유

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

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

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

동시에 동일한 시스템에서 다양한 브라우저로 테스트 케이스를 실행하기 위해 통합할 수 있습니다. TestNG 프레임워크 Selenium 웹드라이버.

귀하의 Testing.xml은 다음과 같습니다.

크로스 브라우저 테스트

이 test.xml은 다음과 매핑됩니다. 테스트 케이스 그건 그렇게 보일거야

크로스 브라우저 테스트

여기서는 Testing.xml에 두 개의 테스트 태그('ChromeTest','Firefox테스트'), 이 테스트 사례는 2개의 다른 브라우저에 대해 두 번 실행됩니다.

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

두 번째 테스트 'Firefox테스트'는 매개변수 '브라우저'의 값을 '로 전달합니다.Firefox' 그래서 Firefox드라이버가 실행됩니다. 이 테스트 케이스는 Fire에서 실행됩니다.Fox 브라우저.

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;

	/**
	 * This function will execute before each Test tag in testng.xml
	 * @param browser
	 * @throws Exception
	 */
	@BeforeTest
	@Parameters("browser")
	public void setup(String browser) throws Exception{
		//Check if parameter passed from TestNG is 'firefox'
		if(browser.equalsIgnoreCase("firefox")){
		//create firefox instance
			System.setProperty("webdriver.gecko.driver", ".\\geckodriver.exe");
			driver = new FirefoxDriver();
		}
		//Check if parameter passed as 'chrome'
		else if(browser.equalsIgnoreCase("chrome")){
			//set path to chromedriver.exe
			System.setProperty("webdriver.chrome.driver",".\\chromedriver.exe");
			//create chrome instance
			driver = new ChromeDriver();
		}
		//Check if parameter passed as 'Edge'
				else if(browser.equalsIgnoreCase("Edge")){
					//set path to Edge.exe
					System.setProperty("webdriver.edge.driver",".\\MicrosoftWebDriver.exe");
					//create Edge instance
					driver = new EdgeDriver();
				}
		else{
			//If no browser passed throw exception
			throw new Exception("Browser is not correct");
		}
		driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
	}
	
	@Test
	public void testParameterWithXML() throws InterruptedException{
		driver.get("https://demo.guru99.com/V4/");
		//Find user name
		WebElement userName = driver.findElement(By.name("uid"));
		//Fill user name
		userName.sendKeys("guru99");
		//Find password
		WebElement password = driver.findElement(By.name("password"));
		//Fill password
		password.sendKeys("guru99");
	}
}

테스트.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>

알림: 테스트를 실행하려면 테스트.xml, 다음 계정으로 실행을 선택하고 클릭하세요. TestNG

크로스 브라우저 테스트

요약

  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. 프로그램에서 오류가 발생하면 드라이버를 업데이트하세요.

를 다운로드 Selenium 이 튜토리얼의 데모용 프로젝트 파일