使用TestNG进行跨浏览器测试

时间:2014-09-08 11:40:55

标签: java xml selenium cross-browser

我的代码是

@BeforeTest  
@Parameters("browser")
public void browserinitialization(String browser) throws Exception
{
    if(browser.equalsIgnoreCase("ie"))
    {
        System.setProperty("webdriver.ie.driver", "D:\\ESCLIPSE\\TestNG_project\\lib\\IEDriverServer.exe");
        DesiredCapabilities caps = DesiredCapabilities.internetExplorer();
        caps.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
        driver = new InternetExplorerDriver(caps);
    }
    else if(browser.equalsIgnoreCase("chrome"))
    {
        System.setProperty("webdriver.ie.driver", "D:\\ESCLIPSE\\TestNG_project\\lib\\chromedriver.exe");
        DesiredCapabilities caps = DesiredCapabilities.chrome();
        driver = new InternetExplorerDriver(caps);
    }
    else
    {
        throw new Exception("Browser is not correct");
    }
    driver.get(url);             
}

@Test
public void login() throws InterruptedException
{
    driver.findElement(By.id("txtUserName")).sendKeys("name");
    driver.findElement(By.id("txtPassword")).sendKeys("password");
    driver.findElement(By.id("btnOk")).click(); 
    Thread.sleep(5000);
}

@AfterTest
public void quit()
{
    driver.quit();
}

我的XML文件是

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestSuite" thread-count="2"  parallel="tests" >
  <test name="ChromeTest">
  <parameter name="browser" value="Chrome" />
    <classes>
       <class name="firstreport.Firsttryfor">
     </class>
    </classes>
   </test>
  <test name="IETest">
  <parameter name="browser" value="IE" />
    <classes>
      <class name="firstreport.Firsttryfor">
      </class>
    </classes>
 </test>

我得到的错误是:

FAILED CONFIGURATION: @BeforeTest browserinitialization
org.testng.TestNGException: 
Parameter 'browser' is required by @Configuration on method browserinitialization but has not been marked @Optional or defined
in C:\Users\arunkumars\AppData\Local\Temp\testng-eclipse--441013644\testng-customsuite.xml
    at org.testng.internal.Parameters.createParameters(Parameters.java:155)
    at org.testng.internal.Parameters.createParameters(Parameters.java:358)
    at org.testng.internal.Parameters.createConfigurationParameters(Parameters.java:86)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:199)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
    at org.testng.TestRunner.beforeRun(TestRunner.java:641)
    at org.testng.TestRunner.run(TestRunner.java:609)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
    at org.testng.SuiteRunner.run(SuiteRunner.java:240)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
    at org.testng.TestNG.run(TestNG.java:1057)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)

SKIPPED CONFIGURATION: @AfterTest quit
SKIPPED: login

===============================================
    Default test
    Tests run: 1, Failures: 0, Skips: 1
    Configuration Failures: 1, Skips: 1
===============================================

请帮助我。我是Java编码的新手。谢谢你提前

1 个答案:

答案 0 :(得分:2)

确保您的XML文件位于正确的路径中。如果你正在使用eclipse,你应该看到xml文件和类文件。

您尚未关闭套件</suite>

而且,您是否尝试运行类firstreport.Firsttryfor而不是XML文件?如果是这样,你会得到那个错误。