第一步:在基礎類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>