2017-02-17 18 views
-1

在硒爲什麼結果
默認測試
測試運行:1,失敗:0,跳過:1個
配置故障:1,跳過:0來? 這是爲什麼。我正在嘗試進行測試。硒配置失敗,同時運行TestNG的

public class NewTest { 
WebDriver driver; 
@BeforeTest 
@Parameters({"browser"}) 
public void setup(@Optional String browser) throws Exception{ 
if(browser.equalsIgnoreCase("Firefox")){ 

    driver = new FirefoxDriver(); 
    } 
else if(browser.equalsIgnoreCase("Chrome")){ 
System.setProperty("webdriver.chrome.driver","path"); 
driver = new ChromeDriver(); 
} 
else if(browser.equalsIgnoreCase("IE")){ 
System.setProperty("webdriver.ie.driver","path"); 
driver = new InternetExplorerDriver(); 
} 
else{ 
throw new Exception("Browser is not correct"); 
} 
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
} 
@Test 

public void testParameterWithXML() throws InterruptedException{ 

    driver.get("http://demo.guru99.com/V4/"); 
    WebElement userName = driver.findElement(By.name("uid")); 
    userName.sendKeys("guru99"); 
    WebElement password = driver.findElement(By.name("password")); 
    password.sendKeys("guru99"); 
}} 

這是我的代碼。我試圖運行這個,但得到錯誤。

FAILED CONFIGURATION: @BeforeTest setup(null) 
java.lang.NullPointerException 
at zproject.NewTest.setup(NewTest.java:21) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104) 
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:515) 
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:217) 
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:144) 
at org.testng.TestRunner.beforeRun(TestRunner.java:634) 
at org.testng.TestRunner.run(TestRunner.java:602) 
at org.testng.SuiteRunner.runTest(SuiteRunner.java:387) 
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:382) 
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340) 
at org.testng.SuiteRunner.run(SuiteRunner.java:289) 
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1293) 
at org.testng.TestNG.runSuitesLocally(TestNG.java:1218) 
at org.testng.TestNG.runSuites(TestNG.java:1133) 
at org.testng.TestNG.run(TestNG.java:1104) 
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132) 
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:236) 
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:81) 

另外

默認測試 試驗運行:1,故障:0,跳過:1次 配置失敗:1,跳過:0

suite.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "testng.org/testng-1.0.dtd">; 
<suite name="TestSuite" thread-count="2" parallel="tests" > 
    <parameter name="browser" value="Chrome" /> 
    <test name="ChromeTest"> 
    <classes> 
    <class name="zproject.NewTest"></class> 
    </classes> 
    </test> 
    <parameter name="browser" value="Firefox" /> 
    <test name="FirefoxTest"> 
    <classes> 
     <class name="zproject.NewTest"></class> 
    </classes> 
    </test> 
    <parameter name="browser" value="IE" /> 
    <test name="IETest"> 
    <classes> 
     <class name="zproject.NewTest"> </class> 
    </classes> 
    </test> 
</suite> 
+0

請問您是否可以分享您的testng.xml文件,這將有助於人們瞭解xml文件是否存在問題。 –

+0

你也應該分享一些代碼。 – juherr

+0

@juherr我附上了代碼。 –

回答

0

@Optional表示如果不配置它,值將爲空。

在你的情況,我認爲你沒有,然後browser的價值是null,併產生一個NPE。

由於您在不良瀏覽器的情況下拋出異常,只需刪除@Optional,並且TestNG將按預期失敗。

接下來,你需要一個suite.xml

<suite name="My suite"> 
    <parameter name="browser" value="Firefox"/> 
    <test name="Simple example"> 
    <classes> 
     <class name="NewTest"/> 
    </classes> 
    </test> 
</suite> 

the parameter part of the documentation看看了。

+0

我最初沒有將瀏覽器標記爲可選。但是我得到了錯誤 - BeforeTest在方法設置時需要參數'瀏覽器',但沒有標記@可選或定義 –

+0

<?xml version =「1.0」encoding =「UTF-8」?> <!DOCTYPE suite SYSTEM 「http://testng.org/testng-1.0.dtd」> <測試名稱= 「ChromeTest」> <類名= 「zproject.NewTest」> <參數名稱= 「瀏覽器」 的值= 「火狐」/> <測試名稱= 「FirefoxTest」> <類名= 「zproject.NewTest」> <參數名稱= 「瀏覽器」 的值= 「IE」/> <測試名稱= 「IETest」> <類名=」 zproject。NewTest「>

+0

它應該沒有'@ Optional',並與您的套房。 – juherr