を使用したクロスブラウザテスト Selenium webdriver
を使用したクロスブラウザテスト Selenium
クロスブラウザテスト Web アプリケーションがさまざまなブラウザーで期待どおりに動作することを確認する機能テストの一種です。
クロスブラウザテストが必要なのはなぜですか?
Web ベースのアプリケーションは、 Windows アプリケーション。 Web アプリケーションは、エンド ユーザーが任意のブラウザで開くことができます。たとえば、開くことを好む人もいます。 https://twitter.com in Firefox ブラウザ、 他の人が使用できる間 Chromeブラウザ or IE.
以下の図では、次のことがわかります。 IETwitter のログイン ボックスはすべての角が曲線で表示されませんが、Chrome ブラウザでは曲線で表示されます。
そのため、より多くの人が Web アプリケーションにアクセスして使用できるように、Web アプリケーションがすべての一般的なブラウザで期待どおりに動作することを確認する必要があります。
この目的はクロスブラウザで実現できます。 テスト 製品の。
理由 クロスブラウザの問題
- ブラウザごとにフォント サイズが一致しない。
- Javaスクリプトの実装は異なる場合があります。
- CSS、HTML 検証の違いが存在する可能性があります。
- 一部のブラウザはまだ HTML5 をサポートしていません。
- ページの配置と div サイズ。
- 画像の向き。
- ブラウザと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
まとめ
- クロスブラウザテストは、異なる Web ブラウザで Web アプリケーションをテストする手法です。
- Selenium さまざまなタイプをサポートできます クロスブラウザーテストツール 自動化のために。
- Selenium と統合することができます TestNG マルチブラウザテストを実行します。
- testing.xml のパラメータからブラウザ名を渡すことができ、テスト ケースではそれに応じて WebDriver 参照を作成できます。
ご注意: このプログラムは、Selenium 3.0.1、Chrome 56.0.2924.87で構築およびテストされました。 Firefox 47.0.2& Microsoft Edge 14.14393。プログラムでエラーが発生する場合は、ドライバーを更新してください
ダウンロード Selenium このチュートリアルのデモ用のプロジェクト ファイル