المعلمات والوظائف والمعاملات في LoadRunner

يمكن للبرنامج النصي المسجل محاكاة مستخدم افتراضي؛ ومع ذلك، فإن مجرد التسجيل قد لا يكون كافيًا لتكرار "سلوك المستخدم الحقيقي".

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

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

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

استخدام المعاملات

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

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

لفتح معاملة، استخدم هذا السطر من التعليمات البرمجية:

lr_start_transaction(“Transaction Name”);

لإغلاق الصفقة، استخدم هذا السطر من التعليمات البرمجية:

lr_end_transaction(“Transaction Name”, <status>);

ال يخبر LoadRunner ما إذا كانت هذه المعاملة المحددة ناجحة أم غير ناجحة. المعلمات المحتملة يمكن أن تكون:

  • LR_AUTO
  • LR_PASS
  • LR_FAIL

على سبيل المثال:

lr_end_transaction("My_Login"، LR_AUTO)؛
lr_end_transaction("001_Opening_Dashboard Name"، LR_PASS);
lr_end_transaction("Business_Workflow_Transaction Name"، LR_FAIL);

نقاط للملاحظة:

  • لا تنس أنك تعمل مع "C" وهي لغة حساسة لحالة الأحرف.
  • حرف النقطة (.) غير مسموح به في اسم المعاملة، على الرغم من أنه يمكنك استخدام المسافات والشرطة السفلية.
  • إذا قمت بتفرع التعليمات البرمجية بشكل جيد وأضفت نقاط فحص للتحقق من الاستجابة من الخادم، فيمكنك استخدام معالجة الأخطاء المخصصة، مثل LR_PASS أو LR_FAIL. بخلاف ذلك، يمكنك استخدام LR_AUTO وسيقوم LoadRunner تلقائيًا بمعالجة خطأ الخادم (HTTP 500، 400 وما إلى ذلك)
  • عند تطبيق المعاملات، تأكد من عدم وجود think_time بيان يجري حصره أو خلاف ذلك فإن معاملتك ستتضمن دائمًا تلك الفترة.
  • نظرًا لأن LoadRunner يتطلب سلسلة ثابتة كاسم معاملة، فإن المشكلة الشائعة عند تطبيق المعاملة هي عدم تطابق السلسلة. إذا أعطيت اسمًا مختلفًا عند فتح وإغلاق الصفقة، فسوف ترتكب خطأين على الأقل. نظرًا لأن المعاملة التي قمت بفتحها لم يتم إغلاقها مطلقًا، فسوف ينتج عن LoadRunner خطأ. علاوة على ذلك، فإن المعاملة التي تحاول إغلاقها لم يتم فتحها مطلقًا، مما أدى إلى حدوث خطأ.
  • هل يمكنك استخدام ذكائك والإجابة على نفسك أي الخطأ أعلاه سيتم الإبلاغ عنه أولاً؟ للتحقق من صحة إجابتك، لماذا لا ترتكب خطأك؟ إذا كانت إجابتك صحيحة، فأنت على الطريق الصحيح. إذا كانت إجابتك خاطئة، فأنت بحاجة إلى التركيز.
  • نظرًا لأن LoadRunner يعتني تلقائيًا بمزامنة الطلبات والاستجابة، فلا داعي للقلق بشأن الاستجابة عند تطبيق المعاملات.

فهم وقت التفكير ونقاط الالتقاء والتعليقات

نقاط الالتقاء

نقاط الالتقاء تعني "نقاط الالتقاء". إنه مجرد سطر واحد من العبارة يخبر LoadRunner بتقديم التزامن. يمكنك إدراج نقاط الالتقاء في البرامج النصية لـ VUser لمحاكاة حمل المستخدم الثقيل على الخادم.

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

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

بناء الجملة: lr_rendesvous("الاسم المنطقي");

أفضل الممارسات:

  • قم ببادئة نقطة الالتقاء بـ "rdv_" لتحسين إمكانية قراءة التعليمات البرمجية؛ على سبيل المثال "rdv_Login"
  • قم بإزالة أي بيانات وقت التفكير الفوري
  • تطبيق نقاط الالتقاء في عرض البرنامج النصي (بعد التسجيل)

نقاط الالتقاء

التعليقات

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

يمكنك إضافة تعليقات

  • أثناء التسجيل (باستخدام الأداة)
  • بعد التسجيل (الكتابة مباشرة بالكود)

أفضل الممارسات: قم بوضع علامة على أي تعليقات أعلى كل ملف نصي

إدراج الوظائف من خلال القائمة

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

يمكنك العثور على شريط أدوات الخطوات ضمن أداة عرض àStepsbox.

إدراج الوظائف من خلال القائمة

سيؤدي هذا إلى فتح نافذة جانبية، انظر إلى اللقطة:

إدراج الوظائف من خلال القائمة

ما هي المعلمة؟

A المعلمة في VUGen عبارة عن حاوية تحتوي على قيمة مسجلة يتم استبدالها لمختلف المستخدمين.

أثناء تنفيذ البرنامج النصي (في VUGen أو وحدة التحكم)، تحل القيمة الواردة من مصدر خارجي (مثل .txt أو XML أو قاعدة البيانات) محل القيمة السابقة للمعلمة.

تعد المعلمات مفيدة في إرسال قيم ديناميكية (أو فريدة) إلى الخادم، على سبيل المثال؛ من المرغوب فيه أن تقوم عملية الأعمال بتشغيل 10 تكرارات مع اختيار اسم مستخدم فريد في كل مرة.

كما أنه يساعد في تحفيز السلوك الحقيقي لنظام الموضوع. ألق نظرة على المثال أدناه:

أمثلة المشكلة:

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

في بعض الأحيان، يقوم تطبيق العميل بتمرير معرف فريد إلى الخادم (على سبيل المثال session_id) لمواصلة العملية (حتى لمستخدم واحد) - في مثل هذه الحالة، تساعد المعلمات.

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

التاريخ الذي تم ترميزه بشكل ثابت في VUser أثناء التسجيل قد لا يكون صالحًا بعد مرور هذا التاريخ. تسمح معلمات التاريخ بتنفيذ VUser بنجاح عن طريق استبدال التاريخ المشفر. تعتبر هذه الحقول أو الطلبات هي المرشحين المناسبين لتحديد المعلمات.

انقر هنا إذا لم يكن من الممكن الوصول إلى الفيديو

إعدادات وقت التشغيل وتأثيرها على محاكاة VU

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

تشغيل المنطق

يحدد Run Logic عدد المرات التي سيتم فيها تنفيذ جميع الإجراءات، باستثناء vuser_init وvuser_end.

ربما يوضح هذا السبب الذي يجعل LoadRunner يقترح الاحتفاظ بكل كود تسجيل الدخول في vuser_init، وجزء تسجيل الخروج في vuser_end، وكلاهما حصريًا.

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

سيقوم جميع مستخدمي VUsers بتسجيل الدخول، وتنفيذ الشاشة المفتوحة، وحساب الإيجار، وإرسال الأموال، والتحقق من الرصيد - ثم - فتح الشاشة مرة أخرى، وحساب الإيجارات... وما إلى ذلك - بالتكرار 10 مرات - متبوعًا بتسجيل الخروج (مرة واحدة).

تشغيل المنطق

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

كم مرة قمت بالنقر فوق "في".box" عند التحقق منك هmail قبل الخروج؟

سرعة

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

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

سرعة

سجل

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

يوفر LoadRunner آلية تسجيل قوية وقوية وقابلة للتطوير من تلقاء نفسها. فهو يسمح لك بالاحتفاظ فقط بـ "السجل القياسي" أو بسجل موسع مفصل وقابل للتكوين أو تعطيله تمامًا.

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

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

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

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

سجل

نصيحة:

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

فكر في الأوقات

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

يساعد Think Time في تكرار سلوك المستخدم حيث لا يمكن لأي مستخدم حقيقي استخدام أي تطبيق مثل الجهاز (VUGen). يقوم VUGen بإنشاء وقت التفكير تلقائيًا. لا يزال لديك التحكم الكامل في إزالة أو مضاعفة أو تقلب مدة وقت التفكير.

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

فكر في الأوقات

إذا كنت تتطلع إلى محاكاة الحمل الشديد على التطبيق، ففكر في تعطيل وقت التفكير تمامًا.

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

فكر في استخدام تحديد وقت التفكير بفترة مشروعة. عادةً ما تكون 30 ثانية كافية إلى حد ما.

محاكاة السرعة

تشير محاكاة السرعة ببساطة إلى سعة النطاق الترددي لكل جهاز عميل.

نظرًا لأننا نحاكي الآلاف من VUser من خلال LoadRunner، فمن المدهش مدى سهولة قيام LoadRunner بالتحكم في محاكاة عرض النطاق الترددي/سرعة الشبكة.

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

محاكاة السرعة

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

محاكاة المتصفح

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

محاكاة المتصفح

هل يمكنك الإجابة على نفسك عندما يكون من المهم حقًا تحديد المتصفح المناسب في هذا التكوين؟

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

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

تنزيل الموارد غير HTML سيسمح لـ LoadRunner بتنزيل أي CSS وJS والوسائط الغنية الأخرى. يجب أن يظل هذا محددًا. ومع ذلك، إذا أردت إزالة هذا من تصميم اختبار الأداء الخاص بك، فيمكنك إلغاء تحديد هذا الخيار.

الوكيل

من الأفضل إزالة الوكيل بالكامل من جهازك اختبار البيئة – هذا سيجعل نتائج الاختبار غير موثوقة. ومع ذلك، قد تواجه مواقف لا مفر منها. في مثل هذه الحالة، يقوم LoadRunner بتسهيل إعدادات الوكيل.

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

الوكيل

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

الوكيل

استخدم هذه الشاشة لتوفير اسم المستخدم وكلمة المرور للمصادقة على الخادم الوكيل. انقر فوق "موافق" لإغلاق الشاشة.

تهانينا. لقد انتهيت من تكوين البرنامج النصي VUGen الخاص بك. لا تنس تكوينه لجميع نصوص VUser الخاصة بك.