JMeter العناصر والمكونات: مجموعة الخيوط، العينات

⚡ ملخص ذكي

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

  • 🔘 مجموعة المواضيع: يمثل كل خيط مستخدمًا افتراضيًا واحدًا يقوم بتشغيل التطبيق قيد الاختبار.
  • ☑️ أخذ العينات: حدد بروتوكول الطلب - FTP، HTTP، JDBC، SMTP وغيرها.
  • ✅ المستمعون: اعرض النتائج على شكل رسم بياني أو شجرة أو جدول أو ملف سجل.
  • 🧪 عناصر التكوين: قم بتعيين القيم الافتراضية والمتغيرات التي تعيد العينات استخدامها عبر الاختبار بأكمله.
  • 🛠️ عمليات التشغيل القائمة على البيانات: يقوم ملف CSV Data Set Config بتزويد كل مستخدم مُحاكى ببيانات اعتماد مختلفة.
  • ⚡ المكافئات الحديثة: تم إيقاف برنامج BSF Sampler؛ الإصدارات الحالية مكتوبة حتى JSR223 و Groovy.

JMeter العناصر: مجموعة الخيوط، وأجهزة أخذ العينات، وأجهزة الاستماع، وعناصر التكوين

ما هو العنصر في JMeter?

المكونات المختلفة ل JMeter تسمى العناصر. تم تصميم كل عنصر لغرض محدد.

ويعطي الشكل أدناه بعض العناصر المشتركة في JMeter ويُظهر كيف يتم وضعها ضمن مجموعة الخيوط.

JMeter مخطط تسلسل العناصر مع مجموعة الخيوط أعلى أجهزة أخذ العينات، ووحدات التحكم المنطقية، والمستمعين، وعناصر التكوين، والتأكيدات، والمؤقتات، والمعالجات.

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

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

مجموعة الخيوط

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

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

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

رسم تخطيطي لـ JMeter مجموعة خيوط تحاكي المستخدمين من 1 إلى 100، حيث يرسل كل منهم طلبًا إلى التطبيق قيد الاختبار.

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

أخذ العينات

كما نعلم بالفعل ، JMeter يدعم اختبار HTTP، FTP، JDBC والعديد من البروتوكولات الأخرى.

ونعلم أيضاً أن مجموعات الخيوط تحاكي طلبات المستخدم إلى الخادم.

لكن كيف تعرف مجموعة الخيوط نوع الطلب (HTTP، FTP وما إلى ذلك) الذي تحتاج إلى تقديمه؟

الجواب هو: أجهزة أخذ العينات.

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

قائمة مخططات الشجرة JMeter أدوات أخذ العينات: طلب FTP، طلب HTTP، طلب JDBC، أداة أخذ عينات BSF، أداة أخذ عينات سجل الوصول، وأداة أخذ عينات SMTP

طلب بروتوكول نقل الملفات

لنفترض أنك تريد اختبار أداء خادم FTP. يمكنك استخدام أداة أخذ عينات طلبات FTP في JMeter للقيام بهذه المهمة. تتيح لك وحدة التحكم هذه إرسال طلب "تنزيل ملف" أو "تحميل ملف" FTP إلى خادم FTP.

يظهر الرسم التخطيطي JMeter إرسال طلب FTP إلى خادم FTP لتحميل أو تنزيل ملف

على سبيل المثال، إذا كنت تريد تنزيل ملف "Test.txt" من خادم FTP قيد الاختبار، فستحتاج إلى تكوين بعض المعلمات في JMeter كما هو موضح في الشكل أدناه.

لوحة عينة طلبات FTP مع ftp.example.com كخادم، والمنفذ 21، وTest.txt كملف بعيد، وتسجيل دخول مجهول.

تقوم اللوحة بضبط الخادم على ftp.example.com، المنفذ 21، الملف البعيد إلى Test.txt وخيار get(RETR)، لذلك JMeter يرسل أمر FTP إلى ذلك الخادم ويقوم بتنزيل الملف.

طلب HTTP

يتيح لك جهاز أخذ العينات هذا إرسال طلب HTTP/HTTPS إلى خادم الويب.

النظر في المثال أدناه. JMeter يرسل طلب HTTP إلى Google يقوم الموقع الإلكتروني باسترجاع ملفات HTML أو الصور منه.

مخطط JMeter إرسال طلب HTTP إلى Google المواقع واستقبال أكواد HTML والصور في المقابل

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

طلب JDBC

تتيح لك هذه العينة تنفيذ قاعدة البيانات اختبار أداء. يرسل طلب JDBC (استعلام SQL) إلى قاعدة البيانات.

مخطط JMeter إرسال استعلام SQL إلى خادم قاعدة البيانات واستلام النتيجة

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

لوحة طلب JDBC مع ضبط نوع الاستعلام على عبارة SELECT والاستعلام هو: SELECT test_result FROM test_tbl WHERE id = 1

نوع الاستعلام هنا هو عبارة SELECT، ونص الاستعلام هو: select test_result from test_tbl where id = 1يجب أن يوفر عنصر تكوين اتصال JDBC المجموعة التي يشير إليها حقل اسم المتغير.

عينات BSF

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

فيما يلي مثال على جهاز أخذ عينات BSF في JMeter، مع حقول للغة البرمجة النصية، والمعلمات التي تم تمريرها إلى البرنامج النصي، إما برنامج نصي مضمن أو ملف برنامج نصي خارجي.

لوحة BSF Sampler تحتوي على حقول للغة البرمجة النصية، والمعلمات، وملف برمجة نصية خارجي، ونص البرمجة النصية المضمن.

ملاحظة حول إيقاف الخدمة: تم إيقاف استخدام عائلة عناصر BSF لصالح عناصر JSR223 ولم تعد تظهر في JMeter مرجع المكونفي الإصدارات الحالية، استخدم عينة JSR223 مع Groovyوهذا ما يُحسّن أداء البرنامج النصي بشكل ملحوظ تحت الضغط. وقد تم الاحتفاظ باللوحة أعلاه هنا لأن خطط الاختبار القديمة لا تزال تتضمنها.

أخذ عينات سجل الوصول

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

لوحة "مُسجِّل الوصول" التي تعرض حقول الخادم والمنفذ الافتراضية، وفئة مُلحق TCLogParser، وموقع ملف السجل.

حقل المحلل اللغوي افتراضيًا إلى org.apache.jmeter.protocol.http.util.accesslog.TCLogParserويشير حقل موقع ملف السجل إلى JMeter في السجل الذي تريد إعادة تشغيله.

أخذ العينات SMTP

إذا كنت ترغب في اختبار خادم بريد، يمكنك استخدام أداة أخذ عينات SMTP. تُستخدم هذه الأداة لإرسال رسائل البريد الإلكتروني باستخدام بروتوكول SMTP.

لوحة SMTP Sampler مع إعدادات الخادم وعناوين البريد وخيارات المصادقة والأمان وإعدادات الرسائل

تقوم اللوحة بتجميع إعدادات الخادم وعناوين البريد الإلكتروني والمصادقة وإعدادات الرسائل، وتقوم بطباعة المنافذ الافتراضية بجانب حقل المنفذ: SMTP 25 وSSL 465 وStartTLS 587.

المستمعين

تعرض برامج الاستماع نتائج تنفيذ الاختبار. ويمكنها عرض النتائج بتنسيقات مختلفة مثل الشجرة أو الجدول أو الرسم البياني أو ملف السجل.

رسم تخطيطي يوضح مستمعًا يقوم بتوزيع النتائج على شكل رسم بياني، وشجرة، وجدول، وتقرير.

استخدم نتائج الرسم البياني يعرض برنامج المستمع أوقات استجابة الخادم على رسم بياني، مع طباعة عدد العينات والمتوسط ​​والانحراف والإنتاجية والوسيط أسفلها.

يعرض برنامج الاستماع نتائج الرسم البياني لأوقات الاستجابة مع البيانات، والمتوسط، والوسيط، والانحراف، وسلسلة الإنتاجية.

عرض شجرة النتائج يعرض نتيجة كل طلب من المستخدم بتنسيق HTML أساسي، مع علامة تبويب نتائج العينة التي تعرض وقت التحميل، وزمن الاستجابة، والحجم، ورمز الاستجابة.

عرض نتائج الاستماع الشجري مع قائمة الطلبات على اليسار وعلامة تبويب نتائج أخذ العينات التي تعرض رمز الاستجابة 200

عرض النتائج في الجدول يعرض ملخصًا لنتائج الاختبار في شكل جدول، صف واحد لكل عينة.

عرض النتائج في جدول الاستماع مع أعمدة لرقم العينة، ووقت البدء، واسم الخيط، والتسمية، ووقت العينة

يسجل ملف السجل نفس الملخص كنص، وهو ما تحتفظ به عند تشغيل الاختبار بدون واجهة المستخدم الرسومية.

ملخص سجل التجميع الذي يسرد تسميات أجهزة أخذ العينات مع عدد العينات والمتوسطات وصف إجمالي.

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

عناصر التكوين

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

يوضح الشكل أدناه بعض عناصر التكوين شائعة الاستخدام في JMeter.

مخطط شجري لـ JMeter عناصر التكوين: تكوين مجموعة بيانات CSV، مدير ملفات تعريف الارتباط HTTP، عنصر تكوين تسجيل الدخول، الإعدادات الافتراضية لطلبات HTTP، والإعدادات الافتراضية لطلبات FTP

تكوين مجموعة بيانات CSV

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

JMeter شجرة خطة الاختبار مع تحديد تكوين مجموعة بيانات CSV ضمن وحدة تحكم تسجيل الدخول إلى جانب الإعدادات الافتراضية لطلب HTTP

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

ملف نصي csv_data.txt يحتوي على أربعة صفوف مفصولة بفواصل، تتضمن قيم اسم المستخدم وكلمة المرور وطول ملف تعريف الارتباط.

مدير ملفات تعريف الارتباط HTTP

دعونا نفهم هذا بمثال.

لقد استخدمت متصفحك (Firefox(مثل متصفح كروم وما إلى ذلك) للتصفح www.google.com.

تقوم بتسجيل الدخول باستخدام اسم المستخدم وكلمة المرور.

سيتم تخزين اسم المستخدم وكلمة المرور على جهاز الكمبيوتر الخاص بك كملفات تعريف الارتباط (cookies).

في المرة القادمة، عند زيارتك www.google.comلن تحتاج إلى تسجيل الدخول مرة أخرى، لأن متصفحك سيستخدم ملفات تعريف الارتباط الخاصة بك كبيانات مستخدم لتسجيل الدخول.

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

افتراضات طلب HTTP

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

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

أنت ترسل 100 طلب HTTP إلى الخادم google.com.

سيتعين عليك إدخال اسم الخادم google.com يدويًا لجميع الطلبات المئة.

بدلاً من ذلك، يمكنك إضافة عنصر HTTP Request Defaults واحد مع تعيين حقل "اسم الخادم أو عنوان IP" إلى google.com، كما هو موضح أدناه.

لوحة إعدادات طلب HTTP الافتراضية مع اسم الخادم google.com، والمنفذ 80، ومهلات الاتصال والاستجابة

لا داعي لكتابتها مئة مرة. سيتم شرح هذا العنصر بالتفصيل في الدرس التعليمي. JMeter اختبار أداء.

عنصر تكوين تسجيل الدخول

يتيح لك عنصر تكوين تسجيل الدخول إضافة أو تجاوز إعدادات اسم المستخدم وكلمة المرور في العينات.

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

لوحة عناصر تكوين تسجيل الدخول مع إدخال guru99 كاسم المستخدم وحقل كلمة المرور المقنّع

عنصر تكوين تسجيل الدخول مقابل تكوين مجموعة بيانات CSV

عنصر تكوين تسجيل الدخول تكوين مجموعة بيانات CSV
يستخدم لمحاكاة تسجيل دخول مستخدم واحد يُستخدم لمحاكاة تسجيل دخول المستخدمين المتعددين
مناسب فقط لمعلمات تسجيل الدخول (اسم المستخدم وكلمة المرور) مناسب لعدد كبير من المعلمات

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

الأسئلة الشائعة

انها تخبر JMeter كم من الوقت يلزم لتشغيل جميع العمليات؟ عشر عمليات، مع فترة تهيئة مدتها ١٠٠ ثانية، تبدأ بفارق عشر ثوانٍ بين كل عملية وأخرى. فترة التهيئة القصيرة جدًا تُثقل كاهل الخادم وتُسبب أعطالًا لا يُمكن أن يتسبب بها مستخدم حقيقي.

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

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

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

تُطبَّق عناصر التكوين والمعالجات المسبقة أولاً، ثم يُشغَّل برنامج أخذ العينات، ثم المعالجات اللاحقة والتأكيدات والمستمعين. النطاق مهم أيضاً: فالعنصر الموضوع على مستوى الخطة ينطبق على كل طلب أسفله.

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

نعم. إنه يقوم بالمسودة Groovy على سبيل المثالtracتحديد القيم، وبناء الحمولة، وتعيين المتغيرات داخل عنصر JSR223. تحقق من كل اقتراح، لأنه غالبًا ما يلجأ إلى واجهة برمجة تطبيقات BeanShell المهملة أو المتغيرات التي JMeter لا يكشف.

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

تلخيص هذه التدوينة بـ: