ما هو اختبار الحمل؟ (أمثلة)

⚡ ملخص ذكي

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

  • 👥 التعريف الأساسي: اختبار غير وظيفي يطبق ذروة حمل المستخدم المتوقعة ويقيس الاستجابة.
  • ⏱️ المقياس الرئيسي: وقت الاستجابة، والذي يجب أن يكون كمياً، وذا صلة، وواقعياً، وقابلاً للتحقيق، وقابلاً للقياس.
  • ؟؟؟؟ ️ ما يجده: السعة القصوى، وثغرات البنية التحتية، وحدود قاعدة البيانات، ومشاكل التكوين.
  • 📉 الحمل مقابل الإجهاد: يتوقف الحمل عند الذروة المتوقعة؛ ويتجاوز الإجهاد هذه الذروة عمداً للعثور على نقطة الكسر.
  • 🛠️ خيارات الأدوات: JMeter، Gatling و k6 مفتوحا المصدر؛ LoadRunner هو الخيار التجاري المعتمد.
  • 📋 المتطلبات المسبقة: قم بتشغيله فقط بعد أن يصبح التطبيق مستقرًا وظيفيًا، وإلا فإن العيوب ستخفي نتائج الأداء.

ما هو اختبار التحميل؟

ما هو اختبار الحمل؟

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

يحدد هذا الاختبار عادة -

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

إنه نوع من الاختبارات غير الوظيفية. في هندسة البرمجيات، يُستخدم اختبار التحميل بشكل شائع للعميل/الخادم والتطبيقات المستندة إلى الويب - كل من الإنترانت والإنترنت.

اختبار الحمل

لماذا هناك حاجة لاختبار التحميل؟

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

أمثلة على اختبارات التحميل

  • لم يستطع موقع Toysrus.com التعامل مع حجم الزيارات التي ولّدتها حملته الإعلانية، مما أدى إلى خسارة كل من الإنفاق التسويقي والمبيعات التي كان من المفترض أن يحققها.
  • لم يكن موقع الويب الخاص بشركة طيران قادرًا على التعامل مع أكثر من 10000 مستخدم خلال عرض المهرجان.
  • أعلنت دائرة المعارف البريطانية عن إتاحة الوصول المجاني إلى قاعدة بياناتها على الإنترنت كعرض ترويجي. ولم تتمكن من مواكبة هذا التدفق الهائل من الزيارات لأسابيع.

تعاني العديد من المواقع من تأخر أوقات التحميل عندما تواجه حركة مرور كثيفة. بعض الحقائق -

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

لماذا اختبار التحميل؟

  • يمنح اختبار الحمل الثقة في النظام وموثوقيته وأدائه.
  • يساعد اختبار التحميل على تحديد الاختناقات في النظام في ظل سيناريوهات الضغط الشديد على المستخدم قبل حدوثها في بيئة الإنتاج.
  • يوفر اختبار الحمل حماية ممتازة ضد الأداء الضعيف ويستوعب الاستراتيجيات التكميلية لإدارة الأداء ومراقبة بيئة الإنتاج.

أهداف اختبار الحمل

يعمل اختبار التحميل على تحديد المشكلات التالية قبل نقل التطبيق إلى السوق أو الإنتاج:

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

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

متطلبات اختبار التحميل

المقياس الرئيسي لاختبار الحمل هو وقت الاستجابة. قبل البدء في اختبار التحميل، يجب عليك تحديد –

  • ما إذا كان وقت الاستجابة قد تم قياسه ومقارنته بالفعل - كمي
  • ما إذا كان وقت الاستجابة قابلاً للتطبيق على عملية الأعمال - ذو صلة
  • ما إذا كان وقت الاستجابة مبررًا - واقعيًا
  • ما إذا كان وقت الاستجابة يمكن تحقيقه – يمكن تحقيقه
  • ما إذا كان وقت الاستجابة قابلاً للقياس باستخدام أداة أو ساعة توقيت – قابل للقياس

إعداد البيئة قبل اختبار التحميل

منصة الأجهزة برامج التكوين
  • آلات الخادم
  • شركات التصنيع
  • ذاكرة
  • وقد شجعني حقا أن تجد هذا الموقع على شبكة الإنترنت
  • تكوين آلات التحميل
  • تكوين شبكة
  • نظام التشغيل
  • برنامج الخادم

استراتيجيات اختبار التحميل

هناك العديد من الطرق لإجراء اختبار التحميل. فيما يلي بعض استراتيجيات اختبار التحميل:

استراتيجيات اختبار الحمل

  • اختبار الحمل اليدوي: هذه إحدى إستراتيجيات تنفيذ اختبار التحميل، ولكنها لا تنتج نتائج قابلة للتكرار، ولا يمكن أن توفر مستويات قابلة للقياس من الضغط على التطبيق، وهي عملية يستحيل تنسيقها.
  • تم تطوير أدوات اختبار الحمل داخليًا: يمكن للمؤسسة، التي تدرك أهمية اختبار الحمل، أن تبني أدواتها الخاصة لتنفيذ اختبارات الحمل.
  • أدوات اختبار التحميل مفتوحة المصدر: هناك العديد من أدوات اختبار التحميل المتاحة كمصدر مفتوح ومجانية. قد لا تكون متطورة مثل نظيراتها مدفوعة الأجر، ولكن إذا كانت لديك ميزانية محدودة، فهي الخيار الأفضل.
  • أدوات اختبار الحمل على مستوى المؤسسات: أنها تأتي عادة مع إمكانية الالتقاط/التشغيل. أنها تدعم عددا كبيرا من البروتوكولات. يمكنهم محاكاة عدد كبير جدًا من المستخدمين.

كيفية القيام باختبار التحميل

يمكن وصف عملية اختبار الحمل بإيجاز على النحو التالي -

  1. إنشاء ملف اختبار البيئة لاختبار الحمل
  2. حدد سيناريوهات اختبار التحميل
  3. تحديد معاملات اختبار التحميل لأحد التطبيقات
    • إعداد البيانات لكل معاملة
    • يجب التنبؤ بعدد المستخدمين الذين يصلون إلى النظام
    • تحديد سرعات الاتصال. قد يكون بعض المستخدمين متصلين عبر الخطوط المؤجرة بينما قد يستخدم البعض الآخر الطلب الهاتفي
    • تحديد المتصفحات المختلفة وأنظمة التشغيل التي يستخدمها المستخدمون 
    • تكوين لجميع الخوادم مثل الويب والتطبيقات وخوادم قاعدة البيانات
  4. تنفيذ سيناريو الاختبار ومراقبته. جمع المقاييس المختلفة
  5. تحليل النتائج. تقديم توصيات
  6. ضبط النظام
  7. إعادة الاختبار

إرشادات لاختبار التحميل

إرشادات لاختبار الحمل

  1. يجب التخطيط لاختبار التحميل بمجرد أن يصبح التطبيق مستقرًا وظيفيًا.
  2. يجب أن يكون هناك عدد كبير من البيانات الفريدة جاهزة في مجمع البيانات
  3. ينبغي تحديد عدد المستخدمين لكل سيناريو أو نصوص برمجية
  4. تجنب إنشاء سجلات مفصلة للحفاظ على مساحة الإدخال/الإخراج على القرص
  5. حاول تجنب تنزيل الصور في الموقع
  6. في عملية تنفيذ حالات اختبار الحمل، يجب تسجيل تناسق وقت الاستجابة خلال الفترة المنقضية ومقارنته مع عمليات تشغيل الاختبار المختلفة.

الفرق بين اختبار الحمل والإجهاد

اختبار الحمل اختبار الإجهاد
يحدد اختبار الحمل الاختناقات في النظام تحت أعباء العمل المختلفة ويتحقق من كيفية تفاعل النظام عند زيادة الحمل تدريجيًا اختبار الإجهاد يحدد نقطة كسر النظام ليكشف عن النقطة القصوى التي ينكسر بعدها.
للتعرف على الحد الأعلى للنظام، قم بتعيين اتفاقية مستوى الخدمة (SLA) للتطبيق وتحقق من قدرة النظام على التعامل مع الأحمال الثقيلة. للتحقق من كيفية تصرف النظام تحت الأحمال الشديدة وكيف يتعافى من الفشل.
إن توليد حمل متزايد على تطبيق الويب هو الهدف الرئيسي لاختبار التحميل. يهدف اختبار التحمل إلى ضمان عدم تعطل الخوادم في ظل التحميل العالي المفاجئ لفترة طويلة.
السمات التي يتم التحقق منها في اختبار التحميل هي ذروة الأداء وكمية الخادم ووقت الاستجابة. يتحقق هذا النوع من الاختبارات من وقت استجابة الاستقرار، وما إلى ذلك.
في اختبار الحمل، يعتبر حد الحمل بمثابة عتبة الاستراحة. في اختبار التحمل، يكون حد الحمل أعلى من عتبة الكسر.

الفرق بين الاختبار الوظيفي واختبار الحمل

الاختبار الوظيفي اختبار الحمل
يمكن التنبؤ بسهولة بنتائج الاختبارات الوظيفية نظرًا لوجود خطوات وشروط مسبقة مناسبة محددة نتائج اختبارات الحمل لا يمكن التنبؤ بها
تختلف نتائج الاختبارات الوظيفية قليلاً تختلف نتائج اختبار التحميل بشكل كبير
تردد التنفيذ الاختبار الوظيفي سوف تكون عالية سيكون تكرار تنفيذ اختبار الحمل منخفضًا
تعتمد نتائج الاختبارات الوظيفية على بيانات الاختبار يعتمد اختبار التحميل على عدد المستخدمين.

أدوات اختبار الحمل

بي.

برنامج LoadRunner، الذي كان في الأصل من شركة HP وهو الآن جزء من OpenText بعد استحواذ شركة مايكرو فوكس، يقوم البرنامج باختبار التطبيقات تحت ظروف التحميل العادية وظروف ذروة التحميل. ويقوم بتوليد التحميل من خلال مستخدمين افتراضيين يحاكيون حركة مرور الشبكة الحقيقية، ويعرض النتائج بشكل بياني.

قراءة المزيد في برنامج تعليمي لـ LoadRunner.

Apache JMeter

مفتوح المصدر Java أداةٌ تُعدّ الخيار المجاني الأكثر استخدامًا. تدعم بروتوكولات HTTP وJDBC وJMS وFTP وغيرها، وتخزن خطط الاختبار بصيغة XML، وتتكامل مع مسارات التكامل المستمر (CI). انظر JMeter البرنامج التعليمي للحصول على شرح تفصيلي.

جاتلينج

أداة مفتوحة المصدر تُكتب اختباراتها كشفرة برمجية بلغة سكالا أو Java. فهو يتعامل مع التزامن العالي على أجهزة متواضعة وينتج تقارير HTML مفصلة، ​​وهو ما يناسب الفرق التي تفضل نصوص الاختبار التي يتم التحكم في إصداراتها.

k6

أداة مفتوحة المصدر مع اختبارات مكتوبة بلغة Javaنص برمجي مصمم لاختبار الأداء الذي يمتلكه المطورون داخل خط أنابيب التكامل المستمر بدلاً من كونه نشاط ضمان جودة منفصل.

اختيار الأداة

اختيار JMeter للحصول على أوسع تغطية للبروتوكول بدون تكلفة، استخدم Gatling أو k6 عندما يريد الفريق الاحتفاظ بالاختبارات في التحكم في المصدر جنبًا إلى جنب مع التطبيق، وأداة تجارية مثل LoadRunner عندما يبرر دعم بروتوكول المؤسسة ومساعدة البائع الترخيص.

مزايا وعيوب اختبار التحميل

وفيما يلي مزايا اختبار التحميل:

  • تحديد اختناقات الأداء قبل الإنتاج
  • يحسن قابلية التوسع للنظام
  • تقليل المخاطر المتعلقة بتوقف النظام
  • انخفاض تكاليف الفشل
  • زيادة رضا العملاء

عيوب اختبار الحمل:

  • تتطلب معظم الأدوات معرفة بالبرمجة لكتابة سيناريوهات واقعية.
  • يمكن أن تكون الأدوات باهظة الثمن لأن الأسعار تعتمد على عدد المستخدمين الافتراضيين المدعومين.

المؤشرات الرئيسية التي يجب جمعها أثناء اختبار التحميل

يُحدد قسم المتطلبات الأساسية زمن الاستجابة كمقياس رئيسي. عمليًا، يحتاج تقرير اختبار التحميل إلى ستة أرقام، لأن زمن الاستجابة وحده لا يكفي لتحديد سبب تباطؤ النظام.

متري ماذا يخبرك علامة تحذير
متوسط ​​وقت الاستجابة تجربة المستخدم النموذجية يرتفع مع زيادة الحمل
زمن الاستجابة عند النسبة المئوية الخامسة والتسعين تجربة المستخدمين الأبطأ أعلى بكثير من المتوسط
الإنتاجية عدد الطلبات التي تمت معالجتها بنجاح في الثانية التسطح أو السقوط أثناء ارتفاع الحمل
نسبة الخطأ نسبة الطلبات الفاشلة أو التي انتهت مهلتها أي ارتفاع يتجاوز الحد المتفق عليه
المستخدمين المتزامنين تم تحقيق جلسات متزامنة فعلية أقل من السيناريو المقصود
استخدام موارد الخادم مساحة كافية لوحدة المعالجة المركزية والذاكرة والقرص والشبكة أي مورد يزيد عن 80 بالمائة تقريبًا

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

لا تذكر المتوسط ​​وحده. يُشير متوسط ​​زمن استجابة يبلغ 900 مللي ثانية، مع نسبة مئوية 95 تبلغ 1.1 ثانية، إلى نظام متسق. أما المتوسط ​​نفسه، مع نسبة مئوية 95 تبلغ 11 ثانية، فيعني أن مستخدمًا واحدًا من بين كل عشرين مستخدمًا يُعاني من تجربة غير مقبولة، وهو ما يُخفيه المتوسط.

كيف يقارن هذا الاختبار باختبارات الأداء الأخرى

اختبار الأداء هو مجموعة من الاختبارات التي تختلف في شكل الحمل المطبق، وهذا هو السبب في سهولة الخلط بينها.

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

الفرق الأهم هنا: اختبار الحجم يوسع نطاق البيانات، واختبار التحميل يوسع نطاق المستخدمين. إن التقرير الذي يتم تشغيله في ثانيتين على عشرة آلاف صف وفي دقيقتين على عشرة ملايين صف يعاني من مشكلة في الحجم، وليس مشكلة في التحميل، ولن يحلها أي قدر من سعة الخادم الإضافية.

الأسئلة الشائعة

يُطبّق اختبار التحميل الحمل الأقصى المتوقع ويتحقق من تحقيق الأهداف. أما اختبار الإجهاد فيتجاوز القدرة الاستيعابية عمداً لتحديد نقطة الانهيار والتأكد من تعطل النظام ثم استعادته بشكل سليم.

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

JMeterلأنه مجاني، ويدعم نطاقًا واسعًا من البروتوكولات، ويحتوي على أكبر قدر من الوثائق. انتقل إلى Gatling أو k6 إذا كان الفريق يفضل كتابة الاختبارات كشفرة برمجية خاضعة للتحكم في الإصدار.

يستخلص الذكاء الاصطناعي ملفات تعريف واقعية للأحمال من سجلات حركة المرور الإنتاجية، ويكتشف الحالات الشاذة في النتائج تلقائيًا، ويتنبأ بتغييرات التعليمات البرمجية التي من المحتمل أن تؤدي إلى تدهور الأداء قبل جدولة التشغيل.

نعم. تقوم أدوات الذكاء الاصطناعي بتحويل مسارات المستخدم المسجلة أو مواصفات واجهة برمجة التطبيقات إلى نصوص برمجية قابلة للتنفيذ. تحقق من أوقات التفكير المُولَّدة ومعايير البيانات، لأن القيم غير الواقعية تُنتج نتائج مُضلِّلة.

تلخيص هذه التدوينة بـ: