المعالج في JMeter: المعالج المسبق والمعالج اللاحق
⚡ ملخص ذكي
المعالج في JMeter يقوم المعالج المسبق بتعديل طلبات أخذ العينات قبل التنفيذ أو بعده. يقوم المعالج المسبق بإعداد بيانات الطلب، بينما يقوم المعالج اللاحق بـtracقيم ts وعناصر التحكم في تدفق الاختبار، مما يتيح الارتباط، والمعايرة الديناميكية، وسلوك اختبار الأداء الموثوق به.

معالج في Apache JMeter هو عنصر من عناصر خطة الاختبار يقوم بتعديل أدوات أخذ العينات ضمن نطاقه. ويتم تشغيله تلقائيًا، إما قبل مغادرة الطلب مباشرةً. JMeter أو مباشرة بعد وصول الرد، مما يجعلها الآلية الرئيسية للتعامل مع البيانات الديناميكية أثناء تجربة أداء.
هناك نوعين من المعالجات:
- المعالج
- معالج آخر
يحدد نطاق عمل المعالج مدى وصوله. المعالج الموضوع مباشرة تحت خطة اختبار أو أن مجموعة الخيوط تنطبق على كل عينة فرعية منها، بينما يؤثر المعالج المتداخل داخل عينة فرعية واحدة على ذلك الطلب فقط. إن فهم هذه القاعدة يمنع أخطاء التكوين المذكورة في قسم استكشاف الأخطاء وإصلاحها في هذه الصفحة.
المعالج
يقوم المعالج المسبق بتنفيذ بعض الإجراءات قبل تقديم طلب العينات.
فكر في مثال بسيط: لنفترض أنك تريد ذلك JMeter إلى "العنكبوت" من خلال الموقع قيد الاختبار، تحليل الرابط (تحقق من جميع الروابط الموجودة على الصفحة) و عائد أعلى HTML. يمكنك إضافة بعض الإجراءات مثل "محلل ارتباط HTML" إلى وحدة التحكم الخاصة بك قبل إنشاء طلب HTTP.
يوضح الرسم التخطيطي أعلاه المعالج المسبق الذي يقع بين وحدة التحكم والطلب الصادر. ولأنه يعمل أولاً، فهو المكان الصحيح لإنشاء بيانات الطلب: توليد طابع زمني، وقراءة قيمة من عمود CSV، وإعادة كتابة مُعرّف الجلسة في URLأو تعيين بيانات اعتماد مختلفة لكل مستخدم افتراضي.
معالج آخر
ينفذ المعالج اللاحق بعض الإجراءات بعد تقديم طلب أخذ العينات.
خذ مثالاً بسيطًا: JMeter يرسل طلب HTTP إلى خادم الويب قيد الاختبار (إلخ www.google.com) والحصول على الرد. انت تريد JMeter لإيقاف الاختبار إذا كانت استجابة الخادم خطأً. يمكنك استخدام معالج ما بعد المعالجة لتنفيذ المهمة المذكورة أعلاه كما يلي:
كما يوضح الرسم التخطيطي الثاني، يقرأ المعالج اللاحق الاستجابة بعد اكتمال عملية أخذ العينات. وهذا هو الحل القياسي لمسألة الارتباط. فعندما يُعيد الخادم رمزًا مميزًا أو مُعرّف جلسة أو رقم طلب يتغير في كل تشغيل، يقوم المعالج اللاحق بالتقاط تلك القيمة في JMeter متغير بحيث يمكن لأداة أخذ العينات التالية إعادة استخدامه.
أنواع المعالجات المسبقة في JMeter
Apache JMeter تأتي مزودة بمجموعة صغيرة من المعالجات المسبقة. كل منها يُعدّ عينة بطريقة مختلفة، لذا فإن اختيار العنصر المناسب يحافظ على خطة الاختبار قابلة للقراءة وسهلة الصيانة.
- مهلة العينة: يُحدد هذا الخيار الحد الأقصى لمدة الطلب. أي عينة تستغرق مدة أطول من القيمة المُحددة تُعتبر فاشلة.
- معلمات المستخدم: يقوم بتعيين قيم محددة للمتغيرات لكل مستخدم افتراضي، بحيث يرسل كل مؤشر ترابط مجموعة البيانات الخاصة به.
- محلل روابط HTML: يقوم برنامج الزحف بفحص الصفحة قيد الاختبار، وتحليل الروابط التي يعثر عليها، وإدخالها في طلب HTTP التالي.
- HTTP URL مُعدِّل إعادة الكتابة: يقوم بإدخال مُعرّف الجلسة في URL للتطبيقات التي tracجلسات k بدون ملفات تعريف الارتباط.
- معلمات المستخدم للتعبيرات النمطية: يقوم بتعبئة معلمات الطلب باستخدام القيم التي تم التقاطها بواسطة تعبير نمطي من استجابة سابقة.
- معالج JDBC المسبق: يقوم بتشغيل عبارة SQL قبل أداة أخذ العينات، وهو أمر مفيد لتهيئة أو إعادة ضبط سجلات قاعدة البيانات.
- معالج JSR223 المسبق: ينفذ أ Groovy or Java نص برمجي لأي منطق تحضير مخصص. يحل هذا النص محل معالج BeanShell PreProcessor القديم ويؤدي أداءً أفضل بكثير تحت الضغط.
💡 نصيحة: يفضل استخدام معالج JSR223 المسبق مع Groovy لغة فوق BeanShell. Groovy يتم تجميع البرامج النصية وتخزينها مؤقتًا، لذا فهي تستهلك موارد أقل بكثير من وحدة المعالجة المركزية عند تشغيل آلاف الخيوط بالتوازي.
أنواع المعالجات اللاحقة في JMeter
تنقسم معالجات ما بعد المعالجة إلى مجموعتين: مثالtracتتضمن هذه العناصر أدوات استخراج القيم من الاستجابة، ومعالجات تتفاعل مع نتائج أداة أخذ العينات. يوضح الجدول أدناه كيفية ربط كل عنصر بتنسيق الاستجابة الأنسب له.
| معالج لاحق | أفضل مناسب لـ | استخدام نموذجي |
| التعبير النمطي مثالtracتور | أي رد نصي | التقاط الرموز أو المعرفات من HTML والنص العادي |
| حدود إكسtracتور | أي رد نصي | التقاط قيمة باستخدام حدود يسارية ويمينية بدلاً من تعبير نمطي كامل |
| مثال JSONtracتور | استجابات JSON | قراءة الحقول من حمولات REST أثناء اختبار API |
| مثال CSS/jQuerytracتور | استجابات HTML | تحديد عنصر باستخدام مُحدِّد CSS |
| مثال XPathtracتور | استجابات XML و XHTML | التنقل في شجرة المستندات المنظمة |
| معالج JDBC اللاحق | نتائج قاعدة البيانات | التحقق من الصفوف أو تنظيفها بعد الطلب |
| معالج ما بعد المعالجة JSR223 | أي رد | تحليل وتأكيدات مخصصة مكتوبة برمجياً |
| معالج الإجراء لحالة النتيجة | أي رد | قلة النومping خيط أو الاختبار بأكمله عند فشل أداة أخذ العينات |
الحدود إكسtracوصل تور إلى JMeter 4.0 وغالبًا ما يكون الخيار الأسرع للكتابة، لأنه يطلب فقط النص الموجود مباشرةً على يسار ويمين القيمة. التعبير النمطي Extracيظل برنامج Tor الخيار الأكثر مرونة عندما تختلف العلامات المحيطة بين الاستجابات.
الفرق بين المعالج المسبق والمعالج اللاحق
يشترك العنصران في نفس قواعد النطاق، لكنهما يحلان مشكلتين مختلفتين. يوضح الجدول أدناه الفرق بينهما قبل عرض المثال العملي.
| معامل | المعالج | معالج لاحق |
| وقت التنفيذ | يتم تشغيله قبل أن يرسل برنامج أخذ العينات طلبه | يتم تشغيله بعد أن يتلقى جهاز أخذ العينات استجابته |
| الغرض الأساسي | يقوم بإعداد وتعديل بيانات الطلب | يقرأ بيانات الاستجابة ويتفاعل معها |
| العناصر النموذجية | معلمات المستخدم، محلل روابط HTML، معالج JSR223 المسبق | التعبير النمطي مثالtracتور، JSON Extracتور، معالج إجراءات حالة النتيجة |
| التأثير على التدفق | لا يمكن إيقاف الاختبار، بل يتم فقط تشكيل الطلب | يمكن إيقاف عملية واحدة أو تشغيل الاختبار بالكامل |
| هدف مشترك | البارامتر | الارتباط ومعالجة الأخطاء |
عمليًا، يعمل الاثنان معًا. يقوم معالج ما بعد المعالجة (PostProcessor) بالتقاط رمز الجلسة من استجابة تسجيل الدخول، بينما يقوم معالج ما قبل المعالجة (PreProcessor) في الطلب التالي بإضافة هذا الرمز قبل إرسال الاستدعاء. يوضح المثال التالي جانب معالج ما بعد المعالجة من هذا النمط.
مثال على ما بعد المعالج
سيوضح لك هذا البرنامج التعليمي إرشادات خطوة بخطوة حول كيفية استخدام Post-processor في JMeter. لنبدأ بنص الاختبار البسيط.
- JMeter يرسل طلب HTTP إلى خادم الويب قيد الاختبار www.google.com.
- JMeter يتلقى ردًا من Google الخادم.
- إذا كانت استجابة الخادم خطا, JMeter سوف توقف الاختبار.
- إذا استجابة الخادم OK (لا يوجد خطأ)، JMeter سوف استمر الاختبار.
هو، هنا، خريطة طريق من هذا المثال:
شرط مسبق:
We إعادة استخدام الخطوة 1 والخطوة 2 في المقالة JMeter اختبار أداء. إذا JMeter لم يتم تثبيته بعد، اتبع التعليمات JMeter دليل التثبيت لأول مرة.
الخطوة 1) إضافة مجموعة المواضيع
انقر بالزر الأيمن على خطة اختبار وأضف مجموعة سلاسل رسائل جديدة: إضافة -> المواضيع (المستخدمين) -> مجموعة الخيوط
ولكن في لوحة تحكم Thread Group، أدخل خصائص الموضوع كما يلي:
يتيح لك هذا الإعداد JMeter خلق 10 طلب المستخدم ل http://www.google.com 10 .
الخطوة 2) إضافة JMeter عناصر
- إضافة طلب HTTP الافتراضي
- إضافة طلب HTTP
ما زلنا نصنع JMeter ارسل طلب http://www.google.com إلى Google الخادم.
الخطوة 3) إضافة عنصر ما بعد المعالج
انقر بزر الماوس الأيمن مجموعة الخيوط -> إضافة -> معالج آخر -> معالج الإجراء لحالة النتيجة
معالج الإجراء لحالة النتيجة يسمح للمستخدم بإيقاف الموضوع أو الاختبار بأكمله في حالة فشل طلب المستخدم.
في جزء معالجة إجراء حالة النتيجة، اختر أوقف الاختبار الآن. سيؤدي هذا التحديد إلى إيقاف الاختبار إذا JMeter الحصول على الخطأ من استجابة الخادم.
الخطوة 4) تكوين طلب HTTP
افتح لوحة طلب HTTP. يدخل "abc" إلى حقل المسار
عندما تدخل "abc" إلى الطريق، JMeter سيخلق URL طلب ل Google الخادم: http://www.google.com/abc. هذا URL غير موجود على Google الخادم. إنه خاطئ URL لذا، أطلب ذلك Google سيعيد الخادم خطأً.
الخطوة 5) إضافة عرض شجرة النتائج
انقر بزر الماوس الأيمن مجموعة الخيوط -> إضافة -> مستمع -> عرض شجرة النتائج
الخطوة 6) تشغيل الاختبار
حدد عرض شجرة النتائج، ثم اضغط على زر تشغيل في شريط القائمة. سوف ترى خطأ رد من Google سيتوقف الخادم والاختبار بدون إكمال 100 موضوع.
عد الآن إلى الخطوة 4، افتح جزء طلب HTTP، وأدخل "تقويمنا"إلى الجزء. التي تجعل JMeter خلق URL طلب https://calendar.google.com/calendar/u/0/r إلى Google الخادم. هذا هو تصحيح URL لذا، أطلب ذلك Google سيعيد الخادم رسالة OK (بدون خطأ).
حدد عرض شجرة النتائج، ثم اضغط على زر تشغيل في شريط القائمة. سوف ترى OK رد من Google سيستمر تشغيل الخادم والاختبار حتى اكتمال جميع الخيوط المئة.
مضيفا التأكيد إلى جانب معالج إجراء حالة النتيجة، يجعل الفحص أكثر صرامة، لأنه يمكن أن يفشل التأكيد في أخذ عينة أعادت HTTP 200 ولكنها سلمت المحتوى الخاطئ.
فحص الجهاز
إذا واجهت المشكلة أثناء تشغيل السيناريو أعلاه، قم بما يلي:
- تحقق مما إذا كنت متصلاً بالإنترنت عبر وكيل. إذا كانت الإجابة بنعم، قم بإزالة الوكيل.
- افتح مثيلًا جديدًا لـ Jmeter
- فتح ProcessorTestPlan.jmx في جيميتر
- Double-انقر على مجموعة المواضيع -> عرض شجرة النتائج
- قم بتشغيل الاختبار
إذا بدا أن معالج ما بعد المعالجة لا يقوم بأي شيء، فتحقق من موقعه أولاً. معالج ما بعد المعالجة الموضوع خارج نطاق أداة أخذ العينات التي يستهدفها لا يعمل أبدًا، وهو السبب الأكثر شيوعًا لظهور ملف ex فارغ.tracمتغير تيد. عناصر ذات صلة مثل وحدات التحكم و الاختبار الموزع اتبع نفس منطق النطاق.









.gif)

.gif)