هذه مجموعة من الأدوات المساعدة بناءً على توصيات سكان Hacker News و GitHub. تشمل القائمة: الجراد ، Vegeta ، Slow_cooker ، k6 و Siege. يتم استخدامها من قبل المهندسين من DICE و EA و Buoyant ، بالإضافة إلى مطوري Kubernetes و Load Impact. دعنا نتحدث عن هذه الأدوات.
صور - فيكتور فريتاس - Unsplashأداة لمواقع اختبار الإجهاد. تتم كتابة جميع النصوص في بيثون. تسمح واجهة الويب الخاصة المبنية على
Flask بنتائج المراقبة في الوقت الفعلي. مؤلفو الجراد هم مهندسون سويسريون ، من بينهم موظفون في شركات DICE و EA يشاركون في تطوير ألعاب الكمبيوتر ونشرها.
تعتمد الأداة على مفهوم مثير للاهتمام: الجراد ("الجراد") يحاكي سلوك سرب من الحشرات (المستخدمين الظاهريين) ، "الهجوم" على الموقع أثناء الاختبار. يتم تشكيل الطلبات باستخدام مكتبة شبكة لتنظيم الحوسبة المتوازية -
gevent . فيما يلي مثال على اختبار بسيط ، يتم تقديمه على الموقع الرسمي للمشروع:
from locust import HttpLocust, TaskSet, task class WebsiteTasks(TaskSet): def on_start(self): self.client.post("/login", { "username": "test_user", "password": "" }) @task def index(self): self.client.get("/") @task def about(self): self.client.get("/about/") class WebsiteUser(HttpLocust): task_set = WebsiteTasks min_wait = 5000 max_wait = 15000
يستخدم الجراد مكتبة الطلبات. تعمل هذه الوظيفة الإضافية لأدوات Python القياسية على تبسيط العمل باستخدام HTTP و SSL وتجعل الكود أكثر مرئية. بالمناسبة ، يمكن استخدام
وثائق الطلبات كورقة غش لإجراء اختبارات تصحيح الأخطاء على الجراد.
إن أداة اختبار الإجهاد هذه موجودة منذ أكثر من سبع سنوات. خلال هذا الوقت ، تشكل مجتمع واسع حوله - على GitHub
أكثر من 10 آلاف نجوم . تم استخدام الجراد في تقييم أداء شبكة Battlelog لسلسلة ألعاب Battlefield. تحدث أرمين رونشر ، مؤلف إطار عمل Flask ، عن الأداة.
من بين عيوب الجراد ، هناك
بعض الأخطاء في الأداء والأداء الدوري في تقدير وقت استجابة المواقع. لا تعرف الأداة أيضًا كيفية إنشاء الرسوم البيانية ، ولكن يتم حل المشكلة عن طريق تحميل النتائج في شكل ملفات
CSV وتقديم الرسوم البيانية في محرر الجدول.
إذا كنت ترغب في التعرف على الجراد بشكل أوثق ، يجب عليك الانتباه إلى
وثائق الأداة. يمكنك أيضًا التوصية
بأداء Alexei Romanov من Wargaming في Python Meetup. يتحدث عن كيفية كتابة البرامج النصية التي تحاكي سلوك المستخدم.
Go أداة مساعدة لسطر الأوامر لاختبار خدمات HTTP المكتوبة في Go. يمكن توصيله كمكتبة لإنشاء أدوات اختبار الحمل الخاصة بك. تم تطوير Vegeta بواسطة أحد مؤلفي منصة
Sourcegraph مفتوحة
المصدر ، وهو محرك لمراجعة وتصفح الكود المصدري المستخدم من قبل Lyft و Uber و Yelp.
يقوم Vegeta بتقييم إمكانيات موارد الشبكة ، "قصف" طلباتهم بتردد محدد. على سبيل المثال ، للتحقق من المضيف المحلي ، ما عليك سوى إدخال الأمر التالي:
echo "GET http://localhost/" | vegeta attack -duration=5s | tee results.bin | vegeta report
بشكل افتراضي ، يعمل Vegeta مع دفق قراءة الأوامر القياسي (stdin) ، بحيث يتم إرسال المورد للاختبار من خلال الارتداد. تشير المعلمة المدة إلى مدة الاختبار. سيتم إنشاء التقرير في ملف Results.bin. ينشئ Vegeta تقارير بتنسيق نصي ، ولكنه قادر
على رسم الرسوم البيانية . يمكنك إنشاءها باستخدام الأمر التالي:
vegeta plot -title=Results results.bin > results-plot.html
تشكل مجتمع كبير حول Vegeta -
12 ألف نجمة على جيثب . وقد
استخدم مطورو Kubernetes هذه الأداة لتقييم أداء نظامهم الأساسي - ثم أنتجت Vegeta حوالي 10 مليون طلب في الثانية لمجموعة من آلاف العقد.
الوثائق التي تصف جميع الوظائف والأعلام لاختبارات Vegeta موجودة
في المستودع على GitHub . يمكنك
أيضا العثور على الملفات القابلة للتنفيذ precompiled هناك.
هذه أداة اختبار تحميل الخادم مكتوبة في Go. تم تطويره من قبل مهندسين من Buoyant ، مما ينشئ شبكة خدمة لـ Kubernetes - Linkerd. إنه جزء من Cloud Cloud Computing Foundation
ويعتبر منافسًا لـ
Google Istio .
صور - جوشوا أراغون - Unsplashعادةً ما تقوم الأدوات المساعدة لاختبار الحمل بالتحقق من إمكانيات الخادم ، وإرساله بأكبر عدد ممكن من الطلبات في وقت قصير. يقول مؤلفو slow_cooker أن أداتهم تسمح لك بتقييم عمل الحديد في ظل حمولة يمكن التنبؤ بها لفترة طويلة.
يستخدم خبراء الطفو تطويرهم لاختبار Linkerd والخدمات الأخرى ، مثل nginx. الأداة صغيرة جدًا - يبلغ عمرها ثلاثة أعوام تقريبًا - حتى يحصل على مجتمع كبير. لكن الوضع قد يتغير في المستقبل ، على سبيل المثال ، تم تخزين مستودعها بالفعل في Skysanner ، وهي خدمة دولية للبحث عن تذاكر الطيران.
يمكنك العثور على شفرة المصدر
على جيثب .
أداة لاختبار التحميل والانحدار للخدمات الميكروية والحاويات والمواقع المستضافة في السحابة. هو مكتوب في Go و بواسطة مطوري JavaScript من Load Impact - هذا تطبيق لاختبار "ثبات" المواقع.
يعتمد العمل مع k6 على كل شيء كنموذج رمز ، عندما يتم كتابة منطق الاختبار وجميع الإعدادات في JavaScript. في البرامج النصية ، يمكن تجميع الخطوات الفردية ، والتي قد تكون مناسبة لأولئك الذين اعتادوا على اتباع مبادئ BDD. فيما يلي مثال على هذه المجموعة:
import { group } from "k6"; export default function() { group("user flow: returning user", function() { group("visit homepage", function() {
تتيح الأداة أيضًا إمكانية
تسجيل البرامج النصية وإنشاء الرسوم البيانية - يتم تنفيذ الوظيفة الأخيرة على InfluxDB و Grafana. ولديه تكامل مع أنظمة CI مثل Jenkins و Circle CI و Team City و GitLab.
يقول المستخدمون أن k6
ليس كثيف الاستخدام للموارد ولديه واجهة برمجة تطبيقات ملائمة. ولكن هناك العديد من العيوب ، على وجه الخصوص ، k6
لا يدعم طبقة الويب
ولا يعرف كيفية إجراء الاختبارات على الأنظمة الموزعة. على الرغم من أن مطوري k6 في الخيط الموضوعي على Hacker News
قالوا إن هذه الميزات ستظهر في المستقبل.
إذا كنت ترغب في التعرف على إمكانيات k6 بنفسك ، يوصي سكان HN بالبدء في
التوثيق الفني - فهو مفصل وأمثلة. إذا كان لديك أي أسئلة ، يمكنك الاتصال
بالمنتدى الرسمي .
يسمح لك Siege بتحميل خوادم الويب للاختبار. تم إنشاء الأداة المساعدة بواسطة المهندس Jeff Fulmer (Jeff Fulmer) ، بحيث يمكن للمطورين التحقق من استهلاك الموارد من التعليمات البرمجية الخاصة بهم في ظروف قريبة من القتال. يحاكي Siege دفقًا مستمرًا من الوصول إلى الموقع من العديد من المستخدمين ، كما لو كان يحمل الخادم "تحت الحصار" - ومن هنا جاء اسم الأداة.
بعد الاختبار ، تُظهر الأداة المساعدة: وقت المسح ، وعدد المعاملات في الثانية الواحدة ، والإنتاجية ، وعدد الطلبات الناجحة وغير الناجحة ، بالإضافة إلى عددها برمز الاستجابة 200. فيما يلي
مثال على تقرير تم إنشاؤه بواسطة Siege.
الحصار واسع الانتشار في مجتمع تكنولوجيا المعلومات. على سبيل المثال ، يتم تخصيص قسم كامل في كتاب "
NGINX High Performance " لتحميل الاختبار بمساعدته. كما أنها
تستخدم من قبل بعض مقدمي السحابة.
من بين أوجه القصور في Siege ، يمكن تمييز بناء الجملة غير القياسي والأساليب غير الواضحة لحساب معلمات الاختبار - على سبيل المثال ،
تعتبر عمليات إعادة التوجيه معاملات ناجحة ، وبالتالي قد يتجاوز عددها إجمالي عدد الطلبات. إذا كنت ترغب في تجربة Siege في الممارسة ، فقم بدراسة
الدليل على الإنترنت - هناك بعض "الشذوذ" في النظام.
قراءة إضافية على 1cloud.ru بلوق:
ما هو الجديد في Linux kernel 5.3 - برامج تشغيل الرسومات ، والمحاكاة الافتراضية ، وغيرها من التحديثات
لماذا مطوري المستعرض العادي رفضوا مرة أخرى عرض النطاق الفرعي
لماذا تغيرت متطلبات Apple لمطوري التطبيقات