2017-07-04 3 views
0

J'automatise une page Web qui s'exécute dans un environnement multi-threading, donc j'exporte tous les résultats de test dans un système de fichiers et je veux conserver chaque résultat de test uniquement référence. Il existe donc un moyen de transmettre dynamiquement un nom de fichier en tant que paramètre à une méthode de test tout en l'appelant à partir de la classe TestNG.Transmettre la valeur dynamique pour tester le paramètre de la méthode en utilisant la classe TestNG

Je sais que nous pouvons passer des paramètres de .xml fichier mais si je le fais, les valeurs ressembleront plus à statiques et peuvent être vus par tous les threads parallèles.

classe test sera appelée à partir de la méthode principale comme ci-dessous

public class Test { 

    public static void main(String[] args) throws ParseException { 

     try 
     { 
      TestNG testng = new TestNG(); 
      testng.setTestClasses(new Class[] { Testing.class }); 
      testng.run(); 
     } 
     catch(Exception e) 
     { 
      e.printStackTrace(); 
     } 

    } 
} 

Code Bellow est ma méthode d'essai

public class Test {

@Test 
@Parameters("filename") 
public void testMethod(String fileName){ 

    System.out.println("filename is: "+fileName); 

    // ---- remaining test logic ----- 
} 

}

Ou pouvons-nous utiliser TestListenerAdapteronStart() méthode pour injecter des valeurs de paramètre ...?.

Répondre

1

Si vous voulez le nom de fichier unique, vous pouvez simplement ajouter un horodatage

Date date = new Date(); 
Format formatter = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss"); 
String timeStamp = formatter.format(date); 

String fileName = "TestResults-" + timeStamp; 
+0

Oui, j'aurais pu le faire, mais même les scénarios de test en cours sont planifiés et automatisés! :-). Après l'exécution des cas de test, je devrais avoir une trace des rapports générés par rapport à l'heure prévue. Si je dépend de l'horodatage, il ne peut pas s'agir d'un code sans erreur. Si possible, je veux créer un écouteur qui alimente les données requises au moment de l'exécution du test. –

1

Vous pouvez stocker vos valeurs dans ITestContext qui seront disponibles pour tous les tests.

Vous pouvez définir les valeurs dans une méthode de configuration (@BeforeSuite par exemple) ou un écouteur.

+0

oui vous avez raison, j'essayais de la même façon d'utiliser l'écouteur 'TestListenerAdapter' mais ça ne se passait pas. Si possible, pouvez-vous s'il vous plaît poster un exemple ..! –