testng实现参数化以及@optional的使用

来源:互联网 发布:百乐淘宝旗舰店 编辑:程序博客网 时间:2024/06/06 03:25

一、项目路径下建一个testng.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" ><suite name="Suite2" parallel="tests"><test name="Function_chrome">   <parameter name="browser" value="chrome" /><classes><class name="com.wiley.demo.ParaOpt" /></classes></test><test name="Function_firefox">   <parameter name="browser" value="firefox" /><classes><class name="com.wiley.demo.ParaOpt" /></classes></test><test name="Function_ie">   <parameter name="browser" value="ie" /><classes><class name="com.wiley.demo.ParaOpt" /></classes></test></suite>

二、建一个browser的类

package com.wiley.demo;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.ie.InternetExplorerDriver;import org.openqa.selenium.remote.DesiredCapabilities;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Optional;import org.testng.annotations.Parameters;public class Browser {public WebDriver driver;       /**     * If no parameter named "browser" is found in your testng.xml file,      * your test method will receive the default value specified inside      * the @Optional annotation: "chrome".      * @param browser     */@BeforeClass@Parameters("browser")public void openBrowser(@Optional("chrome")String browser){if(browser.equalsIgnoreCase("chrome")){System.setProperty("webdriver.chrome.driver", "E:\\webdriver\\chromedriver.exe");driver=new ChromeDriver();}else if(browser.equalsIgnoreCase("ie")){System.setProperty("webdriver.ie.driver", "E:\\webdriver\\IEDriverServer.exe");DesiredCapabilities dcIE = DesiredCapabilities.internetExplorer();          dcIE.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);          dcIE.setCapability("ignoreProtectedModeSettings", true);         driver=new InternetExplorerDriver(dcIE);}else if(browser.equalsIgnoreCase("firefox")){driver=new FirefoxDriver();}}@AfterClasspublic void closeBrowser(){if(driver!=null){driver.quit();}}}

其中,@optional("chrome")的意思是:如果在testng.xml文件中没有找到名为"browser"的参数,测试方法将接受在@Optional注解中指定的默认值:"chrome"

三、执行测试

package com.wiley.demo;import org.testng.annotations.Test;public class ParaOpt extends Browser {@Testpublic void testBrowser(){driver.manage().window().maximize();driver.get("https://www.baidu.com");}}


0 0