Información del proyecto:
¡Stopwatch es una extensión phpunit/phpunit
esencial para el análisis de rendimiento!
Obtenga información valiosa sobre el tiempo de ejecución de su código y la frecuencia de llamadas durante las ejecuciones de prueba. La extensión está diseñada para mejorar el análisis del rendimiento de su código. Realice un seguimiento del tiempo de ejecución y la frecuencia de cualquier segmento de código marcado para abordar los cuellos de botella de rendimiento con precisión. Puede identificar cuellos de botella en el rendimiento (por ejemplo, limpieza o configuración de bases de datos) o simplemente monitorearlos a lo largo del tiempo. La extensión generará informes de cronómetro para cada prueba, así como un informe resumido al final de la ejecución de la prueba.
Este proyecto proporciona un paquete composer
y un archivo Phar.
La extensión es compatible con las siguientes versiones de phpunit/phpunit
:
phpunit/phpunit:^10.1.0
phpunit/phpunit:^11.0.0
Una vez que haya agregado algunos puntos de medición a su código, la extensión detendrá la vigilancia y los contará. Los resultados se muestran para cada prueba y como un informe total al final de la ejecución de la prueba.
A continuación se muestra un ejemplo de cómo podría verse el resultado de una única clase de prueba:
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)
Y al final de la prueba, obtendrá un resumen de todos los cronómetros utilizados y se verá así:
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)
El cronómetro es muy fácil de usar. Una sola línea de código envuelta alrededor del código que desea medir es todo lo que necesita.
Por ejemplo, digamos que sus pruebas son bastante lentas, pero no sabe quién es el culpable. Sospechas que podría ser la configuración de la base de datos la que se debe realizar para todas y cada una de las pruebas. Simplemente envuelva el bloque de código sospechoso de la siguiente manera:
Stopwatch:: start ( __METHOD__ );
self :: initializeDatabase (
$ db -> getConnection (),
... static :: createData ()
);
Stopwatch:: stop ( __METHOD__ );
Si la prueba, configuración, desmontaje u otros métodos relevantes ejecutan este código, Stopwatch medirá sin problemas su tiempo de ejecución y su conteo, y presentará los resultados dentro del resultado de la prueba.
composer
Correr
composer require --dev teqneers/phpunit-stopwatch
para instalar teqneers/phpunit-stopwatch
como un paquete composer
.
Descargue phpunit-stopwatch.phar
desde la última versión.
Antes de que la extensión pueda detectar pruebas lentas en phpunit/phpunit
, debes iniciarla. El mecanismo de arranque depende de la versión de phpunit/phpunit
que esté utilizando.
composer
Para iniciar la extensión como un paquete composer
cuando se usa
phpunit/phpunit:^10.0.0
phpunit/phpunit:^11.0.0
ajuste su archivo de configuración phpunit.xml
y configure el
extensions
en phpunit/phpunit:^10.1.0
extensions
en phpunit/phpunit:^11.0.0
+
+
+
test/Unit/
Para iniciar la extensión como PHAR cuando se usa
phpunit/phpunit:^10.1.0
phpunit/phpunit:^11.0.0
ajuste su archivo de configuración phpunit.xml
y configure el
extensionsDirectory
y elemento extensions
en phpunit/phpunit:^10.0.0
extensionsDirectory
y elemento extensions
en phpunit/phpunit:^11.0.0
+ extensionsDirectory="directory/where/you/saved/the/extension/phars"
>
+
+
+
test/Unit/
Hasta el momento, no hay opciones de configuración para esta extensión.
Cuando haya iniciado la extensión, podrá ejecutar las pruebas como de costumbre. P.ej:
vendor/bin/phpunit
Cuando la extensión se utiliza en algún lugar de su código, le dará un informe:
Este proyecto utiliza la licencia MIT.
Este paquete está inspirado en ergebnis/phpunit-slow-test-detector
.