يعد اختبار التحميل مهما جدا لقياس أداء موقع الويب وتطبيق الويب وواجهة برمجة التطبيقات أثناء ارتفاعات حركة المرور العادية أو الثقيلة أو حتى المفاجئة. سيساعد هذا المنشور على فهم اختبار الحمل باستخدام حاويات Docker مع أدوات التكامل المستمر (CI). يتيح نهج Docker لتحميل تطبيقات الاختبار مشاركة الاختبارات بين المستخدمين وتكرار بيئة الاختبار بسهولة باستخدام حاويات Docker. سنشرح بإيجاز ما هو Docker واستخدام حاويات وأدوات Docker المستخدمة لتحميل تطبيقات الاختبار عبر CI.

 

ما هو دوكر؟

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

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

 

ما هي حاوية عامل ميناء؟

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

 

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

 

الميزات الرئيسية لعامل الإرساء

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

 

فوائد عامل ميناء

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

 

عامل ميناء داخل أدوات CI

أكبر فائدة مع Docker هي أننا لا نميل إلى القلق بشأن تعارضات التبعية. على سبيل المثال ، إذا أردنا إنشاء مشروع واحد باستخدام Golang 1.11 ومشروع واحد باستخدام إصدار Golang 1.12 ، فيمكن أن يساعد Docker في فصل هذا وإنشاء صور لكليهما وحتى تشغيل كليهما بالتوازي على حاوية مختلفة بدون تعارضات ، وهو ما لن يكون ممكنا على الخادم. يمكن حفظ الصور المطبوخة بإصدارات مختلفة في السجل ويمكن استخدامها كجزء من أدوات التكامل المستمر مثل Jenkins.

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

 

قيود استخدام Docker لاختبارات الأداء

في حين أن Docker له العديد من المزايا ، إلا أنه يحتوي على بعض القيود أثناء إجراء اختبار الأداء:

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

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

 

تكامل اختبار تحميل LoadView مع Jenkins

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

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

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

سننظر الآن في الخطوات المتضمنة لتشغيل اختبارات التحميل عبر تكامل Jenkins مع LoadView:

  1. قبل أن نبدأ في استخدام سيناريو اختبار تحميل LoadView لاختبار البناء الخاص بك في Jenkins ، نحتاج إلى سيناريو اختبار على LoadView ، حيث يمكننا إضافة قائمة بواجهات برمجة التطبيقات التي تحتاج إلى اختبار الإجهاد.
  2. لبدء التكامل مع Jenkins ، نحتاج إلى معرف LoadView الفريد لاستخدامه كرمز أمان LoadView.
  3. في LoadView، قم بإنشاء UID تكامل ضمن تكامل > الحساب > إضافة واجهة برمجة تطبيقات ويب لاختبار تحميل التكامل>. انسخ UID للتكامل هذا.

معرفات UID لتكامل عامل الإرساء

 

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

سيناريو اختبار تحميل عامل الإرساء

 

تكوين البرنامج المساعد LoadView في جنكينز

  1. قم بتسجيل الدخول إلى حساب Jenkins الخاص بك.
  2. في Jenkins، انتقل إلى بيانات الاعتماد إضافة بيانات الاعتماد > > LoadView رمز الأمان (UID). تكوين بيانات الاعتماد والتحقق من صحتها:
  • النوع: رمز أمان لودفيو (UID).
  • النطاق: تم تعيينه على أنه عالمي.
  • ID: اترك الإعداد الافتراضي أو حدد معرفا فريدا.
  • الوصف: أدخل وصفا فريدا لتمييزه عن الاختبارات الأخرى.
  • UID: أدخل UID من حساب LoadView الخاص بك. بمجرد الإضافة، حدد التحقق من صحة UID لضمان وصول Jenkins إلى واجهة برمجة تطبيقات LoadView.

3. بعد ذلك ، حدد وظيفة وانقر فوق تكوين

عامل ميناء جنكينز

 

  1. انتقل إلى إنشاء > إجراءات ما بعد الإنشاء > إضافة إجراء > ما بعد الإنشاء سيناريو اختبار تحميل LoadView-Run. حدد إعدادات اختبار الإجهاد LoadView للبناء:
  • بيانات الاعتماد: حدد مفتاح واجهة برمجة التطبيقات باستخدام الوصف.
  • معرف السيناريو: الصق معرف سيناريو الاختبار الذي تريد استخدامه في الإنشاء. انسخ المعرف من صفحة السيناريو في LoadView.
  • حد الخطأ: هنا يمكنك تعيين حد الخطأ المقبول للسيناريو المحدد الخاص بك. إذا تجاوزت النسبة المئوية هذا الحد ، وضع علامة عليها على أنها فشل داخل Jenkins.
  • متوسط الوقت: حدد متوسط وقت الاستجابة أثناء الاختبار. مثل عتبة الخطأ ، إذا تم تجاوز الحد ، تسجيله على أنه فشل في Jenkins.
  1. انقر على حفظ.

عرض نتائج الاختبار:

عند تشغيل الاختبار، يتم عرض الحالة، في الوقت الفعلي، في إخراج وحدة تحكم Jenkins.

إخراج وحدة تحكم جينكينز

 

نتائج أداء جينكينز

 

اختتام: اختبار تحميل تطبيق عامل الإرساء

على الرغم من أن Docker له العديد من المزايا ، إلا أنه يمكن أن تكون هناك قيود عند تنفيذ اختبارات التحميل بحمل ثقيل ، مثل استهلاك الكثير من وحدة المعالجة المركزية على الخادم ، عند استخدام حاويات Docker متعددة على نفس الجهاز ، مما قد يؤثر بشكل كبير على نتائج الاختبار. باستخدام حل مثل LoadView ، والذي يمكن دمجه بسهولة مع أدوات CI مثل Jenkins ، يمكننا إنشاء اختبارات التحميل وإدارتها مع آلاف الاتصالات المتزامنة من سحابة مدارة بالكامل.

كانت هذه المقالة مقدمة موجزة حول استخدام Docker و Jenkins لتنفيذ اختبارات التحميل المستندة إلى السحابة. قم بإعداد عرض توضيحي مع أحد مهندسي الأداء لدينا لمعرفة المزيد حول إعداد سيناريوهات الاختبار وتكوين اختبارات التحميل باستخدام LoadView.

جرب منصة LoadView اليوم واحصل على ما يصل إلى 5 اختبارات مجانية للبدء.