第一步:在基础类BaseTest中,写一个“获取浏览器”方法。java
代码以下:web
public class BaseTest { public WebDriver getWebDriver(String browser){ WebDriver driver = null; if("ie".equals(browser)){ // ie System.setProperty("webdriver.ie.driver","D:/Program Files/WebDriver/IEDriverServer.exe"); DesiredCapabilities capab = DesiredCapabilities.internetExplorer(); capab.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true); capab.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); driver = new InternetExplorerDriver(capab); } else if ("chrome".equals(browser)){ //chrome System.setProperty("webdriver.chrome.driver","D:/Program Files/WebDriver/chromedriver.exe"); driver = new ChromeDriver(); } else{ //firefox System.setProperty("webdriver.firefox.bin","D:/Program Files/Mozilla Firefox/firefox.exe"); System.setProperty("webdriver.gecko.driver","D:/Program Files/WebDriver/geckodriver.exe"); driver = new FirefoxDriver(); } driver.manage().window().maximize(); return driver; } }
第二步:在测试case中,继承BaseTest基础类(extends BaseTest)。同时增长一个参数@Parameters("browser")来存放TestNG.xml传送过来的浏览器值,在setUp()中定义一个String browser,调动基础类的“获取浏览器方法”driver = this.getWebDriver(browser);chrome
代码以下:浏览器
public class YiiTestMenuQuery extends BaseTest{ WebDriver driver; @BeforeClass @Parameters("browser") public void setUp(String browser) throws Exception { driver = this.getWebDriver(browser); } }
第三步:以使用不一样浏览器来运行case,创建多个TestNG.xml文件。测试
在TestNG.xml文件中增长<parameter name=”browser” value=”浏览器名称” />ui
经过TestNG.xml文件来执行多个case。把要执行的case,放入TestNG.xml文件中。选中TestNG.xml文件,右键,选择“Run As”-》“TestNG Suite”,即这个TestNG.xml文件中全部case都是以火狐浏览器运行的。this
3.1 使用火狐浏览器运行case的代码以下:firefox
<?xml version="1.0" encoding="UTF-8"?> <suite name="Suite1"> <parameter name=”browser” value=”firefox” /> <!—火狐--> <test name="Menu" preserve-order="true"> <!--菜单管理--> <classes> <class name="com.selenium.yan.YiiTestMenuQuery" /> <class name="com.selenium.yan.YiiTestMenuCreate" /> <class name="com.selenium.yan.YiiTestMenuDelete" /> <class name="com.selenium.yan.YiiTestMenuBatchDelete" /> </classes> </test> </suite>
3.2 使用谷歌浏览器运行case的代码以下:code
<?xml version="1.0" encoding="UTF-8"?> <suite name="Suite1"> <parameter name=”browser” value=”chrome” /> <!—谷歌--> <test name="Menu" preserve-order="true"> <!--菜单管理--> <classes> <class name="com.selenium.yan.YiiTestMenuQuery" /> <class name="com.selenium.yan.YiiTestMenuCreate" /> <class name="com.selenium.yan.YiiTestMenuDelete" /> <class name="com.selenium.yan.YiiTestMenuBatchDelete" /> </classes> </test> </suite>
3.3 使用IE浏览器运行case的代码以下:xml
<?xml version="1.0" encoding="UTF-8"?> <suite name="Suite1"> <parameter name=”browser” value=”ie” /> <!—ie浏览器--> <test name="Menu" preserve-order="true"> <!--菜单管理--> <classes> <class name="com.selenium.yan.YiiTestMenuQuery" /> <class name="com.selenium.yan.YiiTestMenuCreate" /> <class name="com.selenium.yan.YiiTestMenuDelete" /> <class name="com.selenium.yan.YiiTestMenuBatchDelete" /> </classes> </test> </suite>