Selenium WebDriver を使用したクロスブラウザテスト

Selenium を使用したクロスブラウザテスト

クロスブラウザテスト Web アプリケーションがさまざまなブラウザーで期待どおりに動作することを確認する機能テストの一種です。

Selenium を使用したクロスブラウザテスト

クロスブラウザテストが必要なのはなぜですか?

Web ベースのアプリケーションは、 Windows アプリケーション。 Web アプリケーションは、エンド ユーザーが任意のブラウザで開くことができます。たとえば、開くことを好む人もいます。 https://twitter.com in Firefox browser, 他の人が使用できる間 Chromeブラウザ or IE.

以下の図では、次のことがわかります。 IE、ログイン box Twitterのしょうがないですよwing すべての角がカーブしていますが、Chrome ブラウザで見ることができます。

クロスブラウザテスト

そのため、より多くの人が Web アプリケーションにアクセスして使用できるように、Web アプリケーションがすべての一般的なブラウザで期待どおりに動作することを確認する必要があります。

この目的はクロスブラウザで実現できます。 テスト 製品の。

理由 クロスブラウザの問題

  1. ブラウザごとにフォント サイズが一致しない。
  2. JavaScript の実装は異なる場合があります。
  3. CSS、HTML 検証の違いが存在する可能性があります。
  4. 一部のブラウザはまだ HTML5 をサポートしていません。
  5. ページの配置と div サイズ。
  6. 画像の向き。
  7. ブラウザとOSの互換性がない。 等。

クロスブラウザテストを行う方法

Selenium WebDriver を使用している場合は、Internet Explorer を使用してテスト ケースを自動化できます。 FireFox、Chrome、Safari ブラウザ。

同じマシン上の異なるブラウザで同時にテスト ケースを実行するには、 テストNG Selenium WebDriver を使用したフレームワーク。

testing.xml は次のようになります。

クロスブラウザテスト

この testing.xml は、 テストケース それはそのように見えるだろう

クロスブラウザテスト

ここでは、testing.xml に XNUMX つの Test タグ (「ChromeTest」、「Firefoxテスト')、このテスト ケースは 2 つの異なるブラウザーで XNUMX 回実行されます。

最初のテスト「ChromeTest」はパラメータ「browser」の値を「chrome」として渡し、ChromeDriver が実行されます。 このテスト ケースは Chrome ブラウザ上で実行されます。

二次試験』Firefox「テスト」はパラメータ「ブラウザ」の値を「」として渡します。Firefox' それで Firefoxドライバーが実行されます。 このテスト ケースは次の日に実行されます FireFox browser.

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("http://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>

注意: テストを実行するには、 testing.xml、 「実行」を選択し、「TestNG」をクリックします。

クロスブラウザテスト

まとめ

  1. クロスブラウザテストは、異なる Web ブラウザで Web アプリケーションをテストする手法です。
  2. Selenium はさまざまな種類の クロスブラウザーテストツール 自動化のために。
  3. Selenium を TestNG と統合して、マルチブラウザ テストを実行できます。
  4. testing.xml のパラメータからブラウザ名を渡すことができ、テスト ケースではそれに応じて WebDriver 参照を作成できます。

注: 指定されたプログラムは、Selenium 3.0.1、Chrome 56.0.2924.87、 Firefox 47.0.2& Microsoft エッジ14.14393。プログラムでエラーが発生する場合は、ドライバーを更新してください

このチュートリアルのデモ用の Selenium プロジェクト ファイルをダウンロードします。