خادم وكيل HTTP في JMeter: سجل مثال البرنامج النصي
⚡ ملخص ذكي
JMeter يسجل خادم وكيل HTTP نشاط المتصفح في نص برمجي قابل لإعادة الاستخدام. يقع المسجل بين المتصفح والموقع الإلكتروني، ويلتقط كل طلب في وحدة تحكم التسجيل، ويتم إعادة تشغيل الخطة المحفوظة بواسطة العديد من المستخدمين الافتراضيين.

ما هو JMeter خادم وكيل HTTP؟
استخدم JMeter خادم وكيل HTTP هو مسجل مدمج يعمل كوسيط بين المتصفح والموقع الإلكتروني قيد الاختبار. يراقب ويسجل نشاط المستخدم أثناء تصفح التطبيق بشكل طبيعي، ويحول كل طلب يتم التقاطه إلى عينة من طلبات HTTP داخل خطة الاختبار. JMeter 3.0 تم تسمية العنصر بـ مسجل نصوص اختبار HTTP(S)وكلا الاسمين يصفان نفس المكون.
القيد تجريب يساعد هذا النظام المختبِر على تسجيل وإعادة تشغيل النشاط على هدف الاختبار. وهو نوع من أنواع الاختبار الآلي، ولكنه مخصص لعدة مستخدمين في وقت واحد.
لماذا التسجيل بدلاً من كتابة السيناريو يدويًا؟
ينتج عن تجربة المستخدم الواقعية على موقع حديث عشرات الطلبات، لكل منها رؤوسها وملفات تعريف الارتباط ومعلمات النموذج الخاصة بها. شكرًاping إدخال كل ذلك في أجهزة أخذ العينات يدويًا عملية بطيئة وعرضة للأخطاء. أما التسجيل فيلتقط حركة البيانات التي أرسلها المتصفح بدقة، مما يوفر ثلاث مزايا:
- دقة: يتم التقاط ترتيب العناوين وملفات تعريف الارتباط وحقول النموذج المخفية تمامًا كما استقبلها الخادم.
- سرعة: تستغرق رحلة من عشر صفحات دقائق لتسجيلها وساعات لكتابتها يدوياً.
- تغطية: تظهر استدعاءات AJAX التي تتم في الخلفية والتي لا تظهر في واجهة المستخدم في التسجيل.
يُعد التسجيل نقطة انطلاق وليس اختبارًا نهائيًا. لا يزال بحاجة إلى تنظيف وتنسيق وتحديد معايير قبل أن يصبح قابلاً للاستخدام. اختبار الحملتغطي الأقسام أدناه المسار الكامل من حالة فارغة JMeter نافذة لعرض نص برمجي يُعاد تشغيله بشكل موثوق.
هو، هنا، خريطة طريق على هذا المثال العملي
كيفية تسجيل نص في JMeter 5.x
الإصدار الحالي هو Apache JMeter 5.6.3، المنشور في 9 يناير 2024، ويتطلب ذلك Java 8 أو أحدث، مع Java يُوصى بالإصدار 17. لن يجد أي شخص يتبع الشرح المصور في أسفل هذه الصفحة حول ذلك الإصدار عقدة WorkBench، لأنها أُزيلت في الإصدار 5.0. لم تختفِ الوظيفة، بل نُقلت. يُضاف المُسجِّل الآن مباشرةً إلى خطة الاختبار ويُسمى مُسجِّل نص اختبار HTTP(S).
أسرع طريقة هي استخدام القالب المرفق. اختر قم بتقديم > > تسجيل و JMeter يُنشئ البرنامج خطة كاملة تتضمن مجموعة خيوط، وإعدادات افتراضية لطلبات HTTP، ووحدة تحكم التسجيل، وجهاز التسجيل نفسه، وكلها موصولة ببعضها مسبقًا. أما بناء نفس البنية يدويًا فيتطلب الخطوات التالية.
- قم ببناء الهيكل الأساسي للخطة. أضف مجموعة خيوط، ثم أضف وحدة تحكم تسجيل أسفلها. هذا هو المكان الذي ستُخزَّن فيه عينات الصوت الملتقطة.
- أضف جهاز التسجيل إلى خطة الاختبار. انقر بزر الماوس الأيمن على عقدة خطة الاختبار واختر إضافة > عناصر غير الاختبار > مسجل نصوص اختبار HTTP(S)إنها شقيقة لمجموعة الخيوط، وليست فرعاً منها.
- قم بتعيين المنفذ. المنفذ الافتراضي هو 8888. أي منفذ متاح يعمل، بشرط أن يكون المتصفح مهيأً ليتوافق معه.
- اختيار Target المراقب المالي. حدد وحدة التحكم في التسجيل التي تم إنشاؤها في الخطوة الأولى، بحيث يتم تجميع الطلبات في المكان الذي تتوقعه بدلاً من تشتيتها في جذر الخطة.
- إضافة URL أنماط الاستبعاد. في علامة تبويب تصفية الطلبات، استبعد الموارد الثابتة باستخدام نمط مثل .*\.(bmp|css|js|gif|ico|jpe?g|png|svg|woff2?)وهذا يزيل معظم عمليات التنظيف اليدوي الموضحة لاحقًا.
- شغّل جهاز التسجيل. انقر بالبداية في الجزء العلوي من لوحة التسجيل. JMeter يكتب أباتشيJMeterفي هذه اللحظة، يتم وضع ملف TemporaryRootCA.crt في مجلد bin الخاص به، وهو ما يجعل تسجيل HTTPS ممكنًا.
- قم بتوجيه المتصفح إلى الخادم الوكيل باستخدام localhost والمنفذ المختار، ثم تصفح التطبيق بشكل طبيعي.
- توقف ورتب المكان. اضغط على زر الإيقاف، واحذف أي مكالمات متبقية من جهات خارجية، واحفظ الخطة.
- تحقق من صحة البيانات قبل توسيع نطاقها. انقر بزر الماوس الأيمن على مجموعة الخيوط واختر التحقق من صحة. يقوم هذا بتشغيل الخطة مرة واحدة بخيط واحد، لذا تظهر حالات الفشل قبل تطبيق أي حمل.
ثمة عادة أخرى تميز البرنامج النصي الفعال عن البرنامج النصي الموثوق. استخدم الواجهة الرسومية للبناء والتصحيح فقط، ثم قم بتشغيل الاختبار الفعلي من سطر الأوامر باستخدام jmeter -n -t plan.jmx -l results.jtl -e -o reportوالذي يُنشئ أيضًا لوحة تحكم بتنسيق HTML. ويُعدّ الأمر نفسه أساسًا لـ الاختبار الموزع عبر عدة مولدات أحمال. يتم تغطية التركيب في JMeter دليل التثبيتوالإجراء الكامل موثق في Apache JMeter صفحة المسجل.
⚠️ ملاحظة حول الإصدار: تم التقاط الصور المعروضة في الشرح أدناه بواسطة جهاز قديم JMeter إصدار كان لا يزال يحتوي على عقدة WorkBench. تمت إزالة WorkBench في JMeter 5.0. لا يزال كل مفهوم ساريًا؛ فقط يتغير موقع المسجل، والإجراء الحالي هو الإجراء المذكور أعلاه.
الخطوة 1) إعداد خادم وكيل HTTP
هذا دليل خطوة بخطوة لإعداد الوكيل
- بالبداية JMeter
- اختر خطة اختبار على الشجرة
- إضافة مجموعة الخيوطانقر بزر الماوس الأيمن على خطة اختبار وأضف مجموعة سلاسل رسائل جديدة: إضافة > المواضيع (المستخدمين) > مجموعة الخيوط
- إضافة طلب HTTPحدد مجموعة الخيوط؛ انقر بزر الماوس الأيمن إضافة > عنصر التكوين > افتراضات طلب HTTP
في عنصر الإعدادات الافتراضية لطلب HTTP الجديد: في اسم الخادم أو عنوان IP، أدخل "google.com". يجب عليك إبقاء الحقول الأخرى فارغة
- إضافة وحدة تحكم التسجيلانقر بزر الماوس الأيمن على "مجموعة الخيوط" وأضف وحدة تحكم التسجيل: إضافة > تحكم المنطق > وحدة تحكم التسجيل
- إضافة مخدم بروكسي إلى WorkBench. انقر بزر الماوس الأيمن على Workbench وأضف وكيل HTTP: إضافة > عناصر غير الاختبار > خادم وكيل HTTP. على JMeter 5.x، انقر بزر الماوس الأيمن خطة اختبار اختر العقدة بدلاً من ذلك مسجل نصوص اختبار HTTP(S).
- بكج Target مراقب حيث سيتم إضافة البرامج النصية المسجلة الخاصة بك
- بالبداية خادم الوكيل. ارجع إلى خادم وكيل HTTP، وانقر على بالبداية زر في الأسفل. الآن لك JMeter بدء تشغيل الخادم الوكيل
- ابدأ تشغيل المتصفح (استخدمت Firefox)، أختر أداة > خيار > متقدم > الانرنيت > الضبط أدخل وكيل HTTP كما هو موضح في الشكل أدناه. في الوضع الحالي Firefox يتم الوصول إلى نفس الحوار من خلال الإعدادات > General > اعدادات الشبكة.
الخطوة 2) سجل نشاطك
- الآن إطلاق http://www.google.com في متصفح الويب الخاص بك (JMeter لا تزال مفتوحة)
- قم بالأنشطة بالبحث عن الكلمة الرئيسية "guru99".
- عد إلى JMeter، في خادم وكيل HTTP، انقر فوق قلة النوم عند الانتهاء
- بعد الانتهاء من التسجيل سوف ترى JMeter قام تلقائيًا بإنشاء طلب HTTP جديد كما هو موضح أدناه
JMeter لقد سجلت بالفعل طلب مستخدم ل الصفحة الرئيسية of Google موقع الكتروني. http://www.google.com/
تظهر طلبات HTTP الأخرى في الشكل أعلاه، ويجب عليك إزالتها. لأنه في وقت ما JMeter كما يسجل بعض روابط الإعلانات أثناء بحثك عن الكلمات المفتاحية. Googleينبغي علينا تجاهلهم في خطة الاختبار الخاصة بنا.
- انقر فوق ملف > حفظ خطة الاختبار باسم
- سيظهر مربع حوار > أدخل اسم خطة الاختبار في حقل اسم الملف > انقر فوق حفظ. الآن تم حفظ خطة الاختبار باسم RecordingTestPlan.jmx
الخطوة 3) قم بتشغيل خطة الاختبار الخاصة بك
- اختر مجموعة الخيوط > إضافة > مستمع > تقرير ملخص
- سيعرض التقرير الموجز بعض الإحصائيات الأساسية
- حدد مجموعة المواضيع، وأدخل المعلومات كما في الشكل أدناه
يمكنك الرجوع إلى المقال JMeter اختبار أداء لمعرفة تفاصيل تكوين مجموعة الخيوط.
- قبل بدء الاختبار، حدد "تقرير الملخص". عندما تكون جاهزًا لتشغيل الاختبار، حدد تشغيل > بدء (Ctrl+R). JMeter سيتم إعادة تشغيل نشاطك 100 مرة. أثناء تشغيل الاختبار، ستتغير الإحصائيات حتى ينتهي الاختبار.
الخطوة 4) احفظ نتيجة الاختبار
- انقر حفظ بيانات الجدول لحفظ نتيجة الاختبار في الملف
- أدخل اسم نتيجة الاختبار وانقر فوق حفظ. نتيجة الاختبار في JMeter يتم حفظه بتنسيق *.csv كإعداد افتراضي
قم بتنزيل خطة اختبار تسجيل الملف
قم بتنزيل خادم وكيل HTTP للملفات
تسجيل حركة مرور HTTPS والشهادات
تستخدم معظم المواقع الآن بروتوكول HTTPS، وهو ما سبق الشرح الأصلي. لا يمكن للخادم الوكيل قراءة البيانات المشفرة إلا إذا كان المتصفح يثق به، لذا يلزم اتخاذ خطوة إضافية.
عند بدء تشغيل جهاز التسجيل، JMeter يقوم بإنشاء شهادة جذر مؤقتة باسم ApacheJMeterTemporaryRootCA.crt في مجلد bin الخاص به. استورد هذا الملف إلى المتصفح كجهة إصدار شهادات موثوقة، ثم أعد تشغيل المتصفح. JMeter يمكن الآن تقديم شهادتها الخاصة لكل موقع وفك تشفير الجلسة لتسجيلها.
ثلاث نقاط جديرة بالمعرفة:
- تنتهي صلاحية الشهادة بعد سبعة أيام. هذا متعمد. احذفه ودع JMeter تجديد واحدة جديدة بدلاً من تمديد صلاحيتها.
- قم بإزالته عند الانتهاء. إن ترك شهادة جذر موثوقة مثبتة على جهاز يعمل يشكل خطراً أمنياً حقيقياً، وليس خطراً نظرياً.
- بعض التطبيقات ترفض ذلك. لا يمكن تسجيل المواقع التي تستخدم تثبيت الشهادات أو بروتوكول TLS المتبادل من خلال وكيل على الإطلاق، ويجب إنشاء البرنامج النصي يدويًا من أدوات مطوري المتصفح بدلاً من ذلك.
الربط: جعل النص المسجل قابلاً لإعادة التشغيل
يُعيد النص المُسجّل إنتاج ما حدث مرةً واحدةً بالضبط، وهو ما نادراً ما يحدث في المرة الثانية. تصبح مُعرّفات الجلسة والرموز والمفاتيح المُولّدة التي تم التقاطها أثناء التسجيل قيماً غير صالحة عند إعادة تشغيل النص، ويفشل التشغيل بطرق تبدو وكأنها أخطاء في التطبيق.
الحل يكمن في الارتباط. معالج لاحق مثل التعبير النمطي Extracتور أو مثال JSONtracيلتقط برنامج Tor القيمة الجديدة من استجابة تسجيل الدخول، ويخزنها في متغير، ثم تشير الطلبات اللاحقة إلى هذا المتغير بدلاً من القيمة الحرفية المسجلة.
سير العمل قصير:
- أعد تشغيل البرنامج النصي مرة واحدة باستخدام مستمع عرض شجرة النتائج وابحث عن أول طلب فاشل.
- قارن الطلب الفاشل بالتسجيل. أي قيمة تختلف بين عمليتي التشغيل تحتاج إلى ربطها.
- أضف مثالاًtracثم قم بالرجوع إلى الاستجابة التي أنتجت القيمة، ثم استبدل القيمة الحرفية المضمنة في الكود بمرجع المتغير.
- إضافة التأكيد لذا فإن الصفحة التي تُرجع رمز HTTP 200 مع رسالة خطأ لا تزال تفشل في الاختبار.
لا يمكن توسيع نطاق البرنامج النصي إلا بعد إجراء عملية الربط بين البيانات. إن تشغيل تسجيل غير مرتبط بمئة مستخدم يقيس معالجة الأخطاء بدلاً من... أداء. وتُغطى عناصر أخرى في جميع أنحاء JMeter الدروس.
فحص الجهاز
إذا واجهت مشكلة أثناء تشغيل السيناريو المذكور أعلاه، فقم بما يلي:
- تحقق مما إذا كنت متصلاً بالإنترنت عبر وكيل. إذا كانت الإجابة بنعم، قم بإزالة الوكيل.
- افتح مثيلًا جديدًا لـ JMeter.
- افتح ملف RecordingTestPlan.jmx في JMeter.
- انقر بزر الماوس الأيمن على Workbench > دمج > حدد HTTP Proxy Server.jmx. JMeter 5.x، قم بالدمج في عقدة خطة الاختبار بدلاً من ذلك، لأن WorkBench لم يعد موجودًا.
- انقر على مجموعة المواضيع > تقرير الملخص.
- قم بإجراء الاختبار.
هناك عرضان آخران يفسران معظم حالات الفشل المتبقية. إذا أبلغ المتصفح عن عدم إمكانية الاتصال، فهذا يعني أن المسجل لم يتم تشغيله مطلقًا، أو أن المنفذ المُحدد في المتصفح لا يتطابق مع المنفذ المُحدد في JMeterإذا تم تحميل الصفحات بشكل طبيعي ولكن لا يظهر أي شيء في الشجرة، فإن حركة المرور هي HTTPS ولم يتم استيراد الشهادة.



















