多瀏覽器測試

多瀏覽器測試

用戶可以同時執行多個瀏覽器中的腳本。爲了演示,我們將充分利用我們已經採取了Selenium 網格相同的場景。Selenium 網格的例子,我們已經在遠程執行腳本,在這裏將在本地執行腳本。

即使對於這一點,我們必須確保我們有適當的驅動程序下載。請參考Selenium 網格章下載IE和Chrome瀏覽器的驅動程序。

示例

我們將在所有瀏覽器中同時執行%的計算用於演示目的。

package TestNG; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import java.util.concurrent.TimeUnit; import org.openqa.selenium.*; import org.testng.annotations.*; public class TestNGClass { private WebDriver driver; private String URL = "http://www.calculator.net"; @Parameters("browser") @BeforeTest public void launchapp(String browser) { if (browser.equalsIgnoreCase("firefox")) { System.out.println(" Executing on FireFox"); driver = new FirefoxDriver(); driver.get(URL); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.manage().window().maximize(); } else if (browser.equalsIgnoreCase("chrome")) { System.out.println(" Executing on CHROME"); System.out.println("Executing on IE"); System.setProperty("webdriver.chrome.driver", "D:chromedriver.exe"); driver = new ChromeDriver(); driver.get(URL); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.manage().window().maximize(); } else if (browser.equalsIgnoreCase("ie")) { System.out.println("Executing on IE"); System.setProperty("webdriver.ie.driver", "D:IEDriverServer.exe"); driver = new InternetExplorerDriver(); driver.get(URL); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.manage().window().maximize(); } else { throw new IllegalArgumentException("The Browser Type is Undefined"); } } @Test public void calculatepercent() { driver.findElement(By.xpath(".//*[@id='menu']/div[3]/a")).click(); // Click on Math Calculators
driver.findElement(By.xpath(".//*[@id='menu']/div[4]/div[3]/a")).click(); // Click on Percent Calculators driver.findElement(By.id("cpar1")).sendKeys("10"); // Enter value 10 in the first number of the percent Calculator driver.findElement(By.id("cpar2")).sendKeys("50"); // Enter value 50 in the second number of the percent Calculator
driver.findElement(By.xpath(".//*[@id='content']/table/tbody/tr/td[2]/input")).click(); // Click Calculate Button String result = driver.findElement(By.xpath(".//*[@id='content']/p[2]/span/font/b")).getText(); // Get the Result Text based on its xpath System.out.println(" The Result is " + result); //Print a Log In message to the screen if(result.equals("5")) { System.out.println(" The Result is Pass"); } else { System.out.println(" The Result is Fail"); } } @AfterTest public void closeBrowser() { driver.close(); } }

創建一個XML這將有助於我們在參數設置瀏覽器的名字,不要忘記提及 parallel="tests"爲了同時在所有瀏覽器中執行。

selenium_ide_169

通過對XML文件進行右鍵點擊執行腳本,然後選擇 'Run As' >> 'TestNG' 方式,如下圖所示。

selenium_ide_139

輸出

所有的瀏覽器將平行展開,結果將被打印在控制檯上。

注:對於我們在IE瀏覽器執行成功確保複選框「啓用保護模式」下的「IE選項中的安全選項卡中選中或未在所有區域中未檢查。

selenium_ide_170

TestNG的結果以HTML格式來查看詳細的分析。

selenium_ide_171