د ملخانو سره د API بار ازموینه

د ملخانو سره د API بار ازموینه

د ملخانو سره د API بار ازموینه: تعارف

تاسو شاید دمخه پدې حالت کې یاست: تاسو کوډ لیکئ چې یو څه کوي ، د مثال په توګه پای ټکی. تاسو د پوسټ مین یا بې خوبۍ په کارولو سره خپل پای ټکی ازموئ ، او هرڅه سم کار کوي. تاسو پای ټکی د پیرودونکي اړخ پراختیا کونکي ته لیږدئ ، څوک چې بیا مصرفوي API او غوښتنلیک ځای پرځای کوي. مګر بیا، API ناکام کیږي کله چې کاروونکي ایپ کاروي.

دا کیدی شي یو ډیر ځورونکي حالت وي چې پکې وي، نه د سوداګرۍ لپاره د قیمتي یادونه. له همدې امله د سافټویر پراختیا کونکي د سافټویر سیسټمونو مختلف ازموینې ترسره کوي ترڅو ډاډ ترلاسه کړي چې دوی د توقع سره سم ترسره کوي. APIs توپیر نلري. د ګمارلو دمخه، تاسو باید لږترلږه د فعالیت ازموینې او امنیتي ازموینې ترسره کړئ.

د فعالیت ازموینې د فعالیت ازموینې او بار ټیسټونو کې ګروپ کیدی شي. د فعالیت ازموینې هغه څه دي چې تاسو معمولا د پوسټ مین یا بې خوبۍ لپاره کاروئ. دوی ډاډ ورکوي چې ستاسو API فعالیت لکه څنګه چې تاسو تمه لرئ. د بار ازموینې، له بلې خوا، د دې په اړه ډیر اندیښمن دي چې ستاسو API څنګه د ریښتینې نړۍ کارولو او لوړ بار سره ترسره کوي، او دا هغه څه دي چې دا مقاله ده. راځئ چې په ډیر تفصیل سره د بار ازموینې وګورو.

د API بار ازموینه څه ده؟

د API بار ټیسټینګ د ازموینې یو ډول دی چې پراختیا کونکي یې په پای کې د نورمال او لوړ بار انډول کولو لپاره کاروي. دا ډول ازموینې پرمخ وړونکو ته اجازه ورکوي چې د API د ریښتیني نړۍ فعالیت ارزونه وکړي مخکې لدې چې ګمارل شي. دا د دوی سره مرسته کوي د سیسټم اعظمي عملیاتي ظرفیت وپیژني ، خنډونه که کوم وي ، او د فعالیت تخریب. د API بار ازموینې معمولا د مجازی کاروونکو رامینځته کولو سره ترسره کیږي او بیا یې په ورته وخت کې د API فعالیت ازموینې لپاره کارول کیږي. 

د API بار ازموینې میټریکونه اندازه کوي لکه د غبرګون وخت، همغږي کاروونکي، د زیرمې نرخونه، د سرچینو کارولو کچه، د ناکامۍ ترمنځ منځنۍ وخت (MTBF)، د ناکامۍ لپاره اوسط وخت (MTTF)، او داسې نور. دا ټول میټریکونه کارول کیدی شي ترڅو معلومه کړي چې API څومره ښه کار کوي.

د بار ازموینې ډولونه

د بار ازموینې ډیری ډولونه شتون لري، هر یو د هغې د کارولو قضیې سره. راځئ چې ځینې یې وګورو.

بار ازموینه: دا د بار ازموینې اساسي بڼه ده. دا د سیسټم فعالیت ارزولو لپاره کارول کیږي (په دې حالت کې، یو API) د نورمال بار او تمه شوي لوړ بار لاندې.

د فشار معاینه: دا د ډیر دروند بار لاندې د سیسټم فعالیت ارزولو لپاره کارول کیږي. د دې ازموینې هدف دا دی چې وګوري چې ایا سیسټم له ناکامۍ وروسته روغ کیږي ، او دا څومره وخت نیسي. بار معمولا ورو ورو پورته کیږي تر هغه چې دا د سیسټم وړتیاو څخه تیریږي.

د سپیک ازموینه: دا د فشار ازموینې ته یو څه ورته دی ، پرته لدې چې دروند بار په ناڅاپه توګه پلي کیږي ، د دې په مقابل کې چې ورو ورو پورته کیږي. دا ډول ازموینه څرګندوي چې څه پیښیږي کله چې ستاسو د اوسط کاروونکو یا لیدونکو په شمیر کې ناڅاپي زیاتوالی وي، یا کله چې ستاسو په سیسټم کې د DDOS برید وي.

د لندبل ازموینه: دا ازموینه د پورته نورو نورو برعکس ده. دا ستاسو سیسټم د نورمال بار 80٪ (یا شاوخوا) لاندې ساتي او دا د اوږدې مودې لپاره پرمخ وړي ، ووایه له 12 څخه تر 14 ساعتونو پورې. دا ډول ازموینه ټاکي چې د وخت په تیریدو سره سیسټم څومره معتبر دی.

د ملخانو سره ستاسو د APIs ازموینه

پراختیا کونکي د خپلو APIs بار کولو ازموینې لپاره مختلف انتخابونو ته لاسرسی لري. د بار کولو ځینې عام وسیلې ګیټلینګ ، JMeter ، او ملخان دي. موږ به پدې مقاله کې ملخان باندې تمرکز وکړو.

ملخان د پیتون پر بنسټ د خلاصې سرچینې بار ازموینې وسیله ده چې د غوره شرکتونو لکه ګوګل ، مایکروسافټ ، او ریوټ لوبو لخوا د دوی APIs ازموینې لپاره کارول کیږي. پدې مقاله کې ، موږ به وښیو چې څنګه د API ټیسټ بار کړو. 

د دې ټیوټوریل لپاره، زه به د فلاسک سره یو ساده API جوړ کړم. تاسو کولی شئ زما سره تعقیب کړئ یا یوازې د نوډ سره خپل API رامینځته کړئ ، یا کوم چوکاټ چې تاسو ورسره راحته یاست.

اړتیاوې

پیټون 3

تنظیم او نصب کول

لومړی ، تاسو اړتیا لرئ په خپل کمپیوټر کې یو مجازی چاپیریال تنظیم کړئ ترڅو تاسو خپل نړیوال Python چاپیریال ګډوډ نه کړئ. د دې کولو لپاره، لاندې کمانډونه پرمخ وړئ. په یاد ولرئ چې دا حکمونه د وینډوز ترمینل کې پلي کیږي.

$mkdir پروژه

$ cd/d لاره\to\پروژه

$ python -m venv venv

$ venv \ سکریپټونه فعال کړئ

 

لومړی، موږ یو جوړ کړ د پروژې د لارښود بیا موږ خپل اوسنی لارښود ته بدل کړ د پروژې د. بیا موږ د دې لارښود دننه د Python لپاره یو مجازی چاپیریال رامینځته او فعال کړ. 

اوس، موږ به نصبولو ته لاړ شو فلسک(موږ به دا د پای ټکي رامینځته کولو لپاره وکاروو ترڅو د بار ازموینه وشي) او ملخ پخپله. 

 

د فلاسک نصبولو لپاره، چلول. ډاډ ترلاسه کړئ چې تاسو په کې یاست د پروژې د چیرې چې تاسو یو مجازی چاپیریال رامینځته کړی.

$ pip install flask

 

د لوکس نصبولو لپاره، چلول

$ pip install locust

 

یوځل چې دا ترسره شي ، لاندې کمانډونه ولیکئ. ډاډ ترلاسه کړئ چې تاسو په خپل ځای کې یاست د پروژې د لارښود کله چې تاسو دا کار کوئ.

$ کاپي nul __init__.py

$ mkdir اپلیکیشن

$ کاپي nul app\app.py

$ کاپي nul app\__init__.py

 

دا کمانډ ځینې فایلونه رامینځته کوي چې موږ به یې د فلاسک په کارولو سره زموږ پای ټکي رامینځته کولو لپاره وکاروو. تاسو کولی شئ دا فایلونه د خپل فایل سپړونکي په کارولو سره رامینځته کړئ. خو په دې کې مزه څه ده؟ یوځل چې تاسو دا ترسره کړئ ، لاندې کوډ په کې کاپي کړئ app.py

د فلاسک واردولو څخه فلاسک، jsonify، غوښتنه

app = فلاسک(__نوم__)

موټر_موډل = [

  { 'برانډ': 'ټیسلا'، 'موډل': 'موډل ایس' }

]

 

د الوتکې ماډل = [

  {'برانډ': 'بوینګ'، 'موډل': '747' }

]

 

@app.route('/cars')

def get_cars():

  بیرته jsonify(car_models)

@app.route('/planes')

def get_planes():

  بیرته jsonify(plane_models)

که __نوم__ == '__مین__':

    app.run(debug=True)  

 

پورته کوډ یو میتود لري موټرې ترلاسه کړئ د موټر برانډونو او د دوی ماډلونو لیست ترلاسه کولو لپاره کارول کیږي ، او الوتکې ترلاسه کړئ د الوتکې برانڈونو او د دوی ماډلونو لیست ترلاسه کولو لپاره کارول کیږي. د دې لپاره چې موږ د دې پای ټکي ازموینه پورته کړو، موږ باید app.py چلوو. د دې کولو لپاره لاندې کمانډ چل کړئ.

$ python path\to\app.py

یوځل چې تاسو دا چل کړئ، تاسو باید داسې یو څه وګورئ:

د API بار ازموینه 1

که تاسو د ټرمینل څخه URL کاپي کړئ او ټایپ کړئ د موټرو or پلانونه د / وروسته، تاسو باید وکوالی شئ هلته ډاټا وګورئ. په هرصورت، زموږ هدف دا دی چې د پای ټکی د ملخان سره ازموینه وکړو، نه د براوزر سره. نو راځئ چې دا کار وکړو. لاندې کمانډ په خپل ریښی چل کړئ د پروژې د Directory.

 

$ کاپي nul locust_test.py

 

دا ستاسو په ریښی کې د 'locust_test.py' فایل رامینځته کوي د پروژې د لارښود یوځل چې تاسو دا ترسره کړئ ، فایل خلاص کړئ او لاندې کوډ کې پیسټ کړئ. موږ به یې په لنډه توګه تشریح کړو.

 

د واردولو وخت

د ملخانو واردولو څخه HttpUser، دنده، په منځ کې

 

ټولګي د کارونکي چلند (HttpUser):

    د انتظار وخت = تر منځ (5، 10)

 

    @ دنده

    def get_cars(ځان):

        self.client.get('/cars')

    

    @ دنده

    def get_planes(ځان):

        self.client.get('/planes')

 

دا د API ټیسټ بار کولو لپاره د لوکس کارولو یوه اساسي بیلګه ده. لومړی، موږ ټولګي جوړوو د کارونکي چلندچې کوم مناسب نوم ورکول کیدی شي مګر باید وغځول شي HttpUser. HttpUser هغه طبقه ده چې د څو مجازی کاروونکو ګړندي کولو ته پاملرنه کوي ترڅو هغه دندې ترسره کړي چې موږ یې په کې مشخص کوو د کارونکي چلند ټولګي. 

یوه دنده د میتود سره د سینګار کولو سره مشخص کیږي @ دنده سینګار کوونکی موږ یو فعالیت هم لرو چې نوم یې دی تر منځ() دا موږ ته اجازه راکوي چې د راتلونکي دندې اجرا کولو دمخه د انتظار لپاره څو ثانیې مشخص کړو. تاسو لیدلی شئ چې موږ په خپل کوډ کې د دې لپاره له 5 څخه تر 10 ثانیو پورې حد ټاکلی. 

د کوډ چلولو لپاره، ډاډ ترلاسه کړئ چې تاسو لاهم په خپل مجازی چاپیریال کې یاست. که هغه یو چې تاسو جوړ کړی د سرور لخوا کارول کیږي چې API ته خدمت کوي، نو یو نوی ټرمینل پرانیزئ، خپل ډایرکټر خپل ته بدل کړئ د پروژې د لارښود، او هغه مجازی چاپیریال فعال کړئ چې تاسو یې جوړ کړی. تاسو کولی شئ پورته د مجازی چاپیریال فعالولو لپاره کمانډ ومومئ. اوس، لاندې کمانډ په خپل ترمینل کې دننه کړئ.

 

$ locust -f locust_test.py

 

تاسو باید داسې یو څه وګورئ:

د API بار ازموینه 2

په ډیفالټ ، د ملخان ویب انٹرفیس په http://localhost/8089 کې موقعیت لري. که تاسو ویب پاڼې ته لاړ شئ، تاسو باید د دې په څیر یو انٹرفیس وګورئ:

د API بار ازموینه 3

د انٹرفیس څخه، موږ کولی شو د کاروونکو شمیر، د سپان نرخ (په هره ثانیه کې جوړ شوي کاروونکي)، او کوربه مشخص کړو. تاسو کولی شئ د ټرمینل په چک کولو سره د خپل کوربه پته ترلاسه کړئ چیرې چې سرور روان دی. زموږ په قضیه کې، دا په 5000 بندر کې دی. کله چې تاسو کلیک وکړئ غولیدل پیل کړئ، تاسو به لاندې انٹرفیس سره وړاندې شي.

د API بار ازموینه 4

دا تاسو ته مختلف ګټور میټریکونه ښیې لکه د ناکامو غوښتنو شمیر، د غوښتنې لپاره اوسط وخت، د غوښتنې لپاره لږترلږه وخت، په هره ثانیه کې غوښتنې، او داسې نور. یوځل چې تاسو د هغه څه څخه راضي یاست چې تاسو یې ګورئ ، تاسو کولی شئ د سټاپ تڼۍ کلیک وکړئ. 


د Statistics tab، شته a چارتونه ټب چې نور ښیي معلومات د ګراف په بڼه، د لاندې انځور په څیر.

شته دی په هر ثانیه ګراف کې ټولې غوښتنې, د غبرګون وخت ګراف، او د کاروونکو شمیر ګراف، ټول د وخت په وړاندې سازش شوي. د ګرافونو په کارولو سره، تاسو کولی شئ معلومه کړئ چې څومره کاروونکي د ثابت ځواب وخت لپاره د منلو وړ دي، یا تاسو کولی شئ د کاروونکو د زیاتیدونکي شمیر سره سره د دوامداره غبرګون وخت لپاره خپل چارټونه وګورئ، او د دې په څیر نور بصیرتونه. که تاسو غواړئ دا شریک کړئ اخېستي د بل چا سره، تاسو کولی شئ له دې څخه یو راپور ډاونلوډ کړئ ډاټا ډاونلوډ کړئ ټب.

نتیجه اخیستل...

ستاسو د API بار ازموینه ستاسو د پراختیا پروسې کې یو مهم فعالیت دی ، نو ډاډ ترلاسه کړئ چې دا ستاسو د ډیزاین دورې کې شامل شوی. د لارې په توګه، تاسو کولی شئ د کاروونکو شمیر او د سپان نرخ لپاره د ارزښتونو په توپیر سره د بار ازموینې نور ډولونه هم ترسره کړئ. 

که تاسو غواړئ د سپیک ټیسټ ترسره کړئ، د کاروونکو شمیر لپاره لوی ارزښت (وایی 2000) مشخص کړئ، او بیا ستاسو د سپون نرخ لپاره مساوي لوی ارزښت (د مثال په توګه 500). دا پدې مانا ده چې په 4 ثانیو کې، تاسو به ټول 2000 کاروونکي جوړ کړئ او ستاسو پای ټکي ته لاسرسی ومومئ. د فشار ازموینه به ورته وي، مګر د سپان نرخ لپاره خورا ټیټ ارزښت سره. د ټولو موندلو لپاره چې تاسو یې کولی شئ، ملخان وګورئ لاسوند