سؤال

نحن نعمل على تطوير اختبارات الانحدار الآلية باستخدام VMWare وNUnit.لقد قسمنا الاختبارات إلى خطوات، والآن أود أن يتم فحص كل خطوة من أجل تراجع الأداء.إن مجرد توقيت الاختبارات، كما تفعل NUnit، لا يبدو موثوقًا به.لقد وجدت أن عامل القبول يبلغ حوالي 15% ولكن خطواتنا يمكن أن تختلف أحيانًا إلى أكثر من 35%.في مثل هذه البيئة الاختبارية المعتمدة على الموارد، هل هناك أي طريقة متسقة لاختبار الأداء؟هل نظام التوقيت "الذكي" هو خياري الوحيد؟

هل كانت مفيدة؟

المحلول

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

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

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

نصائح أخرى

يمكنك الاطلاع على الميزات المتاحة باستخدام أداة مثل Ants Profiler لأنها توفر أوقات تنفيذ/تشغيل للطريقة، لكنني لست متأكدًا مما تقدمه فيما يتعلق بالاختبار المتكرر.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top