2017-07-19 4 views
0

J'ai un testng.xml qui contient plusieurs tags de test et chaque tag de test a deux classes. pour l'instant il y a 10-12 cas de test donc il y a 10-12 étiquettes de test mais dans le futur ce nombre pourrait augmenter à 50+ alors dans ce cas le testng.xml sera très lourd. Y a-t-il un moyen de diminuer la ligne de code?Y at-il un moyen de remplacer plusieurs tags de test dans testng.xml par quelque chose d'autre?

La seconde classe VerifySuite a une annotation @Test et ne peut pas être modifiée car elle provient d'un pot.

Ci-dessous le xml:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="Suite"> 
    <listeners> 
     <listener class-name="com.api.reporting.ExtentReporterNG" /> 
    </listeners> 
    <test name="GET TC001_TC002"> 
     <classes> 
      <class name="com.test.scenarios.TC001_TC002" /> 
      <class name="com.test.api.verification.VerifySuite" /> 
     </classes> 
    </test> 
    <test name="GET TC003_TC004"> 
     <classes> 
      <class name="com.test.scenarios.TC003_TC004" /> 
      <class name="com.test.api.verification.VerifySuite" /> 
     </classes> 
    </test> 
    <test name="GET TC005_TC006"> 
     <classes> 
      <class name="com.test.scenarios.TC005_T006" /> 
      <class name="com.test.api.verification.VerifySuite" /> 
     </classes> 
    </test> 
    <test name="GET TC007"> 
     <classes> 
      <class name="com.test.scenarios.TC007" /> 
      <class name="com.test.api.verification.VerifySuite" /> 
     </classes> 
    </test> 
    <test name="POST TC001_TC002"> 
     <classes> 
      <class name="com.test.scenarios.TC001_TC002" /> 
      <class name="com.test.api.verification.VerifySuite" /> 
     </classes> 
    </test> 
</suite> <!-- Suite --> 

Répondre

1

Oui, vous pouvez le faire en utilisant assez facilement TestNG. Voilà comment

  1. Assurez-vous que vous utilisez la dernière version publiée de savoir TestNG., 6,11
  2. Créer une implémentation du savoir auditeur TestNG., org.testng.IAlterSuiteListener où dans la méthode org.testng.IAlterSuiteListener#alter(), vous commencez essentiellement à créer les XmlTest objets via le code, puis les injecter dans l'objet XmlSuite.

Vous pouvez même obtenir un peu de fantaisie sur ce où vous pouvez avoir votre large une source de données Méthode d'alimentation alter() comme une feuille de calcul Excel ou un fichier CSV ou un fichier JSON qui contient le nom de la balise <test> et l'ensemble des classes de test qui doivent être incluses dans la balise `et que cet écouteur tisse le fichier xml de la suite entière par programmation.

Dans votre fichier xml suite testng.xml, vous spécifiez uniquement la balise <listeners> et ajoutez une référence à l'implémentation IAlterSuiteListener que vous avez créée.

Cela devrait vous aider à faire ce que vous recherchez.

+0

C'était très utile. Merci beaucoup. – user3939741

+0

Pouvez-vous s'il vous plaît accepter ma réponse si cela a aidé? –