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

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

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

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

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

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

以下の図では、次のことがわかります。 IETwitter のログイン ボックスはすべての角が曲線で表示されませんが、Chrome ブラウザでは曲線で表示されます。

クロスブラウザテスト

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

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

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

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

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

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

同じマシン上の異なるブラウザで同時にテスト ケースを実行するには、 TestNG フレームワーク Selenium ウェブドライバー。

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

クロスブラウザテスト

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

クロスブラウザテスト

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

最初のテスト「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("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 Edge 14.14393。プログラムでエラーが発生する場合は、ドライバーを更新してください

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