J'essaie d'exécuter mon cas de test à partir de différentes suites en parallèle à l'aide de la commande

pabot --verbose --processes 3 --variable --variable url:http://xxxxxxxxx:8080  --include Sanity --output original.xml --randomize all TestCases

Il y a deux constatations lors de l'exécution :

  1. Les suites sont exécutées en parallèle et non le cas de test. c'est-à-dire s'il y a deux suites A et B, si A prend 30 minutes pour terminer et B prend 5 minutes pour terminer, le temps d'exécution total est de 30 minutes, simplement parce que chaque processus choisit chaque suite et non les cas de test Comment puis-je exécuter le test cas parallèles et non la Suite parallèle ?
  2. Il crée outputdir séparément pour chaque suite de tests pabot_results\TestCases, ce qui rend difficile la réexécution des cas de test ayant échoué. Comment obtenir un seul fichier output.xml pour toute l'exécution de la suite ?

J'utilise la bibliothèque ci-dessous

robotframework-pabot==0.53
robotframework-seleniumlibrary==3.3.1

1
JCDani 12 mars 2019 à 06:16

2 réponses

Meilleure réponse

Premier point : si vous lisez la page readme de GitHub, dans le " Choses que vous devez savoir", il déclare :

Pabot séparera l'exécution du test des fichiers de la suite et non du niveau de test individuel.

Il n'y a donc rien à faire au niveau des tests, sauf si vous participez au développement de l'outil pour qu'il devienne possible de lancer des tests en parallèle.

Deuxième point : utilisez rebot. Vous pouvez fusionner plusieurs rapports d'exécution de test à l'aide de la commande :

rebot --merge output1.xml output2.xml

Cela générera uniquement un rapport html. Pour obtenir un fichier output.xml fusionné, ajoutez simplement un -o output.xml dans les arguments, comme ceci :

rebot -o output.xml --merge output1.xml output2.xml
5
Nomce 13 mars 2019 à 09:50

Maintenant (après la version 0.57) vous pouvez le faire avec

pabot --testlevelsplit [path to tests]

Lien officiel pour plus d'informations https://github.com/mkorpela/pabot

4
Iman 3 oct. 2020 à 17:00