প্রকল্প সম্পর্কে

Locust হলো HTTP এবং অন্যান্য প্রোটোকলের জন্য ডিজাইন করা একটি ওপেন-সোর্স পারফরম্যান্স এবং লোড টেস্টিং টুল। এর মূল শক্তি হলো এটি ডেভেলপারদের সাধারণ Python কোড ব্যবহার করে টেস্ট সিনারিও সংজ্ঞায়িত করতে দেয়, যার ফলে GUI বা ডোমেইন-স্পেসিফিক ল্যাঙ্গুয়েজের প্রয়োজন হয় না। টেস্টগুলো কমান্ড লাইন থেকে অথবা বিল্ট-ইন ওয়েব-ভিত্তিক UI-এর মাধ্যমে চালানো যেতে পারে, যা থ্রুপুট, রেসপন্স টাইম এবং এরর-এর মতো রিয়েল-টাইম মেট্রিক্স প্রদর্শন করে — যা পরবর্তীতে বিশ্লেষণের জন্য এক্সপোর্ট করা সম্ভব। Locust-এর প্রতিটি ইউজার একটি greenlet (লাইটওয়েট কোরুটিন)-এর ভেতরে চলে, যা ডেভেলপারদের কলব্যাক ছাড়াই লুপ, কন্ডিশনাল এবং ক্যালকুলেশনসহ ব্লকিং-স্টাইল Python কোড লিখতে সাহায্য করে। এটি টেস্টগুলোকে ডিবাগ করা, ভার্সন-কন্ট্রোল করা এবং CI/CD পাইপলাইনে ইন্টিগ্রেট করা সহজ করে তোলে। Locust একাধিক মেশিনে হরিজন্টালি স্কেল করতে পারে এবং ইভেন্ট-ড্রিভেন কনকারেন্সির জন্য gevent ব্যবহার করে, যা প্রতি প্রসেসে হাজার হাজার কনকারেন্ট ইউজার সক্ষম করে। যদিও র রিকোয়েস্ট পার সেকেন্ড-এর হিসেবে এটি সর্বোচ্চ পারফর্মিং টুল নাও হতে পারে, তবে প্রতি ইউজারের জন্য এর কম ওভারহেড এটিকে উচ্চ কনকারেন্ট ওয়ার্কলোড সিমুলেট করার জন্য আদর্শ করে তোলে। এই টুলটি এক্সটেনসিবল: ব্যবহারকারীরা স্ট্যান্ডার্ড Python লাইব্রেরি ইম্পোর্ট করতে পারেন, নন-HTTP সিস্টেমের জন্য কাস্টম ক্লায়েন্ট লিখতে পারেন, TimescaleDB-এর মতো ডেটাবেসে রিয়েল-টাইম রিপোর্টিং প্লাগ-ইন করতে পারেন অথবা কাস্টম লোড শেপ সংজ্ঞায়িত করতে পারেন। কমিউনিটি প্লাগ-ইনগুলো এর সক্ষমতাকে আরও বৃদ্ধি করে। Microsoft, Locust-এর রক্ষণাবেক্ষণে অবদান রেখেছে এবং স্পনসর করছে। তারা Azure Load Testing-ও অফার করে, যা একটি ম্যানেজড সার্ভিস। এটি স্কেলে Locust টেস্ট চালায়, Azure DevOps এবং GitHub-এর সাথে ইন্টিগ্রেট করে এবং টেস্ট রেজাল্টকে ইনফ্রাস্ট্রাকচার মেট্রিক্সের সাথে কো-রিলেট করে। Copilot দ্বারা চালিত একটি VS Code এক্সটেনশন সরাসরি এডিটরের মধ্যেই Locust টেস্ট তৈরি এবং রান করতে সাহায্য করে। শেখার এবং সমস্যা সমাধানের জন্য ডকুমেন্টেশন, StackOverflow এবং Discord-এর মাধ্যমে কমিউনিটি সাপোর্ট এবং একটি ব্লগ উপলব্ধ রয়েছে। MIT লাইসেন্সের অধীনে পরিচালিত Locust মূলত Jonatan Heyman তৈরি করেছিলেন, বর্তমানে এর রক্ষণাবেক্ষণ নেতৃত্ব দিচ্ছেন Lars Holmberg এবং UI ডেভেলপমেন্ট করছেন Andrew Baldwin। প্রজেক্টটি সকল অবদানকারীকে কৃতিত্ব দেয় এবং Microsoft-এর চলমান সমর্থনের কথা স্বীকার করে।