Informations sur le projet :
Stopwatch est une extension phpunit/phpunit
essentielle pour l'analyse des performances !
Obtenez des informations précieuses sur le temps d'exécution de votre code et la fréquence des appels pendant les tests. L'extension est conçue pour améliorer l'analyse des performances de votre code. Suivez le temps d’exécution et la fréquence de tous les segments de code marqués pour résoudre avec précision les goulots d’étranglement des performances. Vous pouvez identifier les goulots d'étranglement des performances (par exemple, nettoyages ou configuration de la base de données) ou simplement les surveiller au fil du temps. L'extension générera des rapports de chronomètre pour chaque test ainsi qu'un rapport récapitulatif à la fin du test.
Ce projet fournit un package composer
et une archive Phar.
L'extension est compatible avec les versions suivantes de phpunit/phpunit
:
phpunit/phpunit:^10.1.0
phpunit/phpunit:^11.0.0
Une fois que vous avez ajouté quelques points de mesure à votre code, l'extension arrêtera de les surveiller et les comptera. Les résultats sont affichés pour chaque test et sous forme de rapport total à la fin du test.
Voici un exemple de ce à quoi pourrait ressembler le résultat d’une seule classe de test :
Stopwatch for TQTestsExampleSingleTest::testDataCalculation:
- TQTestingDatabase::deleteData 0.117secs ( 3x, Ø 0.04) TOTAL 327.026secs ( 184x, Ø 1.78)
- ...onmentTesting::cleanupInstance 0.259secs ( 1x, Ø 0.26) TOTAL 6.159secs ( 60x, Ø 0.10)
- TQTestingDatabase::import 7.889secs ( 11x, Ø 0.72) TOTAL 250.958secs ( 352x, Ø 0.71)
- Test 1.428secs ( 1x, Ø 1.43) TOTAL 1041.228secs ( 70x, Ø 14.87)
.
Stopwatch for TQTestsExampleSingleTest::testDataTransfer:
- TQTestingDatabase::deleteData 0.116secs ( 3x, Ø 0.04) TOTAL 327.142secs ( 187x, Ø 1.75)
- ...onmentTesting::cleanupInstance 0.256secs ( 1x, Ø 0.26) TOTAL 6.415secs ( 61x, Ø 0.11)
- TQTestingDatabase::import 7.573secs ( 11x, Ø 0.69) TOTAL 258.531secs ( 363x, Ø 0.71)
- Test 5.998secs ( 1x, Ø 6.00) TOTAL 1047.226secs ( 71x, Ø 14.75)
.
Stopwatch for TQTestsExampleSingleTest TearDown:
- TQTestingDatabase::deleteData 38.486secs ( 6x, Ø 6.41) TOTAL 365.511secs ( 190x, Ø 1.92)
- ...onmentTesting::cleanupInstance 0.256secs ( 1x, Ø 0.26) TOTAL 6.415secs ( 61x, Ø 0.11)
- TQTestingDatabase::import 7.573secs ( 11x, Ø 0.69) TOTAL 258.531secs ( 363x, Ø 0.71)
- Test 5.998secs ( 1x, Ø 6.00) TOTAL 1047.226secs ( 71x, Ø 14.75)
Et à la fin du test, vous obtiendrez un résumé de tous les chronomètres utilisés, et cela ressemblera à ceci :
Stopwatch TOTALS:
- Test TOTAL 1047.246secs ( 78x, Ø 13.43)
- TQTestingDatabase::deleteData TOTAL 365.511secs ( 190x, Ø 1.92)
- TQTestingDatabase::import TOTAL 258.531secs ( 363x, Ø 0.71)
- ...onmentTesting::cleanupInstance TOTAL 6.416secs ( 62x, Ø 0.10)
- TQProductionMonitoring::ping TOTAL 17.967secs ( 7x, Ø 2.57)
Le chronomètre est très simple à utiliser. Une seule ligne de code enroulée autour du code que vous souhaitez mesurer suffit.
Par exemple, disons que vos tests sont assez lents, mais que vous ne savez pas qui est le coupable ? Vous pensez que c'est peut-être la configuration de la base de données qui doit être effectuée pour chaque test. Enveloppez simplement le bloc de code suspecté comme suit :
Stopwatch:: start ( __METHOD__ );
self :: initializeDatabase (
$ db -> getConnection (),
... static :: createData ()
);
Stopwatch:: stop ( __METHOD__ );
Si le test, la configuration, le démontage ou d'autres méthodes pertinentes exécutent ce code, Stopwatch mesurera de manière transparente son temps et son nombre d'exécution, et présentera les résultats dans la sortie du test.
composer
Courir
composer require --dev teqneers/phpunit-stopwatch
pour installer teqneers/phpunit-stopwatch
en tant que package composer
.
Téléchargez phpunit-stopwatch.phar
à partir de la dernière version.
Avant que l'extension puisse détecter les tests lents dans phpunit/phpunit
, vous devez l'amorcer. Le mécanisme d'amorçage dépend de la version de phpunit/phpunit
que vous utilisez.
composer
Pour amorcer l'extension en tant que package composer
lors de l'utilisation
phpunit/phpunit:^10.0.0
phpunit/phpunit:^11.0.0
ajustez votre fichier de configuration phpunit.xml
et configurez le
extensions
sur phpunit/phpunit:^10.1.0
extensions
sur phpunit/phpunit:^11.0.0
+
+
+
test/Unit/
Pour amorcer l'extension en tant que PHAR lors de l'utilisation
phpunit/phpunit:^10.1.0
phpunit/phpunit:^11.0.0
ajustez votre fichier de configuration phpunit.xml
et configurez le
extensionsDirectory
et élément extensions
sur phpunit/phpunit:^10.0.0
extensionsDirectory
et élément extensions
sur phpunit/phpunit:^11.0.0
+ extensionsDirectory="directory/where/you/saved/the/extension/phars"
>
+
+
+
test/Unit/
Jusqu'à présent, il n'existe aucun paramètre de configuration pour cette extension.
Une fois l’extension démarrée, vous pouvez exécuter vos tests comme d’habitude. Par exemple :
vendor/bin/phpunit
Lorsque l'extension est utilisée quelque part dans votre code, elle vous donnera un rapport :
Ce projet utilise la licence MIT.
Ce package est inspiré de ergebnis/phpunit-slow-test-detector
.