使用TestNG进行浏览器(IE、Chrome、FireFox)并发兼容性测试

时间:2022-04-30 04:34:41

Web测试项目中经常会进行浏览器兼容性相关的测试工作,而兼容性测试的工作重复性相当高,这里TestNG提供了并发执行执行测试用例的功能,可以让测试用例以并发的形式执行,实现并发测试不同浏览器的兼容性测试需求。

这里以IE、Chrome、FireFox浏览器结合TestNGINX以并发方式进行浏览器访问为例(IE、Chrome、Firefox调用方式请参考之前的博客)
测试代码:

package com.testng.browser;
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.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class MultipleBrowserSearchTest {
	public WebDriver driver;
	String baseUrl = "http://www.sogou.com/";
	@Parameters("browser")
	@BeforeClass
	public void beforeTest(String Browser)
	{
		if(Browser.equalsIgnoreCase("firefox"))
		{
			  System.setProperty("webdriver.firefox.bin", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
			  driver = new FirefoxDriver();
			  //设置浏览器为全屏模式
			  driver.manage().window().maximize();
			 
		}else if(Browser.equalsIgnoreCase("ie"))
		{
			  System.setProperty("webdriver.ie.driver", "C:\\Program Files\\Internet Explorer\\IEDriverServer.exe");
			  //设置IE浏览器默认存储位置 
			  driver = new InternetExplorerDriver();
			  //设置浏览器为全屏模式
			  driver.manage().window().maximize();  
		}else
		{
			  //锟斤拷锟矫谷革拷锟斤拷锟斤拷锟侥拷洗娲⑽伙拷锟� 
			  System.setProperty("webdriver.chrome.driver", "D:\\BaiduNetdiskDownload\\Chrome\\chromedriver.exe");
			  driver = new ChromeDriver();
			  //锟斤拷锟斤拷锟斤拷锟斤拷锟轿拷锟侥J�
			  driver.manage().window().maximize();  
		}
	}
	
	  @Test
	  public void testSearch() {
		  driver.get(baseUrl);
		  WebElement inputBox = driver.findElement(By.id("query"));
		  Assert.assertTrue(inputBox.isDisplayed());
		  inputBox.sendKeys("光荣之路自动化测试");
		  //单击搜素按钮
		  driver.findElement(By.id("stb")).click();
		  try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		  Assert.assertTrue(driver.getPageSource().contains("光荣之路"));
	  }
	   
      @AfterClass
	  public void afterTest() {
		  //退出浏览器
		  driver.quit();
	  }
}

testng.xml文件的配置内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="tests" thread-count="3">
  <!-- 火狐浏览器 -->
  <test name="FirefoxTest">
    <parameter name="browser" value="firefox"></parameter>
    <classes>
      <class name="com.testng.webdriver.MultipleBrowserSearchTest"/>
    </classes>
  </test> 
   <!-- IE浏览器 -->
  <test name="IETest">
   <parameter name="browser" value="ie"></parameter>
   <classes>
     <class name="com.testng.webdriver.MultipleBrowserSearchTest"></class>
   </classes>
  </test>
  <!-- 谷歌浏览器 -->
  <test name="ChromeTest">
   <parameter name="browser" value="chrome"></parameter>
   <classes>
     <class name="com.testng.webdriver.MultipleBrowserSearchTest"></class>
   </classes>
  </test>
</suite>  

运行结果:在运行过程中,可以看到系统同时弹出了IE、Chrome、FireFox的浏览器窗口,并在这3个窗口中运行测试脚本中定义的操作步骤,实现了浏览器的并发测试。