web-dev-qa-db-fra.com

Comment exécuter un fichier de caractéristiques de concombre en parallèle

J'ai ci-dessous des fichiers de fonctionnalités (fichiers de fonctionnalités distincts) dans src/test/resources/feature/et j'aimerais les exécuter en parallèle. Comme: Un fichier de fonctionnalité doit être exécuté en chrome et un autre doit être exécuté dans Firefox, comme indiqué par le nom @Tags.

Feature: Refund item

@chrome
  Scenario: Jeff returns a faulty microwave
    Given Jeff has bought a microwave for $100
    And he has a receipt
    When he returns the microwave
    Then Jeff should be refunded $100

Feature: Refund Money

@firefox
  Scenario: Jeff returns the money
    Given Jeff has bought a microwave for $100
    And he has a receipt
    When he returns the microwave
    Then Jeff should be refunded $100

Quelqu'un peut-il m'aider à atteindre cet objectif? J'utilise la version 1.2.2 de concombre-Java et AbstractTestNGCucumberTests en tant que coureur. Dites-moi également comment créer un Test Runner de manière dynamique en utilisant des fichiers de fonctions et les faire fonctionner en parallèle.

6
ArrchanaMohan

Si vous vous attendez à pouvoir exécuter plusieurs fonctionnalités en parallèle, vous pouvez alors procéder comme suit:

  • Dupliquez la classe AbstractTestNGCucumberTests dans votre projet de test et définissez l'attribut parallel=true sur la méthode annotée @DataProvider.

Puisque dataprovider-thread-count par défaut de TestNG est 10 et que vous avez maintenant demandé à TestNG d'exécuter features en parallèle, vous devriez commencer à voir vos fichiers de fonctionnalités s'exécuter en parallèle. 

Mais je comprends que la création de rapports sur les concombres n’est pas intrinsèquement sécuritaire, de sorte que vos rapports peuvent paraître tronqués.

3
Krishnan Mahadevan

Le concombre ne prend pas en charge l'exécution parallèle prête à l'emploi. J'ai essayé, mais ce n'est pas amical.

  1. Nous devons utiliser la capacité de maven pour l'invoquer en parallèle. Référez-vous link
  2. Il existe également un projet github qui utilise un plugin personnalisé pour exécuter en parallèle . Reportez-vous à cucumber-jvm-parallel-plugin
3
Bharath Kumar

Pour tirer le meilleur parti de TestNG, vous pouvez utiliser le framework d'extension tiers de Testng QAF . Il prend en charge plusieurs syntaxes bdd , y compris gherkin utilisant GherkinFactory . Lorsque vous utilisez BDD avec QAF, vous pouvez tirer parti de chaque fonctionnalité de TestNG, y compris les fournisseurs de données, la configuration de l’exécution en parallèle de différentes manières (groupes/tests/méthodes) et les écouteurs TestNG.

QAF considère chaque scénario comme un test TestNG et le schéma de scénario comme un test piloté par les données TestNG. Comme qaf fournit une gestion des pilotes et des ressources intégrée, vous n'avez pas besoin d'écrire une seule ligne de code pour la gestion des pilotes ou des ressources. Tout ce que vous avez à faire est de créer le fichier de configuration XML TestNG selon vos besoins, soit d'exécuter des méthodes parallèles (scénarios), des groupes ou des tests xml sur un ou plusieurs navigateurs. 

Il permet différentes combinaisons de configuration possibles . Ci-dessous se trouve le xml configuration pour répondre à cette question qui exécutera des scénarios dans deux navigateurs et en parallèle. Vous pouvez également configurer le nombre de threads pour chaque navigateur en tant que configuration xml standard de TestNG. 

<suite name="AUT Test Automation" verbose="0"  parallel="tests">
<test name="Test-on-chrome">
   <parameter name="scenario.file.loc" value="resources/features" />
   <parameter name="driver.name" value="chromeDriver" />           
   <classes>
      <class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" />
   </classes>
</test>

<test name="Test-on-FF">
   <parameter name="scenario.file.loc" value="resources/features" />
   <parameter name="driver.name" value="firefoxDriver" />           
   <classes>
      <class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" />
   </classes>
</test>
</suite>

De plus, BDDTestFactory2 prend en charge la syntaxe dérivée de QAF BDD, Jbehave et gherkin. Il supporte les méta-données de qaf bdd sous forme de balises et d’exemples de gherkin. Vous pouvez tirer parti de fournisseurs de données intégrés pour fournir des données de test au format XML/JSON/CSV/Excel/DB à l'aide de métadonnées dans BDD. 

0
user861594