اختر صفحة

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

 

ما هو دوكر؟

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

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

 

ما هي حاوية Docker؟

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

 

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

 

الميزات الرئيسية ل Docker

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

 

فوائد Docker

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

 

Docker داخل أدوات CI

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

يوفر Jenkins الدعم في هذه الحالة ، حيث يختار صور Docker المتاحة المصممة لاختبار الأداء أو اختبار التكامل ويتم حفظ النفقات العامة لطهي صور 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 الخاص بهذا التكامل.

معرفات تكامل Docker

 

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

سيناريو اختبار تحميل Docker

 

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

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

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

دوكر جنكينز

 

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

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

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

إخراج وحدة تحكم Jenkins

 

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

 

الخاتمة: اختبار تحميل تطبيق Docker

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

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

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