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

المرونة في اختبار الأداء في Apache JMeter
واحدة من الميزات المميزة لـ JMeter هي مرونته. قدرته على اختبار الأداء على الموارد الثابتة والديناميكية تميزه عن الآخرين. سواء كنت تختبر خادمًا واحدًا أو مجموعة من الخوادم، شبكة، أو كائنًا، يوفر لك JMeter المرونة لتقييم قوته وأداءه العام تحت أنواع مختلفة من الأحمال. علاوة على ذلك، يدعم مجموعة واسعة من التطبيقات والخوادم وأنواع البروتوكولات، بما في ذلك على سبيل المثال لا الحصر: الويب - HTTP، HTTPS، SOAP/REST خدمات الويب، FTP، قواعد البيانات عبر JDBC، LDAP، والعديد من البرمجيات الوسيطة الموجهة للرسائل عبر JMS.
المميزات الأساسية لـ Apache JMeter
Apache JMeter مليء بالميزات التي تلبي احتياجات اختبار الأداء المتنوعة. يسمح IDE الاختبار ذو الميزات الكاملة بتسجيل خطة الاختبار وبنائها وتصحيحها بسرعة، بينما يسهل وضع سطر الأوامر (CLI) اختبار الأحمال من أي نظام تشغيل متوافق مع جافا. تعتبر النواة القابلة للتوسيع في JMeter سمة أخرى مهمة، حيث تسمح السامبلرز القابلة للإضافة بإمكانيات اختبار غير محدودة، وإطار متعدد الخيوط يمكّن من أخذ عينات متزامنة بواسطة العديد من الخيوط والأخذ في عينات من وظائف مختلفة بواسطة مجموعات خيوط منفصلة.
فهم قيود JMeter: ليس متصفحًا
بينما يعتبر JMeter أداة قوية، من المهم فهم قيوده للاستفادة من إمكانياته بشكل فعال. يعمل JMeter على مستوى البروتوكول وليس كمتصفح. على الرغم من أنه يمكنه محاكاة إجراءات المتصفح إلى حد ما، إلا أنه لا ينفذ JavaScript الموجود في صفحات HTML ولا يقوم بعرضها كما سيقوم به المتصفح. من الجدير ملاحظة هذه القيود عند التخطيط لاستراتيجية اختبار الأداء الخاصة بك مع JMeter.
بينما نستكشف المزيد من الوظائف والتطبيقات الخاصة بـ JMeter، ستكتشف كيفية الاستفادة بكفاءة من إمكانياته لتحسين أداء تطبيق الويب الخاص بك، وبالتالي تقديم تجربة مستخدم لا تشوبها شائبة.
Apidog: مجموعة شاملة لإدارة دورة حياة API
بالتوازي مع اختبار الأداء، يعتبر إدارة دورة حياة API أمرًا حيويًا لتطوير تطبيقات الويب الحديثة. هنا يأتي دور Apidog . Apidog هو مجموعة أدوات شاملة تضم كل مرحلة من مراحل دورة حياة API تحت سقف واحد. من تصميم وتصحيح APIs إلى أتمتة اختبار دورة الحياة وإنشاء مستندات API جذابة بصريًا، يسهل Apidog تطوير تصميم-الـ API أولًا، مما يساعد فرق البحث والتطوير في تنفيذ أفضل الممارسات.
يعتبر Apidog أداة قوية يمكن أن تلعب دورًا كبيرًا في استراتيجيتك لاختبار الأداء.
هذه الأداة تقدم ثلاث أوضاع متميزة لاختبار الأداء:
- اختبار Apidog داخل التطبيق: هذا النوع يسمح لك بتشغيل عدة خيوط بالتزامن عن طريق تعيين عدد الخيوط إلى أكثر من 1 أثناء تنفيذ حالة الاختبار. ومع ذلك، يرجى ملاحظة أن هذه الميزة لا تزال في مرحلة البيتا وتتم تحسينها. لاختبارات تزامن عالية، يوصي Apidog باستخدام JMeter.
- اختبار Apidog CLI: Apidog CLI هي أداة سطر أوامر مصممة للتكامل المستمر واختبار الإجهاد. خاصية اختبار الإجهاد قيد التطوير وتعد بتوفير المزيد من المرونة لمجموعة Apidog.
- اختبار JMeter: مع Apidog، يمكنك تصدير حالات الاختبار بتنسيق JMeter ثم استيرادها إلى JMeter لاختبار الأداء. تدمج هذه الميزة بشكل فعال قدرات الاختبار القوية الخاصة بـ JMeter في بيئة Apidog، مما يمكّنك من وضع استراتيجيات اختبار أداء أكثر شمولية.

توحيد JMeter و Apidog من أجل تطوير تطبيق ويب محسن
تشكل دمج قدرات اختبار الأداء القوي لـ JMeter وإدارة دورة حياة API الشاملة لـ Apidog مزيجًا قويًا للمطورين. توفر هذه الأدوات نهجًا شاملًا لبناء واختبار وإدارة تطبيقات الويب، مما يضمن الجودة والأداء وتجارب مستخدم سلسة.
في هذه المقالة، سنغوص أعمق في تفاصيل JMeter و Apidog ونتعلم كيف نستخدمها بفعالية لاختبار الأداء.
تنزيل وتثبيت JMeter
JMeter هو تطبيق جافا مفتوح المصدر مصمم لاختبار الأحمال والاختبارات الوظيفية للبرمجيات. تم تصميمه أصلاً لاختبار تطبيقات الويب ولكنه توسع منذ ذلك الحين إلى وظائف اختبار أخرى. للبدء مع JMeter، ستحتاج إلى تنزيله وتثبيته على جهاز الكمبيوتر الخاص بك:
- قم بزيارة موقع Apache JMeter.
- انقر على الرابط "تنزيل الإصدارات".
- اختر الإصدار الثنائي المناسب لنظامك (على سبيل المثال، apache-jmeter-5.4.1.zip لنظام Windows) وقم بتنزيله.
- بمجرد اكتمال التنزيل، قم بفك ضغط ملف zip إلى مكان ما على جهاز الكمبيوتر الخاص بك.
- لتشغيل JMeter، انتقل إلى مجلد bin ضمن الدليل المستخرج لـ JMeter وانقر نقرًا مزدوجًا على jmeter.bat (لنظام Windows) أو jmeter.sh (لنظام Linux/Mac).
نظرة عامة على واجهة JMeter
عند تشغيل JMeter، ستجد واجهته التي تتكون أساسًا من قسمين:
- خطة الاختبار: خطة الاختبار هي حيث تصمم اختبار الحمل الخاص بك. تحتوي على عناصر مثل مجموعات الخيوط (تحاكي المستخدمين)، السامبلرز (طلبات HTTP)، والمستمعون (معالجة وتحليل النتائج).
- ورشة العمل: ورشة العمل هي مساحة عمل مؤقتة لتخزين عناصر الاختبار. هي مكان للإبقاء على العناصر أو أجزاء من خطة اختبارك التي لا تستخدمها حاليًا ولكن قد تحتاجها لاحقًا.

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

- إضافة سامبلر: في JMeter، "السامبلر" هو الطلب الذي ترسله إلى خادم. يمكنك إضافة سامبلر بالنقر بزر الماوس الأيمن على مجموعة الخيوط التي أنشأتها، ثم اختيار "إضافة"، ثم "سامبلر"، وأخيرًا نوع الطلب الذي تريد إرساله (على سبيل المثال، "طلب HTTP").

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

- تشغيل خطة الاختبار: بمجرد إعداد خطة الاختبار الخاصة بك، يمكنك تشغيلها بالنقر على زر "تشغيل" في شريط أدوات JMeter.
تصميم وتنفيذ سيناريوهات اختبار الأداء
يتضمن تصميم سيناريوهات اختبار الأداء تحديد الإجراءات التي سيتم تنفيذها، وعدد المستخدمين الافتراضيين، ومدة الاختبار. من الضروري تصميم سيناريوهات الاختبار التي تشبه بشكل وثيق استخدام التطبيق في العالم الحقيقي.
على سبيل المثال، في اختبار الحمل، قد تقوم بتكوين JMeter لمحاكاة 1000 مستخدم يقومون بتسجيل الدخول إلى تطبيقك خلال 10 دقائق. في اختبار الإجهاد، يمكنك زيادة هذا العدد إلى 10,000 مستخدم خلال دقيقة واحدة لرؤية كيفية تعامل التطبيق مع الأحمال القصوى.
تنفيذ سيناريوهات الاختبار يتضمن تشغيل الاختبارات في JMeter وجمع النتائج. يوفر JMeter عدة أنواع من المستمعين لرؤية وحفظ نتائج الاختبار، بما في ذلك الجداول، الرسوم البيانية، وعروض الشجرة.
دمج JMeter مع Apidog لاختبار الأداء
إليك دليل تفصيلي خطوة بخطوة لدمج JMeter مع Apidog لاختبار الأداء.
الخطوة 1: إنشاء خطة اختبار في JMeter
- افتح JMeter.
- في هيكل الشجرة على اليسار، انقر بزر الماوس الأيمن على "خطة الاختبار" وانتقل إلى "إضافة" -> "خيوط (مستخدمون)" -> "مجموعة الخيوط".
- قم بضبط عدد الخيوط (المستخدمين)، عدد التكرارات، ومدة الزيادة بناءً على احتياجات الاختبار الخاصة بك.
- انقر بزر الماوس الأيمن على "مجموعة الخيوط" التي أنشأتها للتو، وانتقل إلى "إضافة" -> "سامبلر" -> "طلب HTTP".
- في طلب HTTP، املأ تفاصيل الخادم (مثل اسم الخادم أو IP، البروتوكول، المسار، إلخ) الذي تريد اختباره.
- بمجرد تكوين خطة الاختبار الخاصة بك، يمكنك حفظها بالنقر على "ملف" -> "حفظ" (أو "حفظ خطة الاختبار باسم"). تأكد من حفظها ك .jmx file.
إليك مثال على ملف XML (.امتداد ملف .jmx) يمكنك استيراده في Apidog لاختبار العروض التوضيحية:
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.5">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="خطة الاختبار" enabled="true">
<stringProp name="TestPlan.comments"></stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
</TestPlan>
<hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="مجموعة الخيوط" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
<boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
</ThreadGroup>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="طلب HTTP" enabled="false">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">httpbin.org</stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol">http</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/get</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">false</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
</hashTree>
</hashTree>
</hashTree>
</jmeterTestPlan>
الخطوة 2: استيراد خطة اختبار JMeter إلى Apidog
- تسجيل حساب: افتح Apidog وقم بتسجيل حساب جديد باستخدام بريدك الإلكتروني.
2. إنشاء مساحة عمل: بعد تسجيل الدخول، أنشئ مساحة عمل جماعية. هنا ستقوم بإنشاء مشاريعك واستيراد خطط الاختبار الخاصة بك. يمكنك دعوة أعضاء الفريق الآخرين للانضمام إلى مساحة العمل الخاصة بك إذا لزم الأمر.
3. استيراد خطة الاختبار: انتقل إلى علامة التبويب "استيراد" في مشروعك.

4. اختر "JMeter" وقم بتحميل الملف.

5. انقر على "تأكيد". اختر ملف .jmx الذي حفظته سابقًا وانقر على "فتح".

الخطوة 3: تشغيل الاختبار في Apidog
- انتقل إلى المشروع: انتقل إلى مشروعك المستورد بعد استيراد خطة اختبار JMeter بنجاح.
- تشغيل الاختبار: ابدأ اختبار الأداء عن طريق النقر على زر "تشغيل". سيقوم Apidog الآن بتنفيذ خطة الاختبار التي استوردتها من JMeter.

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

تذكر، اختبار الأداء ليس مهمة لمرة واحدة، بل يجب أن يكون جزءًا منتظمًا من عملية تطويرك ونشر التطبيق لضمان الأداء الأمثل لـ API الخاص بك.
الخاتمة
للتلخيص، JMeter هو أداة قوية لأداء اختبار الأداء على واجهات برمجة التطبيقات الخاصة بك المصممة باستخدام Apidog. تتيح لك القدرة على تصدير حالات الاختبار من Apidog واستيرادها إلى JMeter دمج اختبار الأداء بسهولة في عملية تطوير API الخاصة بك. علاوة على ذلك، يساعد استخدام اختبارات JMeter في عملية التكامل المستمر على ضمان أن أداء API الخاص بك يظل متسقًا مع تطوره.
مع الجمع بين Apidog لتصميم API و JMeter لاختبار الأداء، يمكنك ضمان أن تكون واجهات برمجة التطبيقات الخاصة بك مصممة بشكل جيد وأداءها عالي.
لذا، ابدأ اختبار واجهات برمجة التطبيقات الخاصة بك باستخدام JMeter و Apidog اليوم واتخذ الخطوة الأولى نحو بناء واجهات برمجة APIs موثوقة وعالية الأداء!