ماڪڙ سان API لوڊ جاچ

ماڪڙ سان API لوڊ جاچ

ماڪڙ سان API لوڊ جاچ: تعارف

توهان شايد هن صورتحال ۾ اڳ ۾ ئي ٿي چڪا آهيو: توهان ڪوڊ لکندا آهيو جيڪو ڪجهه ڪري ٿو، مثال طور هڪ آخري پوائنٽ. توهان پوسٽمن يا اندرا استعمال ڪندي پنهنجي آخري پوائنٽ کي جانچيو، ۽ سڀ ڪجهه ٺيڪ ڪم ڪري ٿو. توهان ڪلائنٽ سائڊ ڊولپر کي آخري پوائنٽ تي منتقل ڪريو ٿا، جيڪو پوء استعمال ڪري ٿو API ۽ ايپليڪيشن کي ترتيب ڏئي ٿو. پر پوءِ، API ناڪام ٿئي ٿي جڏهن صارف ايپ استعمال ڪن ٿا.

اهو ٿي سگهي ٿو هڪ سپر پريشان ڪندڙ صورتحال ۾ هجڻ، نه ته ڪاروبار لاء قيمتي ذڪر ڪرڻ. اهو ئي سبب آهي ته سافٽ ويئر ڊولپرز سافٽ ويئر سسٽم تي مختلف قسم جا امتحان کڻندا آهن انهي کي يقيني بڻائڻ لاءِ ته اهي توقع جي مطابق انجام ڏين ٿا. APIs مختلف نه آهن. مقرري کان پهريان، توهان کي گهٽ ۾ گهٽ ڪارڪردگي ٽيسٽ ۽ سيڪيورٽي ٽيسٽ ڪرڻ گهرجي.

ڪارڪردگي ٽيسٽ کي ڪارڪردگي ٽيسٽ ۽ لوڊ ٽيسٽ ۾ گروپ ڪري سگھجي ٿو. فنڪشنلٽي ٽيسٽ اهي آهن جيڪي توهان عام طور تي پوسٽ مين يا اندرا لاءِ استعمال ڪندا آهيو. اهي انهي ڳالهه کي يقيني بڻائين ٿا ته توهان جي API ڪم ڪري ٿي جيئن توهان توقع ڪئي. لوڊ ٽيسٽ، ٻئي طرف، وڌيڪ ڳڻتي آهي ته توهان جو API حقيقي دنيا جي استعمال ۽ چوٽي لوڊ سان ڪيئن انجام ڏئي ٿو، ۽ اهو ئي آهي جيڪو هي مضمون آهي. اچو ته وڌيڪ تفصيل سان لوڊ ٽيسٽ کي ڏسو.

API لوڊ جاچ ڇا آهي؟

API لوڊ ٽيسٽنگ ٽيسٽنگ جو ھڪڙو قسم آھي ڊولپرز استعمال ڪندا آھن عام ۽ چوٽي جي لوڊ کي ختم ڪرڻ لاءِ. ھن قسم جي جاچ ڊولپرز کي اجازت ڏئي ٿي ته ھڪ API جي حقيقي دنيا جي ڪارڪردگي جو جائزو وٺڻ کان پھريائين ان کي مقرر ڪيو وڃي. اهو انهن کي سسٽم جي وڌ ۾ وڌ آپريٽنگ ظرفيت جي نشاندهي ڪرڻ ۾ مدد ڪري ٿو، جيڪڏهن ڪو به رڪاوٽون، ۽ ڪارڪردگي جي خرابي. API لوڊ جا امتحان عام طور تي ورچوئل استعمال ڪندڙ ٺاهڻ سان ڪيا ويندا آهن ۽ پوءِ انهن کي استعمال ڪرڻ سان گڏ API جي ڪارڪردگي کي جانچڻ لاءِ. 

API لوڊ ٽيسٽ ميٽرڪ کي ماپيندا آهن جهڙوڪ جوابي وقت، سمورو استعمال ڪندڙ، ان پٽ ريٽ، وسيلن جي استعمال جي سطح، ناڪامي جي وچ ۾ وچولي وقت (MTBF)، ناڪام ٿيڻ جو مطلب (MTTF)، وغيره. اهي سڀئي ميٽرڪ استعمال ڪري سگهجن ٿا اهو طئي ڪرڻ لاءِ ته API ڪيترو سٺو ڪم ڪري رهيو آهي.

لوڊ ٽيسٽ جا قسم

لوڊ جاچ جا ڪيترائي قسم آهن، هر هڪ ان جي استعمال جي ڪيسن سان. اچو ته انهن مان ڪجهه تي هڪ نظر وجهون.

لوڊ جاچ: هي هڪ لوڊ ٽيسٽ جو بنيادي روپ آهي. اهو سسٽم جي ڪارڪردگي جو جائزو وٺڻ لاء استعمال ڪيو ويو آهي (هن صورت ۾، هڪ API) عام لوڊ ۽ متوقع چوٽي لوڊ هيٺ.

دٻاء جي جاچ: هي هڪ تمام ڳري لوڊ هيٺ هڪ نظام جي ڪارڪردگي جو جائزو وٺڻ لاء استعمال ڪيو ويندو آهي. هن ٽيسٽ جو مقصد اهو ڏسڻ آهي ته ڇا سسٽم ناڪامي کان پوءِ بحال ٿئي ٿو، ۽ ائين ڪرڻ ۾ ڪيترو وقت لڳي ٿو. لوڊ عام طور تي سست رفتار سان وڌايو ويندو آهي جيستائين اهو سسٽم جي صلاحيتن کان وڌي وڃي.

اسپيڪ جاچ: اهو ٿورڙو ساڳيو آهي دٻاءُ جي جاچ ڪرڻ کان سواءِ، اوچتو اوچتو اوچتو اوچتو اوچتو اوچتو اوچتو لاڳو ڪيو ويندو آهي، ان کي سست رفتاري سان وڌائڻ جي مخالفت. ھن قسم جي ٽيسٽ جي نمائندگي ڪري ٿي ته ڇا ٿئي ٿو جڏھن توھان جي اوسط تعداد ۾ اوچتو اسپيڪ ٿئي ٿي صارفين يا سياحن، يا جڏھن توھان جي سسٽم تي DDOS حملو ٿئي ٿو.

سوڪ جاچ: هي امتحان مٿي ڏنل ٻين جي برعڪس آهي. اهو توهان جي سسٽم کي عام لوڊ جي 80٪ (يا ان جي باري ۾) هيٺ رکي ٿو ۽ ان کي ڊگهي عرصي تائين هلائي ڇڏيندو آهي، چئو 12 کان 14 ڪلاڪ. ھن قسم جو امتحان طئي ڪري ٿو ته وقت سان گڏ ھڪڙو نظام ڪيترو قابل اعتماد آھي.

Locust سان توهان جي APIs جي جانچ ڪريو

ڊولپرز وٽ مختلف اختيارن تائين رسائي آھي انھن جي APIs کي لوڊ ڪرڻ لاءِ. ڪجھ عام لوڊ جاچ جا اوزار Gatling، JMeter، ۽ Locust آھن. اسان هن مضمون ۾ لوڪسٽ تي ڌيان ڏينداسين.

Locust ھڪڙو پائٿون تي ٻڌل اوپن سورس لوڊ ٽيسٽنگ ٽول آھي جيڪو مٿين ڪمپنين پاران استعمال ڪيو ويو آھي جهڙوڪ گوگل، مائڪروسافٽ، ۽ رائٽ گيمز پنھنجي APIs کي جانچڻ لاءِ. هن آرٽيڪل ۾، اسين ڏيکارينداسين ته ڪيئن لوڊ ڪجي ٽيسٽ هڪ API. 

هن سبق لاءِ، مان فلاسڪ سان هڪ سادي API ٺاهيندس. توهان مون سان گڏ پيروي ڪري سگهو ٿا يا صرف پنهنجو API ٺاهي سگهو ٿا نوڊ سان، يا جيڪو فريم ورڪ توهان سان آرام سان آهي.

گه

Python 3

سيٽ اپ ۽ انسٽاليشن

پهرين، توهان کي پنهنجي PC تي هڪ مجازي ماحول قائم ڪرڻ جي ضرورت آهي ته جيئن توهان پنهنجي گلوبل پٿون ماحول کي خراب نه ڪريو. ائين ڪرڻ لاء، ھيٺ ڏنل حڪمن کي هلائڻ. نوٽ ڪريو ته اهي حڪم ونڊوز ٽرمينل تي لاڳو ٿين ٿا.

$ mkdir پروجيڪٽ

$ سي ڊي / ڊي رستو \ ڏانهن \ پروجيڪٽ

$ python -m venv venv

$ venv \ اسڪرپٽ \ ايڪٽيويٽ

 

پهريون، اسان هڪ ٺاهيو منصوبي ڊاريڪٽري. ان کان پوء اسان اسان جي موجوده ڊاريڪٽري کي تبديل ڪيو منصوبي. اسان پوءِ ٺاھيو ۽ چالو ڪيو مجازي ماحول Python لاءِ ان ڊاريڪٽري اندر. 

هاڻي، اسان انسٽال ڪرڻ لاء اڳتي وڌو فلاس(اسان ان کي استعمال ڪنداسين آخري پوائنٽ ٺاهڻ لاءِ لوڊ ٽيسٽ ٿيڻ لاءِ) ۽ جستجو پاڻ کي. 

 

فلاسڪ کي انسٽال ڪرڻ لاءِ، هلايو. پڪ ڪريو ته توهان ۾ آهيو منصوبي جتي توهان هڪ مجازي ماحول پيدا ڪيو.

$pip انسٽال فلاسڪ

 

Locust انسٽال ڪرڻ لاءِ ، هلايو

$pip install locust

 

هڪ دفعو اهو ٿي چڪو آهي، هيٺ ڏنل حڪمن کي ٽائيپ ڪريو. پڪ ڪريو ته توهان ۾ آهيو منصوبي ڊاريڪٽري جڏهن توهان هي ڪندا آهيو.

$ ڪاپي nul __init__.py

$ mkdir ايپ

$ ڪاپي nul app\app.py

$ ڪاپي nul app\__init__.py

 

هي ڪمانڊ ڪجهه فائلون ٺاهي ٿو جن کي اسان فلاسڪ استعمال ڪندي اسان جي آخري پوائنٽ ٺاهڻ لاءِ استعمال ڪنداسين. توھان انھن فائلن کي پنھنجي فائل ايڪسپلورر ذريعي استعمال ڪري سگھوٿا. پر ان ۾ ڪهڙو مزو آهي؟ هڪ دفعو توهان اهو ڪيو آهي، هيٺ ڏنل ڪوڊ کي نقل ڪريو app.py

فلاسڪ مان درآمد ڪريو Flask، jsonify، درخواست

app = فلاسڪ(__name__)

ڪار_ماڊل = [

  {'برانڊ': 'ٽيسلا'، 'ماڊل': 'ماڊل ايس' }

]

 

جهاز_ماڊل = [

  {'برانڊ': 'بوئنگ'، 'ماڊل': '747' }

]

 

@app.route('/cars')

def get_cars():

  واپسي jsonify(car_models)

@app.route('/planes')

def get_planes():

  واپسي jsonify(plane_models)

جيڪڏھن __name__ == '__main__':

    app.run(debug=True)  

 

مٿي ڏنل ڪوڊ ۾ هڪ طريقو آهي حاصل_ڪارون ڪار برانڊز ۽ انهن جي ماڊلز جي لسٽ حاصل ڪرڻ لاءِ استعمال ڪيو ويو، ۽ حاصل_ جهاز جهاز جي برانڊن ۽ انهن جي ماڊلز جي فهرست حاصل ڪرڻ لاءِ استعمال ڪيو ويو. اسان لاءِ لوڊ ڪرڻ لاءِ ٽيسٽ هن آخري پوائنٽ کي، اسان کي هلائڻو پوندو app.py. ائين ڪرڻ لاءِ هيٺ ڏنل حڪم کي هلايو.

$ python path\to\app.py

هڪ دفعو توهان ان کي هلائيندا آهيو، توهان کي هن وانگر ڪجهه ڏسڻ گهرجي:

API لوڊ جاچ 1

جيڪڏهن توهان ٽرمينل مان URL ڪاپي ڪريو ۽ ٽائپ ڪريو ڪارن or سيز / کان پوء، توهان کي اتي ڊيٽا ڏسڻ جي قابل هوندو. بهرحال، اسان جو مقصد آخري پوائنٽ کي ماڪڙ سان جانچڻ آهي، نه برائوزر سان. سو اچو ته ائين ڪريون. توھان جي روٽ ۾ ھيٺ ڏنل حڪم ھلايو منصوبي ڊاريڪٽري.

 

$ ڪاپي nul locust_test.py

 

اهو توهان جي روٽ ۾ هڪ 'locust_test.py' فائل ٺاهي ٿو منصوبي ڊاريڪٽري. هڪ دفعو توهان اهو ڪيو آهي، فائل کوليو ۽ هيٺ ڏنل ڪوڊ ۾ پيسٽ ڪريو. اسان ان جي مختصر وضاحت ڪنداسين.

 

درآمد جو وقت

locust import HttpUser کان، ڪم، وچ ۾

 

ڪلاس User Behavior(HttpUser):

    انتظار_وقت = وچ ۾ (5, 10)

 

    @ ڪم

    def get_cars(self):

        self.client.get('/cars')

    

    @ ڪم

    def get_planes(self):

        self.client.get('/planes')

 

هي هڪ بنيادي مثال آهي Locust استعمال ڪرڻ لاءِ ٽيسٽ هڪ API. پهريون، اسان هڪ ڪلاس ٺاهيو استعمال ڪندڙ جي روييجنهن کي ڪو به مناسب نالو ڏئي سگهجي ٿو پر وڌايو وڃي Http استعمال ڪندڙ. Http استعمال ڪندڙ اهو طبقو آهي جيڪو ڪيترن ئي ورچوئل استعمال ڪندڙن کي فوري ڪرڻ جو خيال رکي ٿو انهن ڪمن کي انجام ڏيڻ لاءِ جيڪي اسان بيان ڪريون ٿا استعمال ڪندڙ جي رويي ڪلاس. 

ھڪڙو ڪم ھڪڙي طريقي سان ترتيب ڏيڻ سان بيان ڪيو ويو آھي @ ڪم سينگار ڪندڙ. اسان وٽ پڻ هڪ فنڪشن آهي جنهن کي سڏيو ويندو آهي وچ ۾() جيڪو اسان کي اجازت ڏئي ٿو سيڪنڊن جي حد مقرر ڪرڻ لاءِ انتظار ڪرڻ لاءِ ايندڙ ڪم تي عمل ڪرڻ کان اڳ. توھان ڏسي سگھوٿا ته اسان پنھنجي ڪوڊ ۾ ان لاءِ 5 کان 10 سيڪنڊن جي حد مقرر ڪئي آھي. 

ڪوڊ کي هلائڻ لاء، پڪ ڪريو ته توهان اڃا تائين پنهنجي مجازي ماحول ۾ آهيو. جيڪڏھن توھان ٺاھيو آھي جيڪو سرور API جي خدمت ڪندي استعمال ڪري رھيو آھي، ھڪڙو نئون ٽرمينل کوليو، پنھنجي ڊاريڪٽري کي پنھنجي منصوبي ڊاريڪٽري، ۽ توهان ٺاهيل مجازي ماحول کي چالو ڪيو. توھان مٿي ڏنل مجازي ماحول کي چالو ڪرڻ لاءِ حڪم ڳولي سگھو ٿا. ھاڻي ھيٺ ڏنل حڪم پنھنجي ٽرمينل ۾ داخل ڪريو.

 

$ locust -f locust_test.py

 

توھان کي ڪجھھ ڏسڻ گھرجي:

API لوڊ جاچ 2

ڊفالٽ طور، لوڪسٽ جو ويب انٽرفيس http://localhost/8089 تي واقع آهي. جيڪڏهن توهان ويب سائيٽ جو دورو ڪريو ٿا، توهان کي ڏسڻ گهرجي هڪ انٽرفيس جهڙو:

API لوڊ جاچ 3

انٽرفيس مان، اسان استعمال ڪندڙن جو تعداد بيان ڪري سگھون ٿا، اسپون ريٽ (يوزر في سيڪنڊ ٺاھيل) ۽ ھوسٽ. توھان حاصل ڪري سگھوٿا پنھنجي ميزبان جو پتو چيڪ ڪندي ٽرمينل جتي سرور ھلي رھيو آھي. اسان جي حالت ۾، اهو بندرگاهن تي آهي 5000. جڏهن توهان ڪلڪ ڪندا آهيو گهمڻ شروع ڪيو، توھان کي ھيٺ ڏنل انٽرفيس سان پيش ڪيو ويندو.

API لوڊ جاچ 4

اهو توهان کي ڏيکاري ٿو مختلف مفيد ميٽرڪس جهڙوڪ ناڪام درخواستن جو تعداد، درخواست لاء اوسط وقت، درخواست لاء گهٽ ۾ گهٽ وقت، درخواستون في سيڪنڊ، وغيره. هڪ دفعو توهان جيڪي ڏسي رهيا آهيو ان سان مطمئن آهيو، توهان اسٽاپ بٽڻ تي ڪلڪ ڪري سگهو ٿا. 


ان کان سواء انگ اکر tab، اتي هڪ آهي اهي تمثيلون اهڙا ٽيب جيڪو وڌيڪ ڏيکاري ٿو معلومات گراف جي صورت ۾، هيٺ ڏنل تصوير وانگر.

هتي هڪ آهي ڪل درخواستون في سيڪنڊ گراف, جوابي وقت گراف، ۽ استعمال ڪندڙن جو تعداد گراف، سڀ وقت جي خلاف سازش ڪئي وئي. گرافس کي استعمال ڪندي، توهان اندازو لڳائي سگهو ٿا ته ڪيترا استعمال ڪندڙ هڪ مقرر جوابي وقت لاءِ قابل قبول آهن، يا توهان استعمال ڪندڙن جي وڌندڙ تعداد جي باوجود مسلسل جوابي وقت لاءِ پنهنجا چارٽ مشاهدو ڪري سگهو ٿا، ۽ اهڙيون ٻيون بصيرتون. جيڪڏهن توهان انهن کي حصيداري ڪرڻ چاهيو ٿا انگ اکر ڪنهن ٻئي سان، توهان هڪ رپورٽ ڊائون لوڊ ڪري سگهو ٿا ڊائون لوڊ ڪريو ٽيب.

پڄاڻي ڪرڻ...

توهان جي API کي لوڊ ڪرڻ توهان جي ترقي جي عمل ۾ هڪ اهم سرگرمي آهي، تنهن ڪري پڪ ڪريو ته اهو توهان جي ڊيزائن جي چڪر ۾ شامل ڪيو ويو آهي. رستي جي ذريعي، توهان استعمال ڪندڙن جي تعداد ۽ اسپن جي شرح جي قيمتن کي مختلف ڪندي ٻين لوڊ ٽيسٽ جا قسم پڻ ڪري سگهو ٿا. 

جيڪڏهن توهان اسپائڪ ٽيسٽ ڪرڻ چاهيو ٿا ته، استعمال ڪندڙن جي تعداد لاءِ هڪ وڏي قيمت (چئو 2000) بيان ڪريو، ۽ پوءِ توهان جي اسپون ريٽ لاءِ هڪ جيتري وڏي قيمت (مثال طور 500). ان جو مطلب اهو آهي ته 4 سيڪنڊن ۾، توهان سڀني 2000 استعمال ڪندڙن کي ٺاهي ۽ توهان جي آخري پوائنٽن تائين رسائي حاصل ڪندا. هڪ دٻاء وارو امتحان ساڳيو هوندو، پر سپون جي شرح لاء تمام گهٽ قيمت سان. معلوم ڪرڻ لاءِ توهان سڀ ڪجهه ڪري سگهو ٿا ، چيڪ آئوٽ ڪريو Locust دستاويز