ما هو اختبار الأداء؟
يقيس اختبار الأداء سلوك النظام تحت حمل محدد: زمن الاستجابة (عادةً المئين 95 لا المتوسط)، والإنتاجية (طلبات في الثانية)، ونسبة الأخطاء، مع مراقبة تشبّع المعالج والذاكرة وقاعدة البيانات. يستخدم اختبار الحمل الحركة المتوقعة، ويدفع اختبار الإجهاد إلى ما بعدها لإيجاد نقطة الانهيار، ويثبّت اختبار التحمّل الحمل لساعات لكشف التسريبات، ويفحص اختبار الذروة المفاجئة التعافي من ارتفاع مفاجئ في الحركة.
اقرأ الدليل: ما هو اختبار الأداء؟
كيفية استخدام مقارنة أداء API
- أدخل نقطة النهاية A ونقطة النهاية B (مثل v1 وv2، أو منطقتين جغرافيتين) مع تسميات اختيارية.
- اختر عدد الطلبات لكل نقطة نهاية (≤ 25) والتزامن والطريقة؛ وأضف ترويسات مشتركة عند الحاجة.
- انقر «قارن» (Compare) — يقيس المرحّل A ثم B بالإعدادات نفسها.
- اقرأ الحكم: أي نقطة نهاية أسرع عند الوسيط، وهل الفرق ذو دلالة.
- كرّر التشغيل بعدد أكبر من العيّنات إذا كانت النتيجة «ضمن حدود الضوضاء» (within noise).
مزايا مقارنة أداء API
- يشغّل العيّنة المحدودة نفسها على نقطتي نهاية عامّتين، واحدة تلو الأخرى
- جدول جنباً إلى جنب للوسيط والمتوسط وp90/p95/p99 والحد الأدنى/الأقصى والإنتاجية
- فرق بالنسبة المئوية وعمود «الأفضل» (better) لكل مقياس
- تلميح للدلالة: هل يختلف الوسيطان بنسبة 20% على الأقل وبأكثر من الانحراف المعياري الأكبر؟
- معدل الأخطاء وتفصيل رموز الحالة لكلتا نقطتي النهاية
- مخطط يقارن p50 وp95
مثال على مقارنة أداء API
v1 مقابل v2 لنقطة نهاية بحث
الإدخال:
A: https://api.example.com/v1/search?q=shoes
B: https://api.example.com/v2/search?q=shoes
Requests: 10 eachالنتيجة:
Faster (median): v2 (1.6× at p50)
p50 A → B: -38% · p95 A → B: -41%
Significance: likely real
Median: 412 ms vs 256 ms · p95: 640 ms vs 377 msالأسئلة الشائعة حول مقارنة أداء API
كيف تُضمن عدالة المقارنة؟
تتلقى كلتا نقطتي النهاية الطريقة والترويسات وعدد الطلبات والتزامن نفسها من المرحّل نفسه، وتُشغَّلان واحدة تلو الأخرى حتى لا تتنافسا على عرض النطاق.
ماذا تعني «ضمن حدود الضوضاء» (within noise)؟
أن الوسيطين يختلفان بأقل من 20%، أو بأقل من أكبر الانحرافين المعياريين للتشغيلين، فقد يكون الفرق تبايناً عشوائياً. زد حجم العيّنة أو كرّر التشغيل قبل استخلاص النتائج.
هل يمكنني مقارنة بيئة staging بالإنتاج؟
نعم، ما دام كلا العنوانين عاماً ويُسمح لك بإرسال حفنة من الطلبات إليهما. أبقِ عدد الطلبات منخفضاً مع بيئة الإنتاج.
لماذا نقارن p95 إلى جانب الوسيط؟
قد تتساوى نقطتا نهاية في الوسيط بينما يكون لإحداهما ذيل أثقل بكثير. يعرض عمود p95 تجربة أبطأ المستخدمين.
هل تُقارن أحجام الاستجابات؟
عندما يبلّغ المرحّل عن أحجام الأجسام تظهر في صف إضافي؛ وإلا فاستخدم محلّل حجم الاستجابة على كل عنوان URL.
ملاحظات تقنية
يتجنّب التنفيذ المتتابع تنافس التشغيلين على عرض نطاق المرحّل نفسه، وهو ما كان سيضرّ بأي نقطة نهاية تُشغَّل ثانيةً تحت الحمل. أما المقابل فهو احتمال تغيّر ظروف الشبكة بين التشغيلين؛ لذا لا يَعُدّ تلميح الدلالة الفرق «حقيقياً على الأرجح» (likely real) إلا إذا كان الوسيط الأبطأ 1.2 ضعف الأسرع على الأقل وكان الفرق بينهما أكبر من أكبر الانحرافين المعياريين؛ وما عدا ذلك يُعلَّم بأنه قد يكون ضوضاء.
المراجع
- Apache JMeter User's Manualكيف تُبنى اختبارات الحمل وتُعامَل بالمعاملات وتُشغَّل في JMeter، وكيف تُقرأ مستمعاته وتقاريره.
- Release It! Second Edition: Design and Deploy Production-Ready Software (Michael T. Nygard)أنماط الاستقرار — المهل الزمنية وقواطع الدائرة والحواجز والضغط العكسي — وأنماط الفشل التي يُفترض أن يكشفها اختبار الحمل.
- Site Reliability Engineering: How Google Runs Production Systemsأهداف مستوى الخدمة وميزانيات الخطأ ومراقبة «الإشارات الذهبية الأربع» والتعامل مع الحمل الزائد — الجانب التشغيلي للمرونة.