2017-05-20 2 views
1

J'utilise TestNG (dans Netbeans 8) pour tester une implémentation Java Keccak et la suite de tests contient actuellement 51 840 tests. Lorsque je demande à TestNG d'exécuter chaque test dans le package, l'utilisation du processeur chatouille initialement le plafond de 100% et le compteur de test grimpe comme une fusée. Mais au bout d'une minute, l'utilisation de l'unité centrale diminue et semble heureuse de rester entre 30% et 60%, et le compteur de test grimpe à un rythme frustrant, plus lent. Les tests sont tous de même nature (opérations binaires pour le calcul du hachage), et TestNG a été chargé de fonctionner en mode parallèle, les éléments suivants étant trouvés dans le NGSuite (l'utilisation du processeur est signalée par KDE System Monitor.)TestNG utilise uniquement le quad core pour une durée limitée

.xml:

<suite name="Cryptography" verbose="1" parallel="classes" thread-count="8"> 

autres ont-ils vu ce comportement, et est-il une explication établie pour elle?

Répondre

1

TestNG fonctionne en 2 étapes:

  1. Configuration, où il cherche des tests et de les trier.
  2. Exécuter des tests, en fonction de la configuration.

L'étape 1 peut consommer beaucoup parce que TestNG doit analyser le classpath afin de trouver des tests et il construit son graphe de tests, ce qui peut prendre du temps lorsque vous avez beaucoup de tests.

Fyi, certains problèmes de perf existent déjà: https://github.com/cbeust/testng/issues?q=is%3Aopen+is%3Aissue+label%3Aperf%2Fenhancement

+0

Je soupçonne que ce n'est pas testng faire la différence lorsque la CPU est en cours d'exécution à 100% sur les quatre cœurs, car le compteur grimpe de manière impressionnante rapidement, alors que l'utilisation du processeur montre à 100%, et le taux de montée devient visiblement lent car le taux de CPU dérive vers 35%. Basé sur les problèmes en suspens que vous liez, il semble que TestNG pourrait perdre de son intérêt lorsque le nombre de tests est très élevé. Ce n'est pas un désastre, mais ce serait bien de voir toute la ressource CPU utilisée tout au long du test. – Bobulous

+0

N'hésitez pas à partager vos observations sur les questions appropriées si vous en avez. Peut-être que cela pourrait aider à comprendre/résoudre le problème :) – juherr