برنامه نویسی

بارگذاری تست برای API با معیار Apache در ویندوز

من اخیراً نیاز به انجام آزمایش بار روی برخی از نقاط پایانی که برای پروژه ای در سیستم عامل ویندوز خود ایجاد کرده بودم، داشتم. راه‌اندازی این بخشی از یک کار دشوار بود زیرا بیشتر آموزش‌ها روی یک دستگاه اوبونتو انجام می‌شد.

تست بار چیست؟

Load Testing نوعی تست عملکرد است که به شما بینشی در مورد نحوه واکنش برنامه وب یا سرور HTTP شما زمانی که تقاضای بیشتری روی آن اعمال می شود، می دهد.

برای این مقاله، ما بر روی آزمایش سرور HTTP با استفاده از Apache Benchmark در سیستم عامل ویندوز تمرکز خواهیم کرد.

الزامات

نصب بنچمارک آپاچی

آخرین نسخه Apache Benchmark برای ویندوز را می توانید در اینجا نصب کنید

آخرین باینری

ساختار پوشه پس از باز کردن زیپ

حرکت به داخل Apache24/bin دایرکتوری و هر دو را کپی کنید ab و abs فایل های اجرایی در فهرست پروژه شما (اختیاری).

فایل های ab و abs exec

ساختار فعلی پروژه

ایجاد یک درخواست GET به سرور ما

دستور زیر را در ترمینال خود، در دایرکتوری که در آن قرار دارید اجرا کنید ab و abs فایل های اجرایی قرار دارند:

./ab -c 10 -n 20 http://localhost:8080/ 
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • -c همزمانی
    این نشان دهنده تعداد درخواست های متعدد در یک زمان است. برای این تست، ما در حال ارسال 10 درخواست به سرور خود به طور همزمان هستیم.

  • -n درخواست
    این نشان دهنده تعداد درخواست هایی است که باید انجام شود.

بیشتر از این پرچم ها و توضیحات مربوط به آن را می توان در سایت Apache Benchmark یافت

برای این تست، پاسخ مورد انتظار ما در زیر آمده است.

this is ApacheBench, Version 2.3 <$Revision: 1903618 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient).....done


Server Software:
Server Hostname:        localhost
Server Port:            8080

Document Path:          /
Document Length:        23 bytes

Concurrency Level:      10
Time taken for tests:   0.033 seconds
Complete requests:      20
Failed requests:        0
Total transferred:      19240 bytes
HTML transferred:       460 bytes
Requests per second:    606.58 [#/sec] (mean)
Time per request:       16.486 [ms] (mean)
Time per request:       1.649 [ms] (mean, across all concurrent requests)
Transfer rate:          569.85 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.4      0       1
Processing:     3   12   3.9     13      18
Waiting:        2   10   4.0     10      17
Total:          3   13   3.8     13      18

Percentage of the requests served within a certain time (ms)
  50%     13
  66%     15
  75%     16
  80%     17
  90%     17
  95%     18
  98%     18
  99%     18
 100%     18 (longest request)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این یک بینش دقیق در مورد نحوه عملکرد سرور ما هنگام ارسال 10 درخواست همزمان ارائه می دهد. مدت زمان مورد نیاز برای پردازش درصد معینی از درخواست های ما را نشان می دهد و تجزیه و تحلیل عمیقی از عملکرد سرور ما ارائه می دهد.

ایجاد یک درخواست POST به سرور ما با استفاده از Apache Benchmark

هنگام ایجاد یک درخواست POST که به بدنه درخواست نیاز دارد، باید داده ها را به درخواست بنچمارک خود منتقل کنیم. این کار با ایجاد a انجام می شود .txt فایلی که باید حاوی اطلاعات بدن درخواست ما باشد. فایل باید در همان مکان ما باشد ab و abs فایل های اجرایی

برای این تست، یک را ایجاد کردم post.txt فایلی که حاوی یک شی JSON است که بدنه درخواست ما را نشان می دهد.

متن درخواست باید در یک خط و بدون فضای انتهایی اضافی باشد.

نکته: برای قرار دادن داده ها در یک خط در VS Code، کل محتوا را انتخاب کرده و از این دستور استفاده کنید CTRL + SHIFT + J.

فایل حاوی اطلاعات بدن درخواست ما

به اجرای خط فرمان زیر در ترمینال خود ادامه دهید.

./ab -p post.txt -T application/json  -c 5 -n 5 http://localhost:8080/v1/product
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • -p ارسال فایل
    این نشان می دهد که فایل حاوی داده های POST است.

  • -t نوع محتوا
    هدر نوع محتوا برای استفاده برای داده های POST/PUT، به عنوان مثال. application/x-www-form-urlencoded. پیش فرض متن/ساده است.

برای تست سروری که نیاز به هدر احراز هویت با معیار Apache دارد، می توان از دستور زیر استفاده کرد:

ab -p post.txt -T application/json -H 'Authorization: Token abcdbdhbuhfrhv' -c 10 -n 200 http://localhost:8080/v1/product
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • -H هدر سفارشی – این هدر اضافی به درخواست اضافه می کند. آرگومان معمولاً به شکل یک خط سرصفحه معتبر است که حاوی یک جفت مقدار فیلد جدا شده با کولون است (به عنوان مثال، “Accept-Encoding: zip/zop; 8bit”).

توجه: Apache Bench صرف نظر از سطح همزمانی (مشخص شده با پرچم -c) فقط از یک رشته سیستم عامل استفاده می کند. بنابراین، هنگام محک زدن سرورهای با ظرفیت بالا، یک نمونه از Apache Bench می تواند یک گلوگاه باشد. برای اشباع کامل URL هدف، از نمونه های اضافی Apache Bench به صورت موازی استفاده کنید (اگر سرور شما دارای چندین هسته پردازنده است).

فراموش نکنید که لایک کنید، به اشتراک بگذارید و اگر این را مفید دیدید به من اطلاع دهید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید
بستن
دکمه بازگشت به بالا