معلومات المشروع:
ساعة الإيقاف هي امتداد phpunit/phpunit
أساسي لتحليل الأداء!
احصل على رؤى لا تقدر بثمن حول وقت تنفيذ التعليمات البرمجية الخاصة بك وتكرار المكالمات أثناء التشغيل التجريبي. تم تصميم الامتداد لرفع مستوى تحليل أداء التعليمات البرمجية الخاصة بك. تتبع وقت التنفيذ وتكرار أي مقاطع تعليمات برمجية محددة لمعالجة اختناقات الأداء بدقة. يمكنك تحديد اختناقات الأداء (على سبيل المثال، عمليات تنظيف قاعدة البيانات أو الإعداد) أو مجرد مراقبتها بمرور الوقت. سيقوم الملحق بإنشاء تقارير ساعة توقيت لكل اختبار بالإضافة إلى تقرير ملخص في نهاية التشغيل التجريبي.
يوفر هذا المشروع حزمة composer
وأرشيف Phar.
الامتداد متوافق مع الإصدارات التالية من phpunit/phpunit
:
phpunit/phpunit:^10.1.0
phpunit/phpunit:^11.0.0
بمجرد إضافة بعض نقاط القياس إلى الكود الخاص بك، سيتوقف الملحق عن مراقبتها واحتسابها. يتم عرض النتائج لكل اختبار وكتقرير إجمالي في نهاية التشغيل الاختباري.
فيما يلي مثال لكيفية ظهور مخرجات فئة اختبار واحدة:
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)
وفي نهاية التشغيل التجريبي، سوف تحصل على ملخص لجميع ساعات الإيقاف المستخدمة، وسيبدو كما يلي:
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)
ساعة التوقيت سهلة الاستخدام للغاية. كل ما يتطلبه الأمر هو سطر واحد من التعليمات البرمجية الملتف حول الكود الذي تريد قياسه.
على سبيل المثال، لنفترض أن اختباراتك بطيئة جدًا، لكنك لا تعرف من هو المذنب؟ أنت تشك في أنه قد يكون إعداد قاعدة البيانات هو ما يجب إجراؤه لكل اختبار. ما عليك سوى لف كتلة التعليمات البرمجية المشتبه بها على النحو التالي:
Stopwatch:: start ( __METHOD__ );
self :: initializeDatabase (
$ db -> getConnection (),
... static :: createData ()
);
Stopwatch:: stop ( __METHOD__ );
في حالة قيام الاختبار أو الإعداد أو التفكيك أو الطرق الأخرى ذات الصلة بتنفيذ هذا الرمز، ستقوم Stopwatch بقياس وقت التنفيذ والعد بسلاسة، وستقدم النتائج ضمن مخرجات الاختبار.
composer
يجري
composer require --dev teqneers/phpunit-stopwatch
لتثبيت teqneers/phpunit-stopwatch
كحزمة composer
.
قم بتنزيل phpunit-stopwatch.phar
من الإصدار الأخير.
قبل أن تتمكن الإضافة من اكتشاف الاختبارات البطيئة في phpunit/phpunit
، تحتاج إلى تشغيلها. تعتمد آلية التمهيد على إصدار phpunit/phpunit
الذي تستخدمه.
composer
لتشغيل الامتداد كحزمة composer
عند الاستخدام
phpunit/phpunit:^10.0.0
phpunit/phpunit:^11.0.0
اضبط ملف التكوين phpunit.xml
الخاص بك وقم بتكوين
extensions
على phpunit/phpunit:^10.1.0
extensions
على phpunit/phpunit:^11.0.0
+
+
+
test/Unit/
لتمهيد الامتداد باعتباره PHAR عند الاستخدام
phpunit/phpunit:^10.1.0
phpunit/phpunit:^11.0.0
اضبط ملف التكوين phpunit.xml
الخاص بك وقم بتكوين
extensionsDirectory
وعنصر extensions
في phpunit/phpunit:^10.0.0
extensionsDirectory
وعنصر extensions
في phpunit/phpunit:^11.0.0
+ extensionsDirectory="directory/where/you/saved/the/extension/phars"
>
+
+
+
test/Unit/
حتى الآن، لا توجد إعدادات تكوين لهذا الملحق.
عندما تقوم بتمهيد الامتداد، يمكنك إجراء اختباراتك كالمعتاد. على سبيل المثال:
vendor/bin/phpunit
عندما يتم استخدام الامتداد في مكان ما في الكود الخاص بك، فسوف يقدم لك تقريرًا:
يستخدم هذا المشروع ترخيص MIT.
هذه الحزمة مستوحاة من ergebnis/phpunit-slow-test-detector
.