2016-03-25 1 views
0

// Ceci est mon code XML ... quand j'exécute (méthode InvalidLogin) dans la suite de tests "Connexion avec des données valides" essayez d'exécuter (méthode InvalidLogin) code dans différentes suite de tests (ex.Login avec des données non valide), il génère l'erreurDonne l'exception "java.lang.NullPointerException" tout en exécutant parallèlement deux cas de test

<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> 

// Ceci est Ma méthode pour la connexion réussie et je suis en train de faire Déconnexion après la connexion si l'URL sur le navigateur reste ouvert mais les valeurs pour invalide ne sont pas transmises à la zone de texte ...

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(); 

// Déconnexion 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(); 
    } 

// eteint dans la console

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

Votre deuxième 'Login_Test' ne include 'openBrowser'. –

+0

bonjour @ElliottFrisch j'ai mis à jour mon code dans lequel je fais la déconnexion après mon premier cas de test alors, quand l'exécution commence pour "Invalid Login" la page de connexion reste ouverte dans le navigateur, elle commence directement à y transmettre des données invalides. – Sumit

+0

Pouvez-vous créer un [Exemple minimal, informatique et vérifiable] (http://stackoverflow.com/help/mcve)? Cela devrait nous aider à vous aider. – mfulton26

Répondre

0

Selon XML, je suppose que vous devez ajouter <include name="openBrowser"></include> au second test

+0

mais le navigateur est déjà ouvert, je ne peux pas passer la valeur sur cette page seulement? – Sumit

+0

vous exécutez des tests en parallèle, chaque thread doit ouvrir un navigateur distinct – RocketRaccoon