تدعم أطر عمل جافا سكريبت الحديثة من جانب العميل ، مثل Angular و Ember و Ext JS و Knockout و Rereact و Vue ، أسس وقواعد التطبيق أحادي الصفحة (SPAs). توفر SPAs للمستخدمين تجربة مستخدم أكثر سلاسة ، مثل ما يمكن للمرء الحصول عليه من استخدام تطبيق ويب ، ومع ذلك ، يمكن أن يكون اختبار تحميل SPA مزعجا باستخدام أدوات مفتوحة المصدر مثل JMeter. توضح هذه المقالة كيفية تعامل حلول اختبار الأحمال مفتوحة المصدر مثل JMeter مع اختبار SPAs وكيف يختلف LoadView ويتغلب على قيود JMeter.

ما هو التطبيق المكون من صفحة واحدة؟

تطبيق صفحة واحدة، أو SPA، هو تطبيق ويب أو موقع ويب واحد بعنوان URL يعمل بالكامل في متصفح ويب. عندما يصل المستخدم إلى تطبيق أو موقع SPA ، يتم تنزيل جميع العناصر ، مثل JavaScript و HTML و CSS وما إلى ذلك. نظرا لهذه الوظيفة ، لا تتطلب SPAs من المتصفح إعادة تحميل الصفحة أو تحديثها في كل مرة ينتقل فيها المستخدم إلى صفحة جديدة ، كما هو الحال تقليديا في التطبيقات متعددة الصفحات (MPAs) اليوم. إذا كانت هناك حاجة إلى بيانات جديدة، يتم تحديث الصفحة ديناميكيا ببيانات جديدة من خادم الويب، دون أن يعرف المستخدم الفرق.

اعتبارات عند تحميل اختبار التطبيقات المكونة من صفحة واحدة

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

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

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

ما هو JMeter؟

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

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

قيود JMeter

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

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

لماذا تستخدم أدوات اختبار الحمل مفتوحة المصدر؟

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

غالبا ما يتم الحفاظ على أدوات اختبار الحمل مفتوحة المصدر من قبل بعض المطورين العظماء وهي مجانية للاستخدام مع شفرة المصدر الخاصة بهم المتاحة للتخصيص حسب حاجتك. يمكنك استخدام الأداة مفتوحة المصدر وتوسيع وظائفها للاستخدام الداخلي. بعض الأدوات الأخرى الشائعة مفتوحة المصدر إلى جانب JMeter هي Gatling و The Grinder و Locust و Tsung و تحميل الويب. توضح القوائم التالية بالتفصيل بعض مزايا وعيوب استخدام الأدوات مفتوحة المصدر التي يجب عليك التحقيق فيها بعناية قبل اختيار أي أداة.

مزايا استخدام أدوات اختبار الحمل مفتوحة المصدر

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

عيوب استخدام أدوات اختبار الحمل مفتوحة المصدر

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

LoadView: أفضل بديل لاختبار الحمل ل JMeter والأدوات مفتوحة المصدر

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

LoadView هي أداة اختبار تحميل مستندة إلى السحابة تقضي على قيود JMeter وغيرها من حلول اختبار الأحمال مفتوحة المصدر. دعونا نرى كيف يقوم LoadView بذلك وما هي الميزات الأخرى التي تجعله متميزا عن أدوات اختبار الحمل الأخرى.

  • واجهة المستخدم. يحتوي LoadView على واجهة مستخدم بسيطة وبديهية وقائمة على الأداة المساعدة بدون منحنى تعلم. يمكنك البدء بسرعة في غضون دقائق من خلال اختبار التحميل.
  • لا توجد برمجة مطلوبة. يأتي LoadView مزودا بميزة الإشارة والنقر تسمى EveryStep Web Recorder ، والتي يمكنك استخدامها لالتقاط إجراءات المستخدم المعقدة مثل نقرات الماوس وضغطات المفاتيح والتنقل في القائمة وما إلى ذلك وإنشاء برامج نصية للاختبار.
  • لا يوجد استثمار مقدما. على عكس JMeter والأدوات الأخرى مفتوحة المصدر ، حيث تحتاج إلى إعداد البنية التحتية الخاصة بك للاختبار وصيانتها ، فإن LoadView هي أداة اختبار تحميل قائمة على السحابة ومدارة بالكامل ، وتدفع وفقا لمتطلبات الاختبار الخاصة بك.
  • المتصفحات والأجهزة الحقيقية. يدعم LoadView أكثر من 40 متعرضا / جهازا لمحاكاة مستخدمي العالم الحقيقي لاختبار التحميل الدقيق.
  • المواقع الجغرافية. باستخدام LoadView ، يمكنك إنشاء حمل من أكثر من 20 موقعا جغرافيا لإنشاء سيناريوهات الاختبار الأكثر واقعية حيث سيأتي المستخدمون من مواقع مختلفة ويختبرون أداء مختلفا.
  • إعداد التقارير. يقوم LoadView بإنشاء تقارير مفصلة لاختبار الأداء مع رؤى مفيدة بحيث يمكنك البدء فورا في تحسين موقع الويب / التطبيق الخاص بك لمشكلات الأداء.

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

تحميل اختبار التطبيقات من صفحة واحدة مع LoadView

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

سيتم إجراء الاختبار في متصفح حقيقي (تتوفر خيارات Chrome أو Edge ) لمحاكاة إجراءات المستخدم الحقيقية وسلوكياته التي توفر نتائج اختبار أكثر واقعية مقارنة بأدوات اختبار الحمل الأخرى.

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

حالات الاستخدام الشائعة لاختبار تحميل التطبيق من صفحة واحدة

لإظهار طبيعة اختبار SPA ، دعنا نفكر في سيناريو اختبار يكرر عملية تغيير بيانات المستخدم في صفحة المستخدمون في قائمة إعدادات حساب Dotcom-Monitor. الصفحة هي مثال نموذجي على SPA.

نظرا لمصادقة صفحة المستخدمين ، نحتاج إلى تسجيل الدخول إلى التطبيق قبل اختبار الصفحة. قد يكون اختبار تسجيل الدخول صعبا بدون متصفح بسبب سمات مصادقة SPA الموضحة من قبل.

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

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

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

ابحث عن مثال للطلبات التي يتم إرسالها إلى الخادم عند تحرير بيانات المستخدم.

الاستنتاج: قيود JMeter عند اختبار الحمل SPAs

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

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

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

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

هل أنت جديد على LoadView؟ جرب الإصدار التجريبي المجاني اليوم واحصل على 20 دولارا في أرصدة اختبار التحميل!