logo

اختبار أداء

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

وفيما يلي المواضيع التي سوف نفهمها في هذا القسم:

ما هو اختبار الأداء؟

هذا هو الجزء الأكثر أهمية في الاختبار غير الوظيفي.

يُعرف التحقق من سلوك التطبيق من خلال تطبيق بعض التحميل باختبار الأداء.

بشكل عام، يحدد هذا الاختبار مدى سرعة استجابة الخادم لطلب المستخدم.

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

وقت الاستجابة: وقت الاستجابة هو الوقت الذي يستغرقه الخادم للرد على طلب العميل.

حمولة: هنا يعني التحميل أنه متى رقم N من المستخدمين الذين يستخدمون التطبيق في وقت واحد أو يرسلون الطلب إلى الخادم في المرة الواحدة.

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

متى نستخدم اختبار الأداء؟

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

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

ملاحظة: لا يمكن إجراء اختبار الأداء يدويًا نظرًا لأنه لا يمكن الحفاظ على نتائجه الدقيقة والمكلفة.

أنواع اختبارات الأداء

فيما يلي أنواع اختبارات الأداء:

اسماء منتجات المكياج
    اختبار الحمل اختبار الإجهاد اختبار قابلية التوسع اختبار الاستقرار
اختبار أداء

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

اختبار الحمل

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

على سبيل المثال: في الصورة أدناه، 1000 مستخدم هي الحمل المطلوب ، والتي يتم تقديمها من قبل العميل، و 3/ثانية هل هدف الذي نريد تحقيقه أثناء إجراء اختبار الحمل.

اختبار أداء

اختبار الإجهاد

اختبار التحمل هو اختبار يتحقق من سلوك التطبيق من خلال تطبيق حمل أكبر من الحمل المطلوب.

على سبيل المثال: إذا أخذنا المثال أعلاه وقمنا بزيادة الحمل المطلوب من 1000 إلى 1100 مستخدم، والهدف هو 4/الثانية. أثناء إجراء اختبار التحمل في هذا السيناريو، سوف ينجح لأن الحمل أكبر (100 أعلى) من الحمل الفعلي المطلوب.

اختبار أداء

اختبار قابلية التوسع

يُعرف التحقق من أداء التطبيق عن طريق زيادة أو تقليل الحمل في مقاييس معينة (عدم وجود مستخدم) باسم اختبار قابلية التوسع . يُطلق على اختبار قابلية التوسع للأعلى واختبار قابلية التوسع للأسفل اختبار قابلية التوسع.

ينقسم اختبار قابلية التوسع إلى قسمين وهما كما يلي:

    اختبار قابلية التوسع التصاعدي اختبار قابلية التوسع الهبوطي

اختبار قابلية التوسع التصاعدي

إنه اختبار حيث نحن زيادة عدد المستخدمين على نطاق معين حتى نصل إلى نقطة الانهيار. سوف نستخدم اختبار قابلية التوسع التصاعدي للعثور على السعة القصوى للتطبيق.

اختبار قابلية التوسع الهبوطي

يتم استخدام اختبار قابلية التوسع الهبوطي عندما لا يتم اجتياز اختبار الحمل، ثم البدء تقليل لا. المستخدمين في فترة زمنية معينة حتى يتحقق الهدف. بحيث يسهل التعرف على عنق الزجاجة (الخلل).

اختبار الاستقرار

التحقق من أداء التطبيق من خلال تطبيق الحمل لمدة معينة من الزمن معروف ب اختبار الاستقرار .

مثال على اختبار الأداء

دعونا نأخذ مثالا واحدا حيث سنفعل اختبار سلوك التطبيق حيث يكون التحميل المطلوب إما أقل من 1000 أو يساوي 1000 مستخدم .

في الصورة أدناه، يمكننا أن نرى أن 100 يصل يتم زيادة المستخدمين بشكل مستمر للتحقق من اقصى حموله ، والذي يسمى أيضًا اختبار قابلية التوسع التصاعدي .

    السيناريو 1:عندما يكون لدينا 1000 مستخدم حسب التحميل المطلوب، ويكون 2.7/ثانية هو وقت الهدف، فسوف تمر هذه السيناريوهات أثناء إجراء اختبار التحميل لأنه في اختبار التحميل، سنركز على الرقم. من المستخدمين، وحسب المتطلب فهو يساوي 1000 مستخدم.السيناريو 2:في السيناريو التالي، سنزيد الحمل المطلوب بمقدار 100 مستخدم، وسيرتفع وقت الهدف إلى 3.5ثانية. سوف يمر هذا السيناريو إذا قمنا باختبار التحمل لأن الحمل الفعلي هنا أكبر من (1100) الحمل المطلوب (1000).السيناريو 3:في هذا، إذا قمنا بزيادة الحمل المطلوب ثلاث مرات
    1200 → 3.5ثانية: [لا يقل عن أو يساوي الحمولة المطلوبة ولهذا السبب يفشل ]
    1300 → 4ثانية: [أن لا يقل أو يساوي الحمولة المطلوبة. أي.، يفشل ]
    1400 → تحطمت
اختبار أداء

ملاحظة 1: اختبار الحجم والنقع هو نوع من الاختبار ولكنه ليس اختبار الأداء.

اختبار الحجم

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

Note2:
الحجم هو سعة بينما الحمل هو كمية، أي أن اختبار الحمل يعني لا. من المستخدمين، واختبار الحجم يعني كمية البيانات.

اختبار النقع

في هذا النوع من الاختبارات، سوف نتحقق من سلوك التطبيق على البيئة، والذي يكون غير داعم لفترة طويلة من الوقت يُعرف باسم اختبار النقع.

بشكل عام، يعد اختبار النقع نوعًا سلبيًا من الاختبار لأننا نعلم بالفعل أن الخادم أو البيئة غير داعمة.

عملية اختبار الأداء

لا يمكن إجراء اختبار الأداء يدويًا نظرًا لما يلي:

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

سيتم إكمال عملية اختبار الأداء في الخطوات التالية:

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

إذا قمنا بإجراء تدفق إيجابي لعملية اختبار الأداء، يمكن أن تتبع العملية التالية:

10 بالمئة من 60

تحديد سيناريوهات الأداء

أولاً، سوف نقوم بتحديد سيناريوهات الأداء بناءً على العوامل التالية:

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

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

معاملات البيانات الضخمة: إذا كان لدينا بيانات ضخمة فهذا يعني أن عدد المستخدمين الذين يستخدمون التطبيق في نفس الوقت.

بمجرد أن نحدد سيناريوهات الأداء، سننتقل إلى الخطوة التالية.

تخطيط وتصميم البرنامج النصي لاختبار الأداء

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

بعد الانتهاء من كتابة السيناريو، سننتقل إلى الخطوة التالية.

أورفي جاويد

تكوين بيئة الاختبار وتوزيع الحمل

بعد كتابة نصوص الاختبار، سنقوم بترتيب بيئة الاختبار قبل التنفيذ. وأيضًا إدارة الأدوات والموارد الأخرى وتوزيع الحمل وفقًا لـ 'نمط الاستخدام' أو ذكر المدة والاستقرار.

تنفيذ البرامج النصية للاختبار

بمجرد الانتهاء من توزيع التحميل، سنقوم بتنفيذ البرامج النصية للاختبار والتحقق من صحتها ومراقبتها.

نتيجة

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

إذا كانت الاستجابة لا تفي بالاستجابة الزمنية المطلوبة، فسنذهب إلى التدفق السلبي حيث سيتم تنفيذ الخطوات التالية:

نتيجة التحليل

أولاً، سنقوم بتحليل نتيجة الاختبار سواء كانت متوافقة مع زمن الاستجابة أم لا.

تحديد عنق الزجاجة

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

إعادة تشغيل الاختبار

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

تحدث المشكلة في اختبار الأداء

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

مشاكل الأداء هي كما يلي:

    مشكلة وقت الاستجابة مشكلة قابلية التوسع عنق الزجاجة قضية السرعة

مشكلة وقت الاستجابة

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

مشكلة قابلية التوسع

تحدث مشكلات قابلية التوسع عندما يتعذر على التطبيق استيعاب العدد n من المستخدمين وطلبات المستخدمين المتوقعة في نفس الوقت. لهذا السبب سنفعل اختبار قابلية التوسع التصاعدي (تحقق من السعة القصوى للتطبيق) و اختبار قابلية التوسع النزولي (عندما لا يتطابق الوقت المتوقع مع الوقت الفعلي).

عنق الزجاجة

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

الأسباب الرئيسية للاختناقات هي مشكلات البرامج (مشكلة تتعلق بنظام التشغيل)، مشكلات الأجهزة (مشاكل تتعلق بالقرص الصلب، ذاكرة الوصول العشوائي والمعالج)، و مشكلة الترميز, إلخ.

فيما يلي اختناقات الأداء الأكثر شيوعًا:

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

قضايا السرعة

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

أدوات اختبار الأداء

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

الأدوات التجارية: LoadRunner[HP]، WebLOAD، NeoLoad

أداة مفتوحة المصدر: JMeter

تحميلRunner

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

فهو يحدد بسرعة الأسباب الأكثر شيوعًا لمشكلات الأداء. وأيضًا التنبؤ بدقة بقابلية تطوير التطبيق وقدرته.

JMeter

يعد برنامج Apache JMeter أداة مفتوحة المصدر، وهي عبارة عن تطبيق Java بالكامل مصمم لتحميل سلوك الاختبار الوظيفي وقياس الأداء.

بشكل عام، تم تصميمه لاختبار تطبيقات الويب ولكنه تم توسيعه الآن ليشمل وظائف اختبار أخرى أيضًا.

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

تحميل الويب

أداة اختبار WebLOAD تُستخدم لاختبار تطبيقات الويب لاختبار الحمل واختبار الأداء واختبار التحمل.

تجمع أداة WebLOAD بين الأداء وقابلية التوسع والنزاهة كعملية واحدة للتحقق من تطبيقات الويب والهاتف المحمول.

NeoLoad

يقوم Neotys بتطوير أداة اختبار تسمى NeoLoad. يتم استخدام NeoLoad لاختبار سيناريوهات اختبار الأداء. بمساعدة NeoLoad، يمكننا العثور على مناطق الاختناق في الويب وعملية تطوير تطبيقات الهاتف المحمول.

جافا سكريبت نافذة.فتح

تعد أداة اختبار NeoLoad أسرع مقارنة بالأدوات التقليدية.

وبصرف النظر عنهم، هناك بعض الأدوات الأخرى الحمل الكهربائي، وأداة ضغط الويب، وLoadUI Pro، وStresStimulus، وLoadView، وLoadNinja، وRedLine13، مما يساعد على اختبار أداء البرنامج أو التطبيق.