टोळ सह API लोड चाचणी

टोळ सह API लोड चाचणी

टोळ सह API लोड चाचणी: परिचय

तुम्ही कदाचित याआधी या परिस्थितीत असाल: तुम्ही कोड लिहित आहात जो काहीतरी करतो, उदाहरणार्थ एंडपॉइंट. तुम्ही पोस्टमन किंवा निद्रानाश वापरून तुमच्या एंडपॉईंटची चाचणी करता आणि सर्व काही ठीक चालते. तुम्ही क्लायंट-साइड डेव्हलपरला एंडपॉइंट पास करता, जो नंतर वापरतो API आणि अनुप्रयोग उपयोजित करते. परंतु नंतर, जेव्हा वापरकर्ते अॅप वापरतात तेव्हा API अयशस्वी होते.

ही एक अत्यंत त्रासदायक परिस्थिती असू शकते, व्यवसायासाठी खर्चिक उल्लेख नाही. म्हणूनच सॉफ्टवेअर डेव्हलपर अपेक्षेप्रमाणे कामगिरी करतात याची खात्री करण्यासाठी सॉफ्टवेअर सिस्टमवर विविध चाचण्या करतात. API वेगळे नाहीत. तैनात करण्यापूर्वी, तुम्ही किमान कामगिरी चाचण्या आणि सुरक्षा चाचण्या कराव्यात.

कार्यप्रदर्शन चाचण्या कार्यक्षमता चाचण्या आणि लोड चाचण्यांमध्ये गटबद्ध केल्या जाऊ शकतात. कार्यक्षमता चाचण्या म्हणजे तुम्ही पोस्टमन किंवा निद्रानाश वापरता. तुमच्या अपेक्षेप्रमाणे तुमचे API कार्य करते याची ते खात्री करतात. दुसरीकडे, लोड चाचण्या, वास्तविक-जागतिक वापर आणि पीक लोडसह आपले API कसे कार्य करते याबद्दल अधिक संबंधित आहेत आणि या लेखाबद्दल आहे. चला लोड चाचण्या अधिक तपशीलवार पाहू.

API लोड चाचणी म्हणजे काय?

API लोड चाचणी हा एक प्रकारचा चाचणी विकासक आहे ज्याचा वापर एंडपॉइंट्सवर सामान्य आणि पीक लोडचे अनुकरण करण्यासाठी केला जातो. या प्रकारची चाचणी विकसकांना API तैनात करण्यापूर्वी त्याच्या वास्तविक-जागतिक कार्यप्रदर्शनाचे मूल्यांकन करू देते. हे त्यांना सिस्टीमची कमाल कार्य क्षमता, अडथळे असल्यास, आणि कार्यक्षमतेतील ऱ्हास ओळखण्यात मदत करते. API लोड चाचण्या सहसा आभासी वापरकर्ते तयार करून आणि नंतर API च्या कार्यक्षमतेची एकाचवेळी चाचणी घेण्यासाठी वापरून केल्या जातात. 

API लोड चाचण्या प्रतिसाद वेळ, समवर्ती वापरकर्ते, थ्रुपुट दर, संसाधन वापर पातळी, अपयश दरम्यानचा वेळ (MTBF), अपयशाचा सरासरी वेळ (MTTF) इत्यादी मेट्रिक्स मोजतात. API किती चांगले काम करत आहे हे निर्धारित करण्यासाठी या सर्व मेट्रिक्सचा वापर केला जाऊ शकतो.

लोड चाचणीचे प्रकार

लोड चाचणीचे अनेक प्रकार आहेत, प्रत्येक त्याच्या वापराच्या प्रकरणांसह. त्यापैकी काहींवर एक नजर टाकूया.

लोड चाचणी: हे लोड चाचणीचे मूळ स्वरूप आहे. सामान्य लोड आणि अपेक्षित पीक लोड अंतर्गत सिस्टम (या प्रकरणात, API) च्या कार्यप्रदर्शनाचे मूल्यांकन करण्यासाठी याचा वापर केला जातो.

तणाव चाचणी: हे खूप जास्त भाराखाली असलेल्या प्रणालीच्या कार्यक्षमतेचे मूल्यांकन करण्यासाठी वापरले जाते. या चाचणीचे उद्दिष्ट हे आहे की एखादी प्रणाली अयशस्वी झाल्यानंतर पुनर्प्राप्त होते की नाही आणि असे करण्यास किती वेळ लागतो. भार सामान्यत: सिस्टमच्या क्षमतेपेक्षा जास्त होईपर्यंत हळूहळू वाढविला जातो.

स्पाइक चाचणी: हे थोडेसे तणाव चाचणीसारखे आहे, जड भार अचानक लागू केल्याशिवाय, हळू हळू वाढवण्याऐवजी. तुमच्या सरासरी वापरकर्ते किंवा अभ्यागतांच्या संख्येत अचानक वाढ होते किंवा तुमच्या सिस्टमवर DDOS हल्ला होतो तेव्हा काय होते हे या प्रकारची चाचणी दर्शवते.

भिजवण्याची चाचणी: ही चाचणी वरील इतरांपेक्षा वेगळी आहे. हे तुमच्या सिस्टमला सामान्य लोडच्या 80% (किंवा जवळपास) खाली ठेवते आणि 12 ते 14 तासांपर्यंत दीर्घ कालावधीसाठी चालू ठेवते. या प्रकारची चाचणी कालांतराने प्रणाली किती विश्वासार्ह आहे हे ठरवते.

टोळ सह आपल्या API ची चाचणी लोड करा

विकसकांना त्यांच्या API च्या लोड चाचणीसाठी विविध पर्यायांमध्ये प्रवेश आहे. Gatling, JMeter आणि Locust ही काही सामान्य लोड चाचणी साधने आहेत. आम्ही या लेखात टोळावर लक्ष केंद्रित करणार आहोत.

Locust हे एक अजगर-आधारित ओपन-सोर्स लोड चाचणी साधन आहे जे Google, Microsoft आणि Riot Games सारख्या शीर्ष कंपन्यांद्वारे त्यांच्या API ची चाचणी घेण्यासाठी वापरले जाते. या लेखात, आम्ही एपीआय चाचणी कशी लोड करायची ते दाखवू. 

या ट्युटोरियलसाठी, मी Flask सह एक साधा API तयार करेन. तुम्ही माझ्यासोबत फॉलो करू शकता किंवा नोड किंवा तुम्हाला सोयीस्कर असलेल्या कोणत्याही फ्रेमवर्कसह तुमचे API तयार करू शकता.

आवश्यकता

python ला 3

सेटअप आणि स्थापना

प्रथम, आपण आपल्या PC वर एक आभासी वातावरण सेट करणे आवश्यक आहे जेणेकरून आपण आपल्या जागतिक पायथन वातावरणात गोंधळ घालू नये. हे करण्यासाठी, खालील आदेश चालवा. लक्षात घ्या की या आज्ञा विंडोज टर्मिनलला लागू होतात.

$ mkdir प्रकल्प

$ cd /d पथ\to\प्रकल्प

$ python -m venv venv

$ venv\Scripts\activate

 

प्रथम, आम्ही तयार केले प्रकल्प निर्देशिका मग आम्ही आमच्या वर्तमान निर्देशिकेत बदलले प्रकल्प. त्यानंतर आम्ही त्या डिरेक्टरीमध्ये पायथनसाठी आभासी वातावरण तयार केले आणि सक्रिय केले. 

आता, आपण इन्स्टॉल करण्याकडे पुढे जाऊ फ्लास्क(आम्ही ते लोड चाचणी करण्यासाठी एंडपॉइंट्स तयार करण्यासाठी वापरू) आणि टोळ स्वतः. 

 

फ्लास्क स्थापित करण्यासाठी, चालवा. तुम्ही मध्ये असल्याची खात्री करा प्रकल्प जिथे तुम्ही आभासी वातावरण तयार केले आहे.

$ pip इन्स्टॉल फ्लास्क

 

टोळ स्थापित करण्यासाठी, चालवा

$ pip टोळ स्थापित करा

 

एकदा ते पूर्ण झाल्यावर, खालील कमांड टाईप करा. आपण आपल्यात असल्याची खात्री करा प्रकल्प निर्देशिका.

$ कॉपी nul __init__.py

$ mkdir अॅप

$ कॉपी nul app\app.py

$ कॉपी nul अॅप\__init__.py

 

ही आज्ञा काही फाईल्स तयार करते ज्या आम्ही फ्लास्क वापरून आमचे एंडपॉइंट तयार करण्यासाठी वापरू. तुम्ही तुमचा फाईल एक्सप्लोरर वापरून या फायली देखील तयार करू शकता. पण त्यात काय गंमत आहे? एकदा आपण ते केले की, खालील कोड कॉपी करा app.py

फ्लास्क इंपोर्ट फ्लास्क, jsonify, विनंती वरून

अॅप = फ्लास्क(__नाव__)

कार_मॉडेल्स = [

  { 'ब्रँड': 'टेस्ला', 'मॉडेल': 'मॉडेल एस' }

]

 

विमान_मॉडेल्स = [

  { 'ब्रँड': 'बोइंग', 'मॉडेल': '७४७' }

]

 

@app.route('/cars')

def get_cars():

  jsonify(car_models) परत करा

@app.route('/planes')

def get_planes():

  jsonify (प्लेन_मॉडेल्स) परत करा

जर __नाव__ == '__मुख्य__':

    app.run(debug=True)  

 

वरील कोडमध्ये एक पद्धत आहे गाड्या मिळवा कार ब्रँड आणि त्यांच्या मॉडेल्सची यादी मिळविण्यासाठी वापरले जाते आणि विमाने मिळवा विमान ब्रँड आणि त्यांच्या मॉडेल्सची यादी मिळविण्यासाठी वापरले जाते. या एंडपॉइंटची चाचणी लोड करण्यासाठी, आम्हाला app.py चालवावी लागेल. हे करण्यासाठी खालील कमांड रन करा.

$ python path\to\app.py

एकदा तुम्ही ते चालवल्यानंतर, तुम्हाला असे काहीतरी दिसले पाहिजे:

API लोड चाचणी 1

जर तुम्ही टर्मिनलवरून URL कॉपी केली आणि टाइप करा कार or विमाने / नंतर, तुम्ही तेथे डेटा पाहण्यास सक्षम असावे. तथापि, आमचे ध्येय ब्राउझरसह नव्हे तर टोळासह एंडपॉइंटची चाचणी करणे आहे. तर ते करूया. तुमच्या रूट मध्ये खालील कमांड चालवा प्रकल्प डिरेक्ट्री.

 

$ कॉपी nul locust_test.py

 

हे तुमच्या रूटमध्ये 'locust_test.py' फाइल तयार करते प्रकल्प निर्देशिका एकदा आपण ते पूर्ण केल्यावर, फाईल उघडा आणि खालील कोडमध्ये पेस्ट करा. आम्ही लवकरच ते स्पष्ट करू.

 

आयात वेळ

टोळ आयात HttpUser, कार्य, दरम्यान

 

वर्ग वापरकर्ता वर्तन(HttpUser):

    प्रतीक्षा_वेळ = (५, १०) दरम्यान

 

    @कार्य

    def get_cars(स्वतः):

        self.client.get('/cars')

    

    @कार्य

    def get_planes(स्वतः):

        self.client.get('/planes')

 

API चाचणी लोड करण्यासाठी Locust वापरण्याचे हे एक मूलभूत उदाहरण आहे. प्रथम, आम्ही एक वर्ग तयार करतो वापरकर्ता वर्तन, ज्याला कोणतेही योग्य नाव दिले जाऊ शकते परंतु विस्तारित करणे आवश्यक आहे Http वापरकर्ता. Http वापरकर्ता आम्ही निर्दिष्ट केलेली कार्ये पार पाडण्यासाठी एकाधिक आभासी वापरकर्त्यांना इन्स्टंट करण्याची काळजी घेणारा वर्ग आहे वापरकर्ता वर्तन वर्ग. 

सह एक पद्धत सजवून कार्य निर्दिष्ट केले आहे @कार्य डेकोरेटर आमच्याकडे एक फंक्शन देखील आहे ज्याला म्हणतात यांच्यातील() जे आम्हाला पुढील कार्य कार्यान्वित करण्यापूर्वी प्रतीक्षा करण्यासाठी सेकंदांची श्रेणी निर्दिष्ट करण्यास अनुमती देते. तुम्ही पाहू शकता की आम्ही आमच्या कोडमध्ये त्यासाठी 5 ते 10 सेकंदांची श्रेणी नियुक्त केली आहे. 

कोड चालवण्यासाठी, तुम्ही अजूनही तुमच्या आभासी वातावरणात असल्याची खात्री करा. तुम्ही तयार केलेला सर्व्हर API सर्व्हरद्वारे वापरत असल्यास, नवीन टर्मिनल उघडा, तुमची निर्देशिका बदला तुमच्या प्रकल्प निर्देशिका, आणि तुम्ही तयार केलेले आभासी वातावरण सक्रिय करा. वरील वर्च्युअल वातावरण सक्रिय करण्यासाठी तुम्ही कमांड शोधू शकता. आता तुमच्या टर्मिनलमध्ये खालील कमांड एंटर करा.

 

$ locust -f locust_test.py

 

आपण असे काहीतरी पहावे:

API लोड चाचणी 2

डीफॉल्टनुसार, टोळाचा वेब इंटरफेस http://localhost/8089 वर स्थित आहे. तुम्ही वेबसाइटला भेट दिल्यास, तुम्हाला असा इंटरफेस दिसेल:

API लोड चाचणी 3

इंटरफेसवरून, आम्ही वापरकर्त्यांची संख्या, स्पॉन रेट (प्रति सेकंद तयार केलेले वापरकर्ते) आणि होस्ट निर्दिष्ट करू शकतो. सर्व्हर कुठे चालू आहे ते टर्मिनल तपासून तुम्ही तुमच्या होस्टचा पत्ता मिळवू शकता. आमच्या बाबतीत, ते पोर्ट 5000 वर आहे. तुम्ही क्लिक करता तेव्हा झुंडशाही सुरू करा, तुम्हाला खालील इंटरफेससह सादर केले जाईल.

API लोड चाचणी 4

हे तुम्हाला विविध उपयुक्त मेट्रिक्स दाखवते जसे की अयशस्वी विनंत्यांची संख्या, विनंतीसाठी सरासरी वेळ, विनंतीसाठी किमान वेळ, प्रति सेकंद विनंत्या इत्यादी. तुम्ही जे पाहता त्याबद्दल तुम्ही समाधानी झाल्यावर, तुम्ही स्टॉप बटणावर क्लिक करू शकता. 


याशिवाय आकडेवारी टॅब, एक आहे चार्ट टॅब जो अधिक दाखवतो माहिती आलेखाच्या स्वरूपात, खालील प्रतिमेप्रमाणे.

आहे एक प्रति सेकंद आलेख एकूण विनंत्या, प्रतिसाद वेळ आलेख, आणि वापरकर्त्यांची संख्या आलेख, सर्व वेळ विरुद्ध कट. आलेख वापरून, तुम्ही निश्चित प्रतिसाद वेळेसाठी किती वापरकर्ते स्वीकारार्ह आहेत हे निर्धारित करू शकता किंवा वापरकर्त्यांची संख्या वाढूनही आणि त्यासारख्या इतर अंतर्दृष्टी असूनही तुम्ही सतत प्रतिसाद वेळेसाठी तुमचे चार्ट पाहू शकता. तुम्हाला हे शेअर करायचे असतील तर आकडेवारी इतर कोणासह, तुम्ही वरून अहवाल डाउनलोड करू शकता डेटा डाउनलोड करा टॅब

निष्कर्ष काढणे...

तुमची एपीआय लोड करणे ही तुमच्या विकास प्रक्रियेतील एक महत्त्वाची क्रिया आहे, त्यामुळे ते तुमच्या डिझाइन सायकलमध्ये समाविष्ट असल्याची खात्री करा. तसे, तुम्ही वापरकर्त्यांची संख्या आणि स्पॉन रेटसाठी मूल्ये बदलून इतर लोड चाचणी प्रकार देखील करू शकता. 

तुम्हाला स्पाइक चाचणी करायची असल्यास, वापरकर्त्यांच्या संख्येसाठी मोठे मूल्य (म्हणजे 2000) निर्दिष्ट करा आणि नंतर तुमच्या स्पॉन रेटसाठी (उदाहरणार्थ 500) तितकेच मोठे मूल्य निर्दिष्ट करा. याचा अर्थ असा की 4 सेकंदात, तुम्ही सर्व 2000 वापरकर्ते तयार करून तुमच्या एंडपॉइंट्समध्ये प्रवेश करू शकता. तणाव चाचणी सारखीच असेल, परंतु स्पॉन रेटसाठी खूपच कमी मूल्यासह. तुम्ही करू शकता ते सर्व शोधण्यासाठी, टोळ पहा दस्तऐवज

TOR सेन्सॉरशिप बायपास करणे

TOR सह इंटरनेट सेन्सॉरशिप बायपास करणे

टीओआर परिचयासह इंटरनेट सेन्सॉरशिप बायपास करणे ज्या जगात माहितीचा प्रवेश वाढत्या प्रमाणात नियंत्रित होत आहे, टॉर नेटवर्क सारखी साधने यासाठी महत्त्वपूर्ण बनली आहेत.

पुढे वाचा »
कोबोल्ड लेटर्स: HTML-आधारित ईमेल फिशिंग हल्ले

कोबोल्ड लेटर्स: HTML-आधारित ईमेल फिशिंग हल्ले

कोबोल्ड लेटर्स: HTML-आधारित ईमेल फिशिंग हल्ले 31 मार्च 2024 रोजी, लुटा सिक्युरिटीने नवीन अत्याधुनिक फिशिंग वेक्टर, कोबोल्ड लेटर्सवर प्रकाश टाकणारा एक लेख प्रसिद्ध केला.

पुढे वाचा »