ما هو اختبار الإجهاد في اختبار البرمجيات؟
⚡ ملخص ذكي
يدفع اختبار الإجهاد التطبيق إلى ما وراء حدود تشغيله العادية للعثور على نقطة الانهيار، والتأكد من معالجة حالات الفشل بسلاسة، وإثبات أن النظام يتعافى بشكل سليم بمجرد إزالة الحمل الشديد.

ما هو اختبار الإجهاد؟
اختبار الإجهاد اختبار الإجهاد هو نوع من اختبارات البرمجيات يتحقق من استقرار وموثوقية تطبيق برمجي. يهدف هذا الاختبار إلى قياس مدى متانة البرنامج وقدرته على معالجة الأخطاء في ظل ظروف تحميل عالية للغاية، والتأكد من عدم تعطل البرنامج في حالات الضغط الشديد. يُجرى الاختبار عمدًا خارج نطاق التشغيل العادي، ويُقيّم سلوك البرنامج في ظل ظروف قاسية.
في اختبار الإجهاد، يُعرَّض التطبيق قيد الاختبار (AUT) لضغط شديد لفترة وجيزة لاكتشاف قدرته على التحمل. ويُستخدم اختبار الإجهاد بشكل أساسي لتحديد الحد الذي ينهار عنده النظام أو البرنامج أو الجهاز. كما يتحقق من فعالية النظام في إدارة الأخطاء بعد تجاوز هذا الحد.
In هندسة البرمجياتغالبًا ما يتم إدراج اختبار الإجهاد جنبًا إلى جنب مع اختبار التحمللكنهما يختلفان: اختبار الإجهاد يطبق حملاً عالياً بشكل غير طبيعي في دفعة قصيرة للعثور على نقطة الكسر، بينما اختبار التحمل (النقع) يحمل حملاً معتدلاً لساعات للكشف عن التدهور التدريجي.
تُظهر لقطة الشاشة أدناه كتلة كبيرة من البيانات يتم نسخها من صفحة ويب.
يُختبر التطبيق قيد الاختبار عند نسخ 5 جيجابايت من البيانات من الموقع الإلكتروني ولصقها في برنامج المفكرة. يُظهر برنامج المفكرة الآن رسالة خطأ "لا يستجيب"، تمامًا كما هو موضح في لقطة الشاشة التالية.
وينطبق المبدأ نفسه بشكل مباشر على أنظمة جانب الخادم.
الحاجة إلى اختبار الإجهاد
ضع في اعتبارك الأمثلة التالية التي تُعرض في الوقت الفعلي حيث يصبح استخدام اختبار الإجهاد واضحًا:
- خلال فترة المهرجان، متجر إلكترونيping قد يشهد الموقع زيادة مفاجئة في عدد الزيارات، أو عند الإعلان عن تخفيضات.
- عندما يتم ذكر مدونة في إحدى الصحف الرائدة، فإنها تواجه زيادة مفاجئة في عدد الزيارات.
من الضروري إجراء اختبارات تحمل الضغط لاستيعاب هذه الزيادات المفاجئة في حركة المرور. قد يؤدي عدم استيعاب هذه الحركة المفاجئة إلى خسارة في الإيرادات والسمعة.
يُعد اختبار الإجهاد ذا قيمة كبيرة أيضاً للأسباب التالية:
- يتحقق من عمل النظام في ظل ظروف غير طبيعية.
- يؤكد ذلك عرض رسالة خطأ مناسبة أثناء تعرض النظام للضغط.
- قد يؤدي تعطل النظام في ظل ظروف قاسية إلى خسارة هائلة في الإيرادات.
- من الأفضل الاستعداد للظروف القاسية من خلال إجراء اختبارات الإجهاد مسبقاً.
يوضح القسم التالي ما يجب أن يثبته اختبار الإجهاد الناجح.
أهداف اختبار الإجهاد
يهدف اختبار الإجهاد إلى تحليل سلوك النظام بعد حدوث عطل. ولنجاح هذا الاختبار، يجب أن يعرض النظام رسالة خطأ مناسبة أثناء تعرضه لظروف قاسية.
لإجراء اختبارات الضغط، تُستخدم أحيانًا مجموعات بيانات ضخمة، وقد تُفقد هذه البيانات أثناء تعطل النظام. لذا، يجب على المختبرين التأكد من عدم فقدان هذه البيانات المتعلقة بالأمان أثناء اختبارات الضغط.
الهدف الرئيسي من اختبار الإجهاد هو التأكد من أن النظام يتعافى بعد الفشل، وهي خاصية تسمى قابلية التعافي. اختبار الاسترداد ثم يتحقق من إجراء الترميم بالتفصيل.
اختبار التحميل مقابل اختبار الإجهاد
كلتا التقنيتين تنتميان إلى اختبار أداء بسبب اختلاف العائلات، يسهل الخلط بينهما. يوضح الرسم البياني أدناه الفرق بين نمطي الحمل.
| اختبار الحمل | اختبار الإجهاد |
|---|---|
| اختبار الحمل يختبر سلوك النظام في ظل ظروف عبء العمل العادية؛ فهو يحاكي عبء العمل المتوقع الفعلي. | يختبر اختبار الإجهاد سلوك النظام في ظل ظروف قاسية ويتم إجراؤه حتى يفشل النظام. |
| اختبار التحميل لا يُعطل النظام. | يحاول اختبار الإجهاد عمداً تعطيل النظام عن طريق إغراقه بالبيانات أو عن طريق حرمانه من الموارد. |
تتضمن الملفات الشخصية ذات الصلة ما يلي: اختبار سبايك (انفجار قصير مفاجئ)، اختبار الحجم (بيانات ضخمة بدلاً من عدد كبير من المستخدمين) و اختبار قابلية التوسع (مساحة نمو).
أنواع اختبارات الإجهاد
فيما يلي أنواع اختبارات الإجهاد، مع شرح كل نوع على حدة.
اختبار الإجهاد الموزع
في أنظمة العميل والخادم الموزعة، يتم إجراء الاختبار على جميع العملاء من الخادم. ويتمثل دور خادم الاختبار في توزيع مجموعة من اختبارات الضغط على جميع عملاء الاختبار و tracيتم التحقق من حالة كل عميل. بعد اتصال العميل بالخادم، يُضيف الخادم اسم العميل ويبدأ بإرسال البيانات للاختبار. يوضح الشكل أدناه كيف يصل خادم الاختبار إلى بعض العملاء دون غيرهم.
في هذه الأثناء، تُرسل أجهزة العملاء إشارة، أو نبضة قلب، لتأكيد استمرار اتصالها بالخادم. إذا لم يستقبل الخادم أي إشارة من جهاز عميل، فيجب فحص هذا الجهاز بدقة لتحديد سبب المشكلة. في الشكل، يستطيع الخادم الاتصال بعميلين (العميل 1 والعميل 2)، لكنه لا يستطيع إرسال أو استقبال أي إشارة من العميل 3 والعميل 4.
يُعدّ تشغيل النظام طوال الليل الخيار الأمثل في سيناريوهات اختبار الضغط هذه. تحتاج مزارع الخوادم الكبيرة إلى طريقة أكثر كفاءة لتحديد أجهزة الكمبيوتر التي تعرضت لأعطال ناتجة عن الضغط والتي تتطلب التحقيق.
اختبار إجهاد التطبيق
يركز هذا الاختبار على إيجاد العيوب المتعلقة بقفل البيانات وحظرها، ومشكلات الشبكة، واختناقات الأداء في تطبيق واحد.
اختبار الإجهاد للمعاملات
يُجري هذا البرنامج اختبارات الضغط على معاملة واحدة أو أكثر بين تطبيقين أو أكثر. ويُستخدم لضبط النظام وتحسين أدائه.
اختبار الإجهاد النظامي
هذا اختبار ضغط متكامل يمكن تشغيله على أنظمة متعددة تشترك في نفس الخادم. ويُستخدم لاكتشاف العيوب التي تتسبب فيها إحدى التطبيقات في حجب بيانات تطبيق آخر.
اختبار الإجهاد الاستكشافي
هذا النوع من اختبارات الإجهاد يُستخدم لاختبار النظام في ظل ظروف أو معايير غير اعتيادية من غير المرجح حدوثها في سيناريو واقعي. ويُستخدم لاكتشاف العيوب في المواقف غير المتوقعة مثل:
- قام عدد كبير من المستخدمين بتسجيل الدخول في نفس الوقت.
- برنامج فحص الفيروسات يبدأ تشغيله على جميع الأجهزة في وقت واحد.
- انقطاع الاتصال بقاعدة البيانات أثناء الوصول إليها من موقع ويب.
- يتم إدخال كمية كبيرة من البيانات في قاعدة البيانات في وقت واحد.
أياً كان الخيار المطبق، فإن تسلسل التنفيذ يبقى كما هو.
كيفية القيام باختبار الإجهاد؟
يمكن إجراء عملية اختبار الإجهاد في 5 خطوات رئيسية:
- الخطوة 1) التخطيط لاختبار الإجهاد: هنا تقوم بجمع بيانات النظام، وتحليل النظام، وتحديد أهداف اختبار الإجهاد.
- الخطوة 2) إنشاء البرامج النصية للأتمتة: في هذه المرحلة، تقوم بإنشاء نصوص أتمتة اختبار الإجهاد وتوليد بيانات الاختبار لسيناريوهات الإجهاد.
- الخطوة 3) تنفيذ البرنامج النصي: في هذه المرحلة، تقوم بتشغيل البرامج النصية الآلية لاختبار الإجهاد وتخزين نتائج الإجهاد.
- الخطوة 4) تحليل النتائج: في هذه المرحلة، تقوم بتحليل نتائج اختبار الإجهاد وتحديد نقاط الاختناق.
- الخطوة 5) التعديل والتحسين: في هذه المرحلة، تقوم بضبط النظام بدقة، وتغيير الإعدادات، وتحسين الكود بهدف تحقيق المعيار المطلوب.
أخيرًا، تُعيد تشغيل الدورة بأكملها لتحديد ما إذا كانت التعديلات قد حققت النتائج المرجوة. على سبيل المثال، ليس من غير المألوف الحاجة إلى 3 إلى 4 دورات من عملية اختبار الضغط قبل تحقيق أهداف الأداء، لذلك عادةً ما يتم الاحتفاظ بالبرامج النصية جنبًا إلى جنب مع... تراجع جناح.
الأدوات الموصى بها لاختبارات الإجهاد
تغطي الأدوات الأربع أدناه معظم الاحتياجات، بدءًا من مجموعات البرامج المؤسسية وصولًا إلى خيار مفتوح المصدر مجاني.
بي.
بي. هي أداة اختبار تحميل شائعة الاستخدام، وتباع الآن بواسطة OpenText في إصدارات Professional وEnterprise وCloud بعد الانتقال من HP إلى Micro Focus إلى OpenTextتُعامل نتائج اختبار التحميل التي ينتجها برنامج LoadRunner كمعيار مرجعي.
JMeter
Apache JMeter هي أداة اختبار مفتوحة المصدر. إنها أداة اختبار نقية Java تطبيق لاختبارات الإجهاد والأداء، وهو مصمم لتغطية أنواع الاختبارات مثل اختبارات الحمل والاختبارات الوظيفية واختبارات الإجهاد. الإصدارات الحالية 5.6.x من Apache JMeter تطلب Java 8 أو أحدث، مع Java 17 موصى به.
اختبار الإجهاد
توفر هذه الأداة تحليلاً شاملاً لأداء تطبيقات الويب، وتعرض النتائج بصيغة رسومية، وهي سهلة الاستخدام. لا تتطلب كتابة برامج نصية معقدة، مما يحافظ على عائد الاستثمار عند مستوى معين.tracمناسب للفرق الصغيرة.
Neoحمل
Neoحمل، الآن جزء من Tricentis يُعدّ برنامج Portfolio أداة شائعة لاختبار مواقع الويب و تطبيقات الهاتف المحموليمكنه محاكاة آلاف المستخدمين لتقييم أداء التطبيق تحت الضغط وتحليل أوقات الاستجابة. كما يدعم اختبارات الأداء والحمل والضغط المتكاملة مع الحوسبة السحابية، ويتميز بقابلية التوسع العالية.
ستجد المزيد من الخيارات في الدليل الخاص بـ أدوات اختبار الأداءأياً كان الخيار الذي يتم اختياره، فإن مخرجاته لا تعني شيئاً إلا بالمقارنة مع المقاييس المذكورة أدناه.
مقاييس اختبار الإجهاد
تساعد المقاييس في تقييم أداء النظام، وعادةً ما تُدرس في نهاية اختبار الضغط. تُصنف المقاييس الشائعة الاستخدام إلى ثلاث مجموعات.
قياس قابلية التوسع والأداء
- عدد الصفحات في الثانية: يقيس عدد الصفحات التي تم طلبها في الثانية الواحدة.
- الإنتاجية: مقياس أساسي - حجم بيانات الاستجابة في الثانية.
- جولات: عدد مرات التخطيط لسيناريوهات الاختبار مقابل عدد مرات تنفيذها من قبل العميل.
استجابة التطبيق
- وقت الوصول: متوسط الوقت اللازم لاسترجاع صورة أو صفحة.
- الوقت حتى البايت الأول: الوقت المستغرق لإعادة أول بايت من البيانات أو المعلومات.
- وقت الصفحة: الوقت المستغرق لاسترجاع جميع المعلومات الموجودة على الصفحة.
الفشل
- فشل الاتصالات: عدد الاتصالات الفاشلة التي رفضها العميل (إشارة ضعيفة).
- الجولات الفاشلة: عدد الجولات الفاشلة.
- محاولات فاشلة: عدد المحاولات الفاشلة من قبل النظام (روابط معطلة أو صور غير مرئية).
يسرد القسم الختامي الحالات التي تبرر في أغلب الأحيان إجراء اختبار الإجهاد.
أمثلة على اختبارات الإجهاد
يُعد اختبار التحمل ضروريًا عندما يُتوقع أن يؤدي حدث ما إلى زيادة حركة المرور بشكل كبير يتجاوز خط الأساس اليومي:
- موقع للتجارة الإلكترونية يعلن عن تخفيضات بمناسبة المهرجان.
- موقع إخباري وقت وقوع حدث هام.
- مجلس تعليمي ينشر نتائج الامتحانات.
- مواقع التواصل الاجتماعي والمدونات وتطبيقات الهاتف المحمول خلال لحظة انتشار واسع.
في كل حالة، يراقب الاختبار موارد مثل الذاكرة والمعالج والشبكة، ويتحقق من ظهور رسائل الخطأ المناسبة تحت الضغط، ويؤكد عودة النظام إلى وضعه الطبيعي بعد ذلك. وهو يندرج ضمن دورة حياة اختبار البرمجيات كفحص غير وظيفي إلى جانب اختبار النظام ومجموعة أوسع من أنواع اختبار البرمجيات.

.png)
.png)

