ابزاری برای تست استرس و سنجش عملکرد سرور با Python. این اسکریپت با ارسال درخواستهای همزمان در دستههای مختلف، آمار دقیق و گزارش کامل JSON از رفتار سرور تولید میکند.
- ارسال درخواستهای همزمان در ۴ دسته: ۱۰۰، ۲۰۰، ۵۰۰ و ۱۰۰۰ درخواست (مجموعاً ۱۸۰۰ درخواست)
- اجرای غیرهمزمان (Async) با
aiohttpوasyncio - گزارشدهی کامل در قالب JSON (ذخیره در پوشه
reports/با نامstress_test_report_<تاریخ>_<ساعت>.json) - محاسبه میانگین زمان پاسخدهی و پرسنتایلهای p50، p90، p95 و p99
- تحلیل کدهای وضعیت HTTP و خطاهای اتصال
- نمایش خلاصه نتایج هر دسته در ترمینال پس از پایان تست
- Python 3.7 یا بالاتر
- کتابخانه
aiohttp
git clone https://github.com/movtigroup/robot-test-request.git
cd robot-test-requestpip install aiohttpقبل از اجرا، آدرس سرور هدف را در فایل app/robat.py و در متغیر url وارد کنید:
url = 'https://example.com'در صورت تمایل میتوانید تعداد درخواستهای هر دسته را نیز در متغیر batch_sizes تغییر دهید:
batch_sizes = [100, 200, 500, 1000]cd app
python robat.pyاسکریپت دستهها را به ترتیب اجرا میکند و در پایان، خلاصه نتایج را در ترمینال نمایش داده و گزارش کامل را در فایل JSON ذخیره میکند.
گزارش JSON تولیدشده شامل بخشهای زیر است:
| بخش | توضیح |
|---|---|
test_configuration |
تنظیمات تست (اندازه دستهها و تعداد کل درخواستها) |
batch_results |
نتایج کامل هر دسته: وضعیت، زمان پاسخ، حجم پاسخ و هدرها |
overall_statistics |
آمار کلی: تعداد موفق/ناموفق، نرخ موفقیت و مدت کل تست |
response_time_percentiles |
پرسنتایلهای p50، p90، p95 و p99 زمان پاسخ |
robot-test-request/
├── app/
│ └── robat.py # اسکریپت اصلی تست استرس
├── README.md
└── SECURITY.md
این ابزار صرفاً برای تست بار روی سرورهایی است که مالک آنها هستید یا مجوز رسمی تست دارید. استفاده از این ابزار علیه سرورهای دیگران بدون اجازه، خلاف قانون است و مسئولیت آن کاملاً بر عهده کاربر میباشد.