सलह संग API लोड परीक्षण

सलह संग API लोड परीक्षण

सलहको साथ API लोड परीक्षण: परिचय

तपाइँ सायद यस अवस्थामा पहिले नै हुनुहुन्थ्यो: तपाइँ कोड लेख्नुहुन्छ जसले केहि गर्छ, उदाहरणको लागि अन्त्य बिन्दु। तपाईंले पोस्टम्यान वा अनिद्रा प्रयोग गरेर आफ्नो अन्तिम बिन्दु परीक्षण गर्नुहुन्छ, र सबै कुरा ठीक काम गर्दछ। तपाइँ क्लाइन्ट-साइड विकासकर्तालाई अन्तिम बिन्दुमा पास गर्नुहुन्छ, जसले त्यसपछि उपभोग गर्दछ एपीआई र अनुप्रयोग तैनात गर्दछ। तर त्यसपछि, प्रयोगकर्ताहरूले एप प्रयोग गर्दा API असफल हुन्छ।

यो एक सुपर कष्टप्रद स्थिति हुन सक्छ, एक व्यापार को लागी महँगो उल्लेख छैन। यही कारणले गर्दा सफ्टवेयर विकासकर्ताहरूले सफ्टवेयर प्रणालीहरूमा विभिन्न प्रकारका परीक्षणहरू गर्छन् कि उनीहरूले अपेक्षित रूपमा प्रदर्शन गर्छन्। API हरू फरक छैनन्। तैनाती गर्नु अघि, तपाईंले कम्तिमा प्रदर्शन परीक्षण र सुरक्षा परीक्षणहरू गर्नुपर्छ।

कार्यसम्पादन परीक्षणहरूलाई कार्यक्षमता परीक्षण र लोड परीक्षणहरूमा समूहबद्ध गर्न सकिन्छ। कार्यक्षमता परीक्षणहरू तपाईले सामान्यतया पोस्टम्यान वा अनिद्राको लागि प्रयोग गर्नुहुन्छ। तिनीहरूले तपाइँको अपेक्षा अनुसार तपाइँको API कार्यहरू सुनिश्चित गर्दछ। लोड परीक्षणहरू, अर्कोतर्फ, तपाईंको एपीआईले वास्तविक-विश्व उपयोग र शिखर लोडको साथ कसरी प्रदर्शन गर्छ भन्ने बारे बढी चिन्तित छ, र त्यो यो लेखको बारेमा हो। थप विवरणमा लोड परीक्षणहरू हेरौं।

API लोड परीक्षण के हो?

API लोड परीक्षण एक प्रकारको परीक्षण विकासकर्ताहरूले अन्तिम बिन्दुहरूमा सामान्य र शिखर लोड अनुकरण गर्न प्रयोग गर्छन्। यस प्रकारको परीक्षणले विकासकर्ताहरूलाई API को प्रयोग गर्नु अघि यसको वास्तविक-विश्व कार्यसम्पादन मूल्याङ्कन गर्न दिन्छ। यसले तिनीहरूलाई प्रणालीको अधिकतम अपरेटिङ क्षमता, यदि कुनै अवरोधहरू, र कार्यसम्पादनको ह्रास पहिचान गर्न मद्दत गर्दछ। एपीआई लोड परीक्षणहरू सामान्यतया भर्चुअल प्रयोगकर्ताहरू सिर्जना गरेर र त्यसपछि एपीआईको कार्यक्षमता एकसाथ परीक्षण गर्न प्रयोग गरेर गरिन्छ। 

API लोड परीक्षणहरूले प्रतिक्रिया समय, समवर्ती प्रयोगकर्ताहरू, थ्रुपुट दरहरू, स्रोत उपयोग स्तरहरू, असफलताको बीचको समय (MTBF), असफल हुने समय (MTTF), र यस्तै अन्य मेट्रिकहरू मापन गर्दछ। यी सबै मेट्रिकहरू API ले कति राम्रो गरिरहेको छ भनेर निर्धारण गर्न प्रयोग गर्न सकिन्छ।

लोड परीक्षण को प्रकार

त्यहाँ धेरै प्रकारका लोड परीक्षणहरू छन्, प्रत्येक यसको प्रयोगका केसहरूसँग। तिनीहरूमध्ये केहीलाई हेरौं।

लोड परीक्षण: यो लोड परीक्षण को आधारभूत रूप हो। यो सामान्य लोड र अपेक्षित शिखर लोड अन्तर्गत प्रणाली (यस अवस्थामा, एक API) को प्रदर्शन मूल्याङ्कन गर्न प्रयोग गरिन्छ।

तनाव परीक्षण: यो धेरै भारी भार अन्तर्गत प्रणालीको प्रदर्शन मूल्याङ्कन गर्न प्रयोग गरिन्छ। यस परीक्षणको लक्ष्य भनेको प्रणाली असफलता पछि पुन: प्राप्ति हुन्छ कि छैन, र त्यसो गर्न कति समय लाग्छ भनेर हेर्नु हो। लोड सामान्यतया बिस्तारै र्याम्प गरिएको छ जब सम्म यो प्रणाली को क्षमताहरु लाई पार गर्दैन।

स्पाइक परीक्षण: यो तनाव परीक्षण जस्तै थोरै मिल्दोजुल्दो छ, बाहेक भारी भार अचानक लागू हुन्छ, बिस्तारै यसलाई र्याम्पिंग गर्न को लागी। यस प्रकारको परीक्षणले तपाईंको औसत प्रयोगकर्ता वा आगन्तुकहरूको संख्यामा अचानक स्पाइक हुँदा वा तपाईंको प्रणालीमा DDOS आक्रमण हुँदा के हुन्छ भनेर प्रतिनिधित्व गर्दछ।

सोक परीक्षण: यो परीक्षण माथिको अन्य भन्दा फरक छ। यसले तपाइँको प्रणालीलाई सामान्य भारको 80% (वा त्यताको) मुनि राख्छ र यसलाई 12 देखि 14 घण्टासम्म लामो अवधिको लागि चलिरहेको छोड्छ। यस प्रकारको परीक्षणले समयको साथ प्रणाली कत्तिको भरपर्दो छ भनेर निर्धारण गर्दछ।

Locust संग आफ्नो APIs परीक्षण लोड

विकासकर्ताहरूसँग तिनीहरूको API हरू लोड परीक्षणको लागि विभिन्न विकल्पहरूमा पहुँच छ। केही सामान्य लोड परीक्षण उपकरणहरू Gatling, JMeter, र Locust हुन्। हामी यस लेखमा सलहमा ध्यान केन्द्रित गर्नेछौं।

Locust एक पाइथन-आधारित खुला स्रोत लोड परीक्षण उपकरण हो जुन शीर्ष कम्पनीहरू जस्तै Google, Microsoft, र Riot Games ले तिनीहरूको API परीक्षण गर्न प्रयोग गर्दछ। यस लेखमा, हामी एपीआई परीक्षण कसरी लोड गर्ने भनेर प्रदर्शन गर्नेछौं। 

यस ट्यूटोरियलको लागि, म फ्लास्कको साथ एक साधारण API सिर्जना गर्नेछु। तपाईं मसँग पछ्याउन सक्नुहुन्छ वा नोडको साथ तपाईंको एपीआई सिर्जना गर्न सक्नुहुन्छ, वा जुनसुकै फ्रेमवर्कसँग तपाईं सहज हुनुहुन्छ।

आवश्यकताहरु

अजगर 3

सेटअप र स्थापना

पहिले, तपाइँ तपाइँको PC मा भर्चुअल वातावरण सेट अप गर्न आवश्यक छ ताकि तपाइँ तपाइँको ग्लोबल पाइथन वातावरण गडबड नगर्नुहोस्। त्यसो गर्न, निम्न आदेशहरू चलाउनुहोस्। ध्यान दिनुहोस् कि यी आदेशहरू Windows टर्मिनलमा लागू हुन्छन्।

$ mkdir परियोजना

$ cd /d पथ\to\परियोजना

$ python -m venv venv

$ venv \ स्क्रिप्ट \ सक्रिय

 

पहिले, हामीले एउटा सिर्जना गर्यौं परियोजना निर्देशिका। त्यसपछि हामीले हाम्रो हालको डाइरेक्टरीमा परिवर्तन गर्यौं परियोजना। त्यसपछि हामीले त्यो डाइरेक्टरी भित्र पाइथनको लागि भर्चुअल वातावरण सिर्जना र सक्रिय गर्यौं। 

अब, हामी स्थापना गर्न अगाडि बढ्नेछौं फ्लास्क(हामी यसलाई लोड परीक्षण गर्न अन्तिम बिन्दुहरू सिर्जना गर्न प्रयोग गर्नेछौं) र सलह आफ्नै। 

 

फ्लास्क स्थापना गर्न, चलाउनुहोस्। निश्चित गर्नुहोस् कि तपाईं मा हुनुहुन्छ परियोजना जहाँ तपाईंले भर्चुअल वातावरण सिर्जना गर्नुभयो।

$ pip फ्लास्क स्थापना गर्नुहोस्

 

Locust स्थापना गर्न, चलाउनुहोस्

$ pip सलह स्थापना गर्नुहोस्

 

एकपटक त्यो सकिएपछि, निम्न आदेशहरू टाइप गर्नुहोस्। निश्चित गर्नुहोस् कि तपाईं आफ्नो मा हुनुहुन्छ परियोजना निर्देशिका जब तपाइँ यो गर्नुहुन्छ।

$ प्रतिलिपि nul __init__.py

$ mkdir एप

$ प्रतिलिपि nul app\app.py

$ प्रतिलिपि nul app\__init__.py

 

यो आदेशले केहि फाईलहरू सिर्जना गर्दछ जुन हामी फ्लास्क प्रयोग गरेर हाम्रो अन्त्य बिन्दुहरू सिर्जना गर्न प्रयोग गर्नेछौं। तपाईंले आफ्नो फाइल एक्सप्लोरर प्रयोग गरेर यी फाइलहरू पनि बनाउन सक्नुहुन्छ। तर त्यसमा रमाइलो के छ र ? एकचोटि तपाईंले त्यो गरेपछि, तलको कोड प्रतिलिपि गर्नुहोस् app.py

फ्लास्क आयातबाट फ्लास्क, jsonify, अनुरोध

एप = फ्लास्क (__नाम__)

कार_मोडल = [

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

]

 

विमान_मोडल = [

  {'ब्रान्ड': 'बोइङ', 'मोडल': '७४७'}

]

 

@app.route('/cars')

def get_cars():

  फिर्ता गर्नुहोस् jsonify(car_models)

@app.route('/planes')

def get_planes():

  फिर्ता jsonify(plane_models)

यदि __नाम__ =='__मुख्य__':

    app.run(debug=True)  

 

माथिको कोडमा विधि समावेश छ प्राप्त_कारहरू कार ब्रान्ड र तिनीहरूका मोडेलहरूको सूची प्राप्त गर्न प्रयोग गरिन्छ, र get_planes विमान ब्रान्ड र तिनीहरूका मोडेलहरूको सूची प्राप्त गर्न प्रयोग गरियो। हामीले यो अन्तिम बिन्दु परीक्षण लोड गर्नको लागि, हामीले app.py चलाउनु पर्छ। त्यसो गर्न तलको आदेश चलाउनुहोस्।

$ python path\to\app.py

एकचोटि तपाईंले त्यो चलाउनुभएपछि, तपाईंले यस्तो केहि देख्नुपर्छ:

API लोड परीक्षण १

यदि तपाइँ टर्मिनलबाट URL प्रतिलिपि गर्नुहुन्छ र टाइप गर्नुहुन्छ कार or विमानहरू / पछि, तपाइँ त्यहाँ डाटा हेर्न सक्षम हुनुपर्दछ। यद्यपि, हाम्रो लक्ष्य ब्राउजरको साथ होइन, सलहको साथ अन्तिम बिन्दु परीक्षण गर्ने हो। त्यसोभए त्यसो गरौं। तपाईंको रूटमा निम्न आदेश चलाउनुहोस् परियोजना निर्देशिका।

 

$ प्रतिलिपि nul locust_test.py

 

यसले तपाईंको मूलमा 'locust_test.py' फाइल सिर्जना गर्दछ परियोजना निर्देशिका। एकचोटि तपाईंले त्यो गरेपछि, फाइल खोल्नुहोस् र तलको कोडमा टाँस्नुहोस्। हामी छिट्टै व्याख्या गर्नेछौं।

 

आयात समय

सलह आयात HttpUser, कार्य, बीचबाट

 

वर्ग प्रयोगकर्ता व्यवहार(HttpUser):

    प्रतीक्षा_समय = बीच (५, १०)

 

    @कार्य

    def get_cars(self):

        self.client.get('/cars')

    

    @कार्य

    def get_planes(self):

        self.client.get('/planes')

 

यो एपीआई परीक्षण लोड गर्न Locust प्रयोग गर्ने आधारभूत उदाहरण हो। पहिले, हामी एक कक्षा सिर्जना गर्छौं प्रयोगकर्ता व्यवहार, जसलाई कुनै पनि उपयुक्त नाम दिन सकिन्छ तर विस्तार गर्नुपर्छ HttpUser। HttpUser हामीले निर्दिष्ट गरेका कार्यहरू पूरा गर्न धेरै भर्चुअल प्रयोगकर्ताहरूलाई इन्स्ट्यान्टियट गर्ने वर्ग हो। प्रयोगकर्ता व्यवहार वर्ग। 

कार्यको साथ एक विधि सजाएर निर्दिष्ट गरिएको छ @कार्य डेकोरेटर। हामीसँग एउटा प्रकार्य पनि छ जसलाई भनिन्छ बीच() यसले हामीलाई अर्को कार्य कार्यान्वयन गर्नु अघि प्रतिक्षा गर्न सेकेन्डको दायरा निर्दिष्ट गर्न अनुमति दिन्छ। तपाईले देख्न सक्नुहुन्छ कि हामीले हाम्रो कोडमा यसको लागि 5 देखि 10 सेकेन्डको दायरा तोकेका छौं। 

कोड चलाउनको लागि, निश्चित गर्नुहोस् कि तपाईं अझै पनि आफ्नो भर्चुअल वातावरणमा हुनुहुन्छ। यदि तपाईंले सिर्जना गर्नुभएको एपीआई सेवा गर्ने सर्भरले प्रयोग गरिरहेको छ भने, नयाँ टर्मिनल खोल्नुहोस्, तपाईंको डाइरेक्टरीलाई तपाईंको परियोजना डाइरेक्टरी, र तपाईंले सिर्जना गर्नुभएको भर्चुअल वातावरण सक्रिय गर्नुहोस्। तपाईंले माथिको भर्चुअल वातावरण सक्रिय गर्न आदेश फेला पार्न सक्नुहुन्छ। अब, तपाईको टर्मिनलमा तलको आदेश प्रविष्ट गर्नुहोस्।

 

$ locust -f locust_test.py

 

तपाईंले यो जस्तो देख्नु पर्छ:

API लोड परीक्षण १

पूर्वनिर्धारित रूपमा, सलहको वेब इन्टरफेस http://localhost/8089 मा अवस्थित छ। यदि तपाइँ वेबसाइट भ्रमण गर्नुहुन्छ भने, तपाइँले यस्तो इन्टरफेस देख्नुपर्छ:

API लोड परीक्षण १

इन्टरफेसबाट, हामी प्रयोगकर्ताहरूको संख्या, स्पोन दर (प्रयोगकर्ताहरू प्रति सेकेन्ड सिर्जना गरिएको), र होस्ट निर्दिष्ट गर्न सक्छौं। तपाईंले सर्भर चलिरहेको टर्मिनल जाँच गरेर आफ्नो होस्टको ठेगाना प्राप्त गर्न सक्नुहुन्छ। हाम्रो अवस्थामा, यो पोर्ट 5000 मा छ। जब तपाइँ क्लिक गर्नुहुन्छ झुण्ड्याउन थाले, तपाईंलाई तलको इन्टरफेसको साथ प्रस्तुत गरिनेछ।

API लोड परीक्षण १

यसले तपाईंलाई विभिन्न उपयोगी मेट्रिकहरू देखाउँदछ जस्तै असफल अनुरोधहरूको संख्या, अनुरोधको लागि औसत समय, अनुरोधको लागि न्यूनतम समय, प्रति सेकेन्ड अनुरोधहरू, र यस्तै। एकचोटि तपाईले देख्नु भएको कुरासँग सन्तुष्ट भएपछि, तपाईले रोक्न बटनमा क्लिक गर्न सक्नुहुन्छ। 


यसबाहेक तथ्याङ्क ट्याब, त्यहाँ एक छ चार्ट थप देखाउने ट्याब जानकारी ग्राफको रूपमा, तलको छवि जस्तै।

त्यहाँ एउटा प्रति सेकेन्ड ग्राफ कुल अनुरोध, प्रतिक्रिया समय ग्राफ,प्रयोगकर्ताहरूको संख्या ग्राफ, सबै समय विरुद्ध षड्यन्त्र। ग्राफहरू प्रयोग गरेर, तपाइँ निश्चित प्रतिक्रिया समयको लागि कति प्रयोगकर्ताहरू स्वीकार्य छन् भनेर निर्धारण गर्न सक्नुहुन्छ, वा तपाइँ प्रयोगकर्ताहरूको बढ्दो संख्याको बावजुद स्थिर प्रतिक्रिया समयको लागि तपाइँको चार्टहरू अवलोकन गर्न सक्नुहुन्छ, र यस्तै अन्य अन्तर्दृष्टिहरू। यदि तपाइँ यी साझा गर्न चाहनुहुन्छ भने तथ्याङ्क अरू कसैसँग, तपाईं बाट रिपोर्ट डाउनलोड गर्न सक्नुहुन्छ डाटा डाउनलोड गर्नुहोस् ट्याब

निष्कर्षमा पुग्न...

तपाइँको एपीआई लोड परीक्षण तपाइँको विकास प्रक्रिया मा एक महत्वपूर्ण गतिविधि हो, त्यसैले यो तपाइँको डिजाइन चक्र मा समावेश छ भनेर सुनिश्चित गर्नुहोस्। वैसे, तपाइँ प्रयोगकर्ताहरूको संख्या र स्पोन दरको लागि मानहरू भिन्न गरेर अन्य लोड परीक्षण प्रकारहरू पनि गर्न सक्नुहुन्छ। 

यदि तपाइँ स्पाइक परीक्षण गर्न चाहनुहुन्छ भने, प्रयोगकर्ताहरूको संख्याको लागि ठूलो मान (2000 भन्नुहोस्), र त्यसपछि तपाइँको स्पोन दर (उदाहरणका लागि 500) को लागि समान रूपमा ठूलो मान निर्दिष्ट गर्नुहोस्। यसको मतलब यो हो कि 4 सेकेन्डमा, तपाईंले सबै 2000 प्रयोगकर्ताहरू सिर्जना गर्नुहुनेछ र तपाईंको अन्तिम बिन्दुहरू पहुँच गर्नुहुनेछ। एक तनाव परीक्षण समान हुनेछ, तर स्पोन दरको लागि धेरै कम मूल्यको साथ। तपाईंले गर्न सक्ने सबै कुरा पत्ता लगाउन, Locust हेर्नुहोस् दस्तावेज

TOR सेन्सरशिप बाइपास गर्दै

TOR सँग इन्टरनेट सेन्सरशिप बाइपास गर्दै

TOR परिचयको साथ इन्टरनेट सेन्सरशिप बाइपास गर्दै जानकारीको पहुँच बढ्दो मात्रामा विनियमित भएको संसारमा, टोर नेटवर्क जस्ता उपकरणहरू यसका लागि महत्त्वपूर्ण भएका छन्।

थप पढ्नुहोस् "
कोबोल्ड अक्षरहरू: HTML-आधारित इमेल फिसिङ आक्रमणहरू

कोबोल्ड अक्षरहरू: HTML-आधारित इमेल फिसिङ आक्रमणहरू

Kobold Letters: HTML-आधारित इमेल फिसिङ आक्रमण मार्च 31st 2024 मा, Luta Security ले एउटा नयाँ परिष्कृत फिसिङ भेक्टर, Kobold Letters मा प्रकाश पार्ने लेख जारी गर्यो।

थप पढ्नुहोस् "