2016-03-25 6 views
0

// Dies ist mein XML-Code ... wenn ich (InvalidLogin-Methode) in der Test-Suite "Mit gültigen Daten arbeiten" teste, funktioniert es erfolgreich, aber wenn ich versuchen (InvalidLogin Methode) Code in verschiedener Testsuite ausführen (ex.Login mit ungültigen Daten) es erzeugt FehlerGibt die Ausnahme "java.lang.NullPointerException" aus, während zwei Testfälle parallel ausgeführt werden.

<suite name="Test Login" verbose="2" parallel="methods" thread-count="2"> 

<test name="Login with valid data" > 
<parameter name="UserName" value="priyanka"></parameter> 
<parameter name="Password" value="vrs~123"></parameter> 

<!-- <parameter name="UserNam" value="Chetna12345"></parameter> 
<parameter name="Passwor" value="Chetna12345"></parameter> --> 


<classes> 
<class name="Login_Test"> 
<methods> 
    <include name="openBrowser"></include> 
     <include name="SuccessfulLogin"></include> 
     <!-- <include name="InvalidLogin"></include> --> 

</methods> 
</class> 
</classes> 
</test> 
<test name="Login with Invalid Data"> 
<parameter name="UserNam" value="priyanka"></parameter> 
<parameter name="Passwor" value="priyanka"></parameter>  

<groups> 
<run> 
<include name="TC02"></include> 
</run> 
</groups> 
<classes> 
<class name="Login_Test"> 
<methods> 
     <include name="InvalidLogin"></include> 
</methods> 
</class> 
</classes> 

</test> 
</suite> 

// Das ist meine Methode für eine erfolgreiche Anmeldung und ich tue Logout nach der Anmeldung so URL-Browser bleibt offen, aber Werte für ungültig werden nicht an Textbox weitergeleitet ...

public void SuccessfulLogin(String userName, String passWord) { 

    try { 

     driver.findElement(By.id("UserName")).sendKeys(userName); 
     driver.findElement(By.id("Password")).sendKeys(passWord); 

     driver.findElement(By.id("btnLogin")).submit(); 

// Logout-Code

driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); 
      driver.findElement(By.className("dropdown-toggle")).click(); 

      driver.findElement(By.xpath("//a[contains(@href, 'Account/LogOff')]")).click(); 


    } catch (Exception ex) { 

    } 
} 
public void InvalidLogin(String Uname,String Pword) 
    { 
     driver.findElement(By.id("UserName")).sendKeys(Uname); 
     driver.findElement(By.id("Password")).sendKeys(Pword); 

     driver.findElement(By.id("btnLogin")).submit(); 
    } 

// in Console löschte

Login success!! 
PASSED: openBrowser 
PASSED: SuccessfulLogin("priyanka", "vrs~123") 

=============================================== 
    Login with valid data 
    Tests run: 2, Failures: 0, Skips: 0 
=============================================== 

[TestRunner] Starting executor for test Login with Invalid Data with time out:2147483647 milliseconds. 
FAILED: InvalidLogin("priyanka", "priyanka") 
java.lang.NullPointerException 
+0

Ihre zweite 'Login_Test' tut hinzufügen annehmen müssen nicht schließe 'openBrowser' ein. –

+0

Hallo @ElliottFrisch Ich habe meinen Code aktualisiert, in dem ich Logout nach meiner ersten Testfallausführung mache, also wenn die Ausführung für "Ungültige Anmeldung" startet, bleibt die Anmeldeseite im Browser geöffnet, so dass ungültige Daten direkt in den Browser gelangen. – Sumit

+0

Können Sie ein [Minimal, Computer und Überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) erstellen? Es sollte uns helfen, Ihnen zu helfen. – mfulton26

Antwort

0

XML Laut ich Sie <include name="openBrowser"></include> auf den zweiten Test

+0

aber Browser ist bereits geöffnet, kann ich den Wert auf dieser Seite nur übergeben? – Sumit

+0

Sie führen Tests parallel aus, jeder Thread sollte einen separaten Browser öffnen – RocketRaccoon