वेब अनुप्रयोग पर तनाव परीक्षण करना?


244

अतीत में, मैंने परीक्षण वेब अनुप्रयोगों को तनाव देने के लिए Microsoft वेब एप्लिकेशन तनाव उपकरण और पाइलट का उपयोग किया था। मैंने एक साधारण होम पेज, लॉगिन स्क्रिप्ट और साइट वॉकथ्रू लिखा है (एक ईकॉमर्स साइट में एक कार्ट और चेकआउट में कुछ आइटम जोड़ते हुए)।

बस मुट्ठी भर डेवलपर्स के साथ होमपेज को मारना लगभग हमेशा एक बड़ी समस्या का पता लगाएगा। लॉन्च के बाद अधिक स्केलेबिलिटी की समस्याएं दूसरे चरण में और भी अधिक होंगी।

मेरे द्वारा उपयोग किए जाने वाले टूल का URL Microsoft होमर (उर्फ माइक्रोसॉफ्ट वेब एप्लिकेशन स्ट्रेस टूल ) और पाइलॉट थे

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

आपने क्या किया है, आपने कौन से उपकरण का उपयोग किया है, और आपके दृष्टिकोण से आपको क्या सफलता मिली है? जो हिस्सा मेरे लिए सबसे दिलचस्प है, वह समवर्ती उपयोगकर्ताओं की संख्या की गणना करने के लिए किसी तरह के सार्थक सूत्र के साथ आ रहा है, जो ऐप तनाव परीक्षण एप्लिकेशन द्वारा बताए गए नंबरों से समर्थन कर सकता है।

जवाबों:


110

यहाँ JMeter के लिए एक और वोट है ।

JMeter जावा में लिखा गया एक ओपन-सोर्स लोड टेस्टिंग टूल है। यह विभिन्न सर्वर प्रकारों (उदाहरण के लिए, वेब, वेब सेवाओं, डेटाबेस, बस कुछ भी जो मूल रूप से अनुरोधों का उपयोग करता है) के परीक्षण में सक्षम है।

हालाँकि यह एक जटिल सीखने की अवस्था है एक बार जब आप जटिल परीक्षण करना शुरू करते हैं, लेकिन यह इसके लायक है। आप बहुत तेज़ी से उठ और दौड़ सकते हैं, और इस बात पर निर्भर करता है कि आप किस प्रकार का तनाव-परीक्षण करना चाहते हैं, यह ठीक हो सकता है।

पेशेवरों:

  • अपाचे परियोजना से ओपन-सोर्स / फ्री टूल (खरीदने में मदद करता है)
  • शुरू करने के लिए आसान है, और एक बार उपयोग करने के लिए आसान आप मुख्य अवधारणाओं को समझ सकते हैं। (यानी, कैसे एक अनुरोध बनाने के लिए, कैसे एक जोर बनाने के लिए, कैसे चर आदि के साथ काम करने के लिए)।
  • बहुत स्केलेबल। मैं लगभग एक लाख हिट / घंटे की धुन पर सर्वर पर लोड उत्पन्न करने वाली 11 मशीनों के साथ परीक्षण चला चुका हूं। यह था बहुत सेटअप करने के लिए आसान की तुलना में मैं उम्मीद कर रहा था।
  • एक सक्रिय समुदाय और अच्छे संसाधन हैं जो आपको उठने और चलने में मदद करते हैं। पहले ट्यूटोरियल पढ़ें और थोड़ी देर के लिए इसके साथ खेलें।

विपक्ष:

  • यूआई को स्विंग में लिखा गया है। (ओह!)
  • JMeter सर्वर द्वारा दिए गए प्रतिक्रिया पाठ को पार्स करके काम करता है। इसलिए यदि आप किसी भी प्रकार के जावास्क्रिप्ट व्यवहार को मान्य करना चाहते हैं, तो आप भाग्य से बाहर हैं।
  • गैर-प्रोग्रामर के लिए सीखने की अवस्था खड़ी है। यदि आप नियमित अभिव्यक्तियों से परिचित हैं, तो आप पहले ही गेम से आगे हैं।
  • समर्थन फ़ोरम में बड़ी संख्या में ( एक्ससिप्लेक्टिव डालें ) बेवकूफ हैं जो बेवकूफ सवाल पूछते हैं जिन्हें आसानी से हल किया जा सकता है अगर वे दस्तावेज़ीकरण को भी सरसरी नज़र से देखते हैं। ('मैं अपने विंडोज जीयूआई को तनाव-परीक्षण करने के लिए जेमीटर का उपयोग कैसे करूँ' काफी बार दिखाई देता है)।
  • रिपोर्टिंग 'बॉक्स से बाहर' वांछित होने के लिए बहुत कुछ छोड़ देती है, खासकर बड़े परीक्षणों के लिए। ऊपर उल्लिखित परीक्षण में, मैंने 'html' रूपांतरणों के लिए 'xml-logfile' में से कुछ करने के लिए एक त्वरित कंसोल ऐप लिखना समाप्त कर दिया। हालांकि यह कुछ साल पहले था, इसलिए यह संभावित है कि अब इसकी आवश्यकता नहीं होगी।

कृपया स्पष्ट करें, यदि JMeter दूरस्थ VPS पर स्थापित अनुप्रयोग का परीक्षण करने में आपकी सहायता कर सकता है? मुझे यकीन नहीं है क्योंकि यह डेस्कटॉप संस्करण है
रजत गुप्ता

1
JMeter से संबंधित एक अन्य JMeter सेवा के रूप में JMeter है। इस प्रकार के सास अत्यधिक बेहतर रिपोर्टिंग के साथ उच्च मापनीय JMeter प्रदान करते हैं।
ओफिर प्रुसक

5
मैं असहमत हूं कि जेएमटर बहुत स्केलेबल है। प्रति घंटे एक लाख अनुरोध महज 278 अनुरोध / दूसरा है, जो - 11 मशीनों पर चलाने के लिए - अन्य उपकरणों की तुलना में बहुत कम है। मैं वास्तव में JMeter की संगतता को विपक्ष की ओर रखूंगा।
हेयमन

JMeter एक ब्राउज़र नहीं है, यह प्रोटोकॉल स्तर पर काम करता है। जहां तक ​​वेब-सेवाओं और दूरस्थ सेवाओं का संबंध है, JMeter एक ब्राउज़र (या बल्कि, कई ब्राउज़र) जैसा दिखता है; हालाँकि JMeter ब्राउज़रों द्वारा समर्थित सभी क्रियाओं को नहीं करता है। वेब अनुप्रयोगों को "निष्पादित" किया जाना चाहिए।
लियोनकार्वल्हो

36

मैंने द ग्राइंडर का उपयोग किया है । यह खुला स्रोत है, उपयोग करने के लिए बहुत आसान है, और बहुत विन्यास योग्य है। यह जावा आधारित है और लिपियों के लिए जाइथन का उपयोग करता है। हमने इसे एक .NET वेब एप्लिकेशन के खिलाफ चलाया है, इसलिए ऐसा मत सोचो कि यह केवल एक जावा उपकरण है (उनकी प्रकृति से, किसी भी वेब तनाव उपकरण को उस प्लेटफ़ॉर्म से नहीं जोड़ा जाना चाहिए जो इसका उपयोग करता है)।

हमने इसके साथ कुछ साफ-सुथरा सामान किया ... हम एक वेब आधारित टेलीकॉम एप्लिकेशन थे, इसलिए मैंने जो एक अच्छा उपयोग किया, वह था हमारे वेब एप्लिकेशन के माध्यम से एक नंबर डायल करना, फिर हमारे पास एक ऑटो उत्तर टूल का उपयोग किया गया (जो मूल रूप से एक ट्यूटोरियल था। Microsoft से अपने RTC LCS सर्वर से कनेक्ट करने के लिए ऐप ... जो कि Microsoft Office Communicator एक स्थानीय नेटवर्क पर कनेक्ट होता है ... फिर स्वचालित रूप से कॉल लेने के लिए संशोधित होता है)। इसके बाद हमें द हैमर (या ऐसा कुछ) नामक महंगे टेलीफोनी उपकरण के बजाय इसका उपयोग करने की अनुमति दी गई।

वैसे भी, हमने यह देखने के लिए भी टूल का उपयोग किया कि हमारा एप्लिकेशन उच्च भार के तहत कैसे व्यवस्थित है, और यह अड़चन खोजने में बहुत प्रभावी था। उपकरण ने रिपोर्टिंग में यह दिखाने के लिए बनाया है कि अनुरोध कितने समय से चल रहे हैं, लेकिन हमने इसका कभी उपयोग नहीं किया। लॉग सभी प्रतिक्रियाओं और व्हाट्सएप या कस्टम लॉगिंग को भी स्टोर कर सकते हैं।

मैं इस उपकरण की अत्यधिक अनुशंसा करता हूं, कीमत के लिए बहुत उपयोगी ... लेकिन इसके साथ कुछ कस्टम सेटअप करने की अपेक्षा करें (यह एक स्क्रिप्ट रिकॉर्ड करने के लिए प्रॉक्सी में बनाया गया है, लेकिन इसे सत्र जैसी किसी चीज को कैप्चर करने के लिए अनुकूलन की आवश्यकता हो सकती है ... मुझे पता है मुझे इसे प्रति सत्र एक अद्वितीय सत्र का उपयोग करने के लिए अनुकूलित करना पड़ा)।


1
ग्राइंडर के लिए +1। मुझे विशेष रूप से प्रॉक्सी स्क्रिप्टिंग विकल्प पसंद आया।
21

किसी भी मौका यह एक निष्क्रिय ब्राउज़र अनुकरण करने के लिए इस्तेमाल किया जा सकता है। सर्वर अनुरोध हमारे ऐप के लिए हर दो सेकंड में एक निष्क्रिय ब्राउज़र से किए जाते हैं। मैं जानना चाहता हूं कि तीस समवर्ती निष्क्रिय ब्राउज़र होने पर क्या होता है।
रामी

1
ग्राइंडर के लिए +1। EC2 के साथ जोड़ा गया, हमने इसे 100k समवर्ती उपयोगकर्ताओं को स्पिन करने के लिए सफलतापूर्वक उपयोग किया है।
15

23

इस पार्टी में थोड़ी देर हो गई। मैं सहमत हूं कि पाइलॉट वहां से सबसे अच्छा और आने वाला ओपन सोर्स टूल है। यह उपयोग करने के लिए सरल है और सक्रिय रूप से एक महान व्यक्ति ( कोरी गोल्डबर्ग ) द्वारा काम किया जाता है । OpenQA के संस्थापक के रूप में , मुझे यह भी खुशी है कि पाइलोट अब हमारे होम पेज पर सूचीबद्ध है और हमारे कुछ बुनियादी ढांचे (अर्थात मंचों) का उपयोग करता है।

हालाँकि, मैंने हाल ही में यह भी निर्णय लिया कि लोड टेस्टिंग की पूरी अवधारणा त्रुटिपूर्ण थी: HTTP ट्रैफ़िक का अनुकरण करना, जैसे कि वे जितने जटिल हो गए हैं, बट में दर्द है। इसलिए मैंने कमर्शियल टूल BrowserMob बनाया है। यह एक बाहरी लोड परीक्षण सेवा है जो बैक लोड खेलते समय वास्तविक वेब ब्राउज़र को नियंत्रित करने के लिए सेलेनियम का उपयोग करता है ।

दृष्टिकोण को स्पष्ट रूप से सामान्य लोड परीक्षण तकनीकों की तुलना में एक टन अधिक हार्डवेयर की आवश्यकता होती है , लेकिन क्लाउड कंप्यूटिंग का उपयोग करते समय हार्डवेयर वास्तव में बहुत सस्ता होता है। और इसका एक अच्छा दुष्प्रभाव यह है कि स्क्रिप्टिंग सामान्य लोड परीक्षण की तुलना में बहुत आसान है। आपको कुकीज निकालने के लिए कोई उन्नत रेगेक्स मिलान (जेएमटर की आवश्यकता होती है) करने की ज़रूरत नहीं है। .NET सत्र स्थिति, अजाक्स अनुरोध पैरामीटर आदि, चूंकि आप वास्तविक ब्राउज़र का उपयोग कर रहे हैं, वे सिर्फ वही करते हैं जो वे करने वाले हैं।

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


2
पाइलॉट के लेखक ने एक अन्य वेब परीक्षण उपकरण भी बनाया है: code.google.com/p/multi-mechanize
codeape

2
Pylot.org का लिंक कुछ संदिग्ध वेबसाइट पर रीडायरेक्ट करता है।
mpiktas

15

मैंने JMeter का उपयोग किया है । वेब सर्वर का परीक्षण करने के अलावा आप अपने डेटाबेस बैकएंड, मैसेजिंग सेवाओं और ईमेल सर्वर का भी परीक्षण कर सकते हैं।


12

1
हाल ही में मैंने tsung के साथ काम किया है यह एक महान उपकरण है (वास्तव में STRESS परीक्षण के लिए), यहाँ कैसे progrnotes.blogspot.com/2011/11/… या inicial
सर्गेई

मैंने ओपन लोड को उपयोगी पाया: linuxpoison.blogspot.com/2010/12/…
wael34218

9

सरल उपयोग के लिए, मैं ab (अपाचे बेंचमार्क) को देखता हूं और घेराबंदी करता हूं, बाद में एक की जरूरत है क्योंकि ab कुकी का समर्थन नहीं करता है और गतिशील साइट से अंतहीन सत्र बनाएगा।

दोनों शुरू करने के लिए सरल हैं:

ab -c n -t 30 url

siege -b -c n -t 30s url

घेराबंदी अधिक url के साथ चल सकती है।

अंतिम घेराबंदी संस्करण siegerc में क्रिया को चालू करता है, जो गुस्सा है। आप इसे केवल उस फ़ाइल को संपादित करके अक्षम कर सकते हैं ( /usr/local/etc/siegerc)।


9

वेब आधारित सेवा के लिए, loader.io देखें

सारांश:

loader.io एक मुफ्त लोड परीक्षण सेवा है जो आपको हजारों समवर्ती कनेक्शनों के साथ अपने वेब-एप्स / एपिस का परीक्षण करने की अनुमति देती है।

उनके पास एक एपीआई भी है ।


2
यह अपनी मशीनों के साथ अपनी खुद की मशीनों का परीक्षण करने का एक अच्छा विकल्प है
nurettin

9

जैसा कि यह सवाल अभी भी खुला है, हो सकता है कि मेरा वजन भी कम हो।

अच्छी खबर यह है कि पिछले 5 या इतने वर्षों में ओपन सोर्स टूल वास्तव में परिपक्व हो गए हैं और अंतरिक्ष में ले गए हैं, बुरी खबर यह है कि उनमें से बहुत सारे हैं।

यहाँ मेरे विचार हैं: -

जेमीटर बनाम ग्राइंडर

Jmeter एक XML स्टाइल स्पेसिफिकेशन से प्रेरित है, जिसका निर्माण GUI के माध्यम से किया गया है।

ग्राइंडर एक म्यूट-थ्रेडेड जावा फ्रेमवर्क के भीतर जाइथन स्क्रिप्टिंग का उपयोग करता है, इसलिए प्रोग्रामर्स के लिए अधिक उन्मुख है।

दोनों उपकरण HTTP और HTTPS को संभालेंगे और आपको आरंभ करने के लिए एक प्रॉक्सी रिकॉर्डर है। दोनों उपकरण कई परीक्षण एजेंटों को चलाने के लिए नियंत्रक मॉडल का उपयोग करते हैं, इसलिए स्केलेबिलिटी एक समस्या नहीं है (क्लाउड तक पहुंच दी गई है)।

कौनसा अच्छा है:-

लर्निंग कर्व के रूप में एक कठिन कॉल दोनों टूल्स के साथ खड़ी है क्योंकि आप यूआरएल रीराइटिंग, सहसंबंध के लिए अधिक जटिल स्क्रिप्टिंग आवश्यकताओं में प्राप्त करते हैं, प्रति उपयोगकर्ता वर्चुअल डेटा प्रदान करते हैं और पहली बार अनुकरण करते हैं या उपयोगकर्ताओं (HTTP हेडर को हेरफेर करके) वापस करते हैं।

यह कहा कि मैं Jmeter के साथ शुरू करूँगा क्योंकि इस उपकरण का बहुत बड़ा अनुसरण है और इस उपकरण का उपयोग करने के लिए वेब पर कई उदाहरण और ट्यूटोरियल हैं। अगर आप 'रोड ब्लॉक' में आते हैं, तो ऐसा कुछ है जो आप आसानी से 'जेटर' के साथ नहीं कर सकते, तो ग्राइंडर पर एक नजर डालिए। अच्छी खबर यह है कि इन दोनों उपकरणों में एक ही जावा आवश्यकता है और एक 'मिक्स एंड मैच' समाधान प्रश्न से बाहर नहीं है।

जोड़ने के लिए कुछ नया - सेलेनियम वेबड्राइवर के कई उदाहरणों को चलाने वाले प्रमुख ब्राउज़र।

यह अपेक्षाकृत नया दृष्टिकोण है क्योंकि यह उन संसाधनों की उपलब्धता पर निर्भर करता है जिन्हें अब क्लाउड से प्रावधान किया जा सकता है। इस दृष्टिकोण के साथ एक सेलेनियम (वेबड्राइवर) स्क्रिप्ट ली जाती है और कई थ्रेड्स में एक हेडलेस ब्राउज़र (यानी वेबड्राइवर = न्यू HtmlUnitDriver ()) ड्राइवर के भीतर चलती है।

अनुभव से लेकर 'हेडलेस ब्राउजर्स' के करीब 25 उदाहरण अमेजन एम 1 स्मॉल इंस्टेंस से लिए जा सकते हैं।

इसका मतलब यह है कि सभी सहसंबंध, url के पुनर्लेखन मुद्दे गायब हो जाते हैं क्योंकि आप प्रदर्शन परीक्षण स्क्रिप्ट बनने के लिए अपने कार्यात्मक परीक्षण स्क्रिप्ट का पुन: उपयोग करते हैं।

स्केलिबिलिटी से समझौता किया जाता है क्योंकि लोड को चलाने के लिए अधिक वीएम की आवश्यकता होगी, जैसा कि एक HTTP ड्राइवर जैसे कि ग्राइंडर यामीटर के साथ तुलना में। उस ने कहा, यदि आप 500 वर्चुअल उपयोगकर्ता ड्राइव करना चाहते हैं, तो 20 अमेज़ॅन स्मॉल इंस्टेंस (प्रत्येक घंटे में 6 सेंट प्रति घंटे) की लागत के साथ, केवल $ 1.20 प्रति घंटे की लागत से आपको लोड होता है जो कि वास्तविक उपयोगकर्ता अनुभव के बहुत करीब है।


ग्राइंडर क्लोर्ज स्क्रिप्टिंग का भी उपयोग कर सकते हैं।
user100464

7

इसके अलावा, एक भयानक ओपन-सोर्स शुद्ध-पायथन वितरित और स्केलेबल टिड्डे फ्रेमवर्क है जो ग्रीनलेट का उपयोग करता है । यह एक साथ उपयोगकर्ताओं की भारी मात्रा में अनुकरण करने में महान है।


7

हमने हाल ही में लोड परीक्षण के लिए गैटलिंग का उपयोग शुरू किया। मैं अत्यधिक लोड परीक्षण के लिए इस उपकरण की कोशिश करने की सलाह दूंगा। हमने अतीत में SOASTA और JMETER का उपयोग किया था। गैटलिंग पर विचार करने का हमारा मुख्य कारण निम्नलिखित है:

  • परिदृश्य रिकॉर्ड करने के लिए रिकॉर्डर
  • अक्का और नेति का उपयोग करना जो कि जेटर थ्रेडिंग मॉडल की तुलना में बेहतर प्रदर्शन देता है
  • DSL Scala जो कि Jmeter XML की तुलना में बहुत ही बेहतर है
  • परीक्षण लिखना आसान है, अगर यह पपड़ी है तो डरा नहीं।
  • रिपोर्टिंग

मुझे आपको गैटलिंग कोड का उपयोग करके कोड लिखने के लिए सरल उदाहरण दें:

// your code starts here  
val scn = scenario("Scenario")  
     .exec(http("Page")
     .get("http://example.com")) 
// injecting 100 user enter code here's on above scenario.   
setUp(scn.inject(atOnceUsers(100)))       

हालाँकि आप इसे यथासंभव जटिल बना सकते हैं। एक फीचर जो गैटलिंग के लिए खड़ा है, वह रिपोर्टिंग है जो बहुत विस्तार से है।

यहाँ कुछ लिंक दिए गए हैं:
गैटलिंग
गैटलिंग ट्यूटोरियल

मैंने हाल ही में इस पर बात की थी, आप यहाँ बात से गुज़र सकते हैं:
https://docs.google.com/viewer?url=http%3A%2F%2Ffiles.meetup.com%2F3872152%2Fploring-Load-Testing-with -Gatling.pdf


6

यह एक पुराना प्रश्न है, लेकिन मुझे लगता है कि नए समाधान एक उल्लेख के योग्य हैं। चेकआउट LoadImpact: http://www.loadimpact.com


हाँ। मैंने अभी इस पर एक नज़र डाली है। यह Q / A खोजने से पहले Google पर मिला। मुझे लगता है कि वेब आधारित अनुप्रयोग एक अच्छा तरीका है, लेकिन मुझे यकीन नहीं हो रहा है कि यह वास्तव में मेरे सर्वर को आगे बढ़ा रहा है। हालांकि, इसमें कोई संदेह नहीं था। Tbh, मैं वास्तव में एक पूर्ण खाते के लिए साइन अप करने के लिए परीक्षा में हूँ।
चार्ली

4

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


1
मैं WebLoad भी सुझाता हूं। यह एक महान उपकरण है, उपयोग करने में आसान है, और रिपोर्ट बहुत उपयोगी हैं। मैं मान रहा हूँ कि आप एक Windows प्लेटफ़ॉर्म पर हैं, इसलिए परफॉमन के साथ संयुक्त किए गए ये परिणाम आपको वह सब कुछ बताएंगे जो आपको जानना आवश्यक है।
बाबाक नेफस

2
ध्यान दें कि WebLoad अब पूरी तरह से वाणिज्यिक है। उन्होंने ईमेल भेजते हुए कहा, उद्धरण: -------- -वेबल्ड ओपन सोर्स को जीवन का अंत (ईओएल) घोषित किया गया है -अगर आपके पास अभी भी उत्पाद का एक संस्करण है जो हम आपको याद दिलाते हैं कि ईयूएलए के तहत, कोई भी वितरण उत्पाद या तीसरे पक्ष की सेवा के लिए इसका उपयोग करना सख्त वर्जित है। ------- ओपन सोर्स वर्जन वितरित करना प्रतिबंधित है? यहां तक ​​कि इसे एक तरह से उपयोग करना भी उन्हें पसंद नहीं है? ऐसा व्यवहार नहीं, जिसके साथ मैं कुछ भी करना चाहता हूं।
जोशदान

1
डोमेन से लिंक अब केवल विज्ञापन है - मूल डोमेन की समय सीमा समाप्त हो गई है।
डोडी_कोडर

@ जोशदान यही वजह है कि जीपीएल महत्वपूर्ण है।
थोरबजर्न रेवन एंडरसन

3

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


3

ब्लेज़ मीटर में रिकॉर्डिंग सत्रों के लिए क्रोम एक्सटेंशन है और उन्हें जेमीटर (वर्तमान में लॉगिन की आवश्यकता है) के लिए निर्यात किया जाता है। आपके पास उन्हें JMeter सर्वर के अपने क्लस्टर पर चलाने के लिए उन्हें पैसे देने का विकल्प भी है (उनकी कीमत LoadImpact की तुलना में बहुत बेहतर लगती है जिसे मैंने अभी उपयोग करना बंद कर दिया है):

मेरा उनसे कोई संबंध नहीं है, मुझे उनकी सेवा का आभास है, हालाँकि मैंने अभी तक भुगतान किए गए संस्करण का उपयोग नहीं किया है।


2

आपने यह प्रश्न लगभग एक साल पहले पूछा था और मुझे नहीं पता कि क्या आप अभी भी अपनी वेबसाइट को बेंचमार्क करने के दूसरे तरीके की तलाश कर रहे हैं। हालाँकि, यह प्रश्न अभी भी हल नहीं हुआ है क्योंकि मैं नि: शुल्क webservice LoadImpact ( b संबद्ध नहीं था) का सुझाव देना चाहूंगा । बस इस लिंक को ट्विटर के माध्यम से मिला और इस खोज को साझा करना चाहूंगा। वे एक उचित अच्छा अवलोकन बनाते हैं और कुछ रुपये के लिए आपको "पूर्ण प्रभाव मोड" मिलता है। यह शायद अजीब लगता है, लेकिन आपकी सेवा को धक्का और ब्रेक देना सौभाग्य है :)



1

मैंने ओपनस्टा का उपयोग किया है

यह एक वेब साइट के साथ एक सत्र को रिकॉर्ड करने की अनुमति देता है और फिर एक अपेक्षाकृत सरल स्क्रिप्ट भाषा के माध्यम से वापस खेला जाता है।

आप आसानी से वेब सेवाओं का परीक्षण कर सकते हैं और अपनी खुद की स्क्रिप्ट लिख सकते हैं।

यह आपको किसी भी तरह से एक परीक्षण में स्क्रिप्ट को एक साथ रखने की अनुमति देता है जो आप चाहते हैं और पुनरावृत्तियों की संख्या को कॉन्फ़िगर करें, प्रत्येक पुनरावृत्ति में उपयोगकर्ताओं की संख्या, प्रत्येक नए उपयोगकर्ता को पेश करने के लिए रैंप अप समय और प्रत्येक पुनरावृत्ति के बीच देरी। भविष्य में टेस्ट भी निर्धारित किए जा सकते हैं।

यह खुला स्रोत और मुफ्त है।

यह कई रिपोर्ट तैयार करता है जिन्हें स्प्रेडशीट में सहेजा जा सकता है। फिर हम परिणामों का आसानी से विश्लेषण और ग्राफ़ बनाने के लिए एक पिवट टेबल का उपयोग करते हैं।


1

हम बताए गए Microsoft टूल का उपयोग करते हैं - Microsoft वेब एप्लिकेशन स्ट्रेस टूल। यह सबसे आसान उपकरण है जिसका मैंने उपयोग किया है। यह कई मायनों में सीमित है, जिसमें केवल मैन्युअल रूप से निर्मित परीक्षणों पर पोर्ट 80 को हिट करने में सक्षम होना शामिल है। लेकिन, इसके उपयोग में आसानी का मतलब है कि यह वास्तव में उपयोग हो जाता है।

हम इस उपकरण से लोड को OpenSTA और लिंक चेक मकड़ियों सहित अन्य उपकरणों के साथ पूरक करते हैं।

JMeter मेरे प्रारंभिक मूल्यांकन से अच्छा लग रहा है, मुझे उम्मीद है कि इसे हमारे निरंतर एकीकरण में शामिल किया जाएगा। लेकिन, JMeter बाहर रोल करने के लिए जटिल और गैर तुच्छ है।

मैं एमएस तनाव उपकरण परिणामों की व्याख्या करने के बारे में एक और सवाल खोलने का सुझाव देता हूं।


1

विजुअल स्टूडियो टेस्ट एडिशन 2010 (2008 भी अच्छा)। यह वेब / लोड परीक्षण के साथ बनाने के लिए एक बहुत आसान और शक्तिशाली उपकरण है।

विंडोज सर्वर के खिलाफ उपयोग करने पर इस टूल के साथ बोनस यह है कि आपको अपनी रिपोर्ट में सभी परफॉमन सर्वर आँकड़ों तक एकीकृत पहुँच मिलती है। वास्तव में उपयोगी।

अन्य बोनस यह है कि विज़ुअल स्टूडियो प्रोजेक्ट के साथ आप "प्रदर्शन सत्र" को एकीकृत कर सकते हैं जो आपकी वेबसाइट के कोड निष्पादन को प्रोफाइल करेगा।

यदि आप एक विंडोज़ सर्वर से वेबपेज की सेवा दे रहे हैं, तो यह वहाँ से बाहर का सबसे अच्छा उपकरण है।

हालाँकि आवेदन को लोड करने के लिए कई मशीनों का उपयोग करने के लिए एक अलग और महंगा लाइसेंस की आवश्यकता होती है।


1

हमने एक ऐसी प्रक्रिया विकसित की है जो भार और प्रदर्शन मापन को एक प्रथम श्रेणी की चिंता के रूप में मानती है - जैसा कि आप कहते हैं, इसे परियोजना के अंत तक छोड़ने से निराशा होती है ...

इसलिए, विकास के दौरान, हम बहुत ही मूल बहु-उपयोगकर्ता परीक्षण (सेलेनियम का उपयोग करते हुए) को शामिल करते हैं, जो टूटे हुए सत्र प्रबंधन, स्पष्ट संगामिति मुद्दों और स्पष्ट संसाधन विवाद समस्याओं जैसी बुनियादी पागलपन के लिए जाँच करता है। गैर-तुच्छ परियोजनाओं में निरंतर एकीकरण प्रक्रिया में यह शामिल है, इसलिए हमें बहुत नियमित प्रतिक्रिया मिलती है।

उन परियोजनाओं के लिए जिनमें अत्यधिक प्रदर्शन आवश्यकताएं नहीं हैं, हम अपने परीक्षण में बुनियादी प्रदर्शन परीक्षण शामिल करते हैं; आमतौर पर, हम BadBoy का उपयोग करके परीक्षणों को स्क्रिप्ट करते हैं, और उन्हें JMeter में आयात करते हैं, लॉगिन विवरण और अन्य थ्रेड-विशिष्ट चीजों की जगह। हम फिर उन्हें उस स्तर तक रैंप करते हैं जो सर्वर प्रति सेकंड 100 अनुरोधों के साथ काम कर रहा है; यदि प्रतिक्रिया समय 1 सेकंड से कम है, तो यह आमतौर पर पर्याप्त है। हम लॉन्च करते हैं और अपने जीवन के साथ आगे बढ़ते हैं।

अत्यधिक प्रदर्शन आवश्यकताओं वाली परियोजनाओं के लिए, हम अभी भी BadBoy और JMeter का उपयोग करते हैं, लेकिन हमारे परीक्षण रिग (वेब ​​और डेटाबेस सर्वर, आमतौर पर) पर सर्वर पर बाधाओं को समझने में बहुत अधिक ऊर्जा डालते हैं। Microsoft इवेंट लॉग का विश्लेषण करने के लिए एक अच्छा उपकरण है जो इसके साथ बहुत मदद करता है। हम आम तौर पर अप्रत्याशित अड़चन पाते हैं, जिसे हम यदि संभव हो तो अनुकूलित करते हैं; जो हमें एक ऐसा एप्लिकेशन देता है जो "1 वेब सर्वर, 1 डेटाबेस सर्वर" पर उतना ही तेज़ हो। तब हम आम तौर पर अपने लक्ष्य के बुनियादी ढांचे पर तैनात होते हैं, और बड़े पैमाने पर परीक्षणों को फिर से चलाने के लिए "क्लाउड में जेमीटर" सेवाओं में से एक का उपयोग करते हैं।

फिर से, PAL रिपोर्ट्स का विश्लेषण करने में मदद करता है कि परीक्षणों के दौरान क्या हुआ था - आप अक्सर उत्पादन वातावरण पर बहुत अलग बाधाओं को देखते हैं।

कुंजी यह सुनिश्चित करने के लिए है कि आप केवल अपने तनाव परीक्षण नहीं चलाते हैं, लेकिन यह भी कि आप अपने आवेदन के प्रदर्शन को समझने के लिए आवश्यक जानकारी एकत्र करते हैं।


1

यहां बहुत सारे अच्छे उपकरणों का उल्लेख किया गया है। मुझे आश्चर्य है कि अगर उपकरण एक प्रश्न का उत्तर हैं: "आप किसी वेब एप्लिकेशन का परीक्षण कैसे करते हैं?" उपकरण वास्तव में वेब एप्लिकेशन को तनाव देने की विधि प्रदान नहीं करते हैं। यहाँ मुझे पता है:

तनाव परीक्षण से पता चलता है कि उपयोगकर्ताओं की बढ़ती आबादी के जवाबों की सेवा करते समय एक वेब ऐप कैसे विफल हो जाता है। तनाव परीक्षण से पता चलता है कि विफल होने पर वेब ऐप कैसे कार्य करता है। आज अधिकांश वेब ऐप - विशेष रूप से सोशल / मोबाइल वेब ऐप - सेवाओं का एकीकरण हैं। उदाहरण के लिए, जब मई 2011 में फेसबुक का आउटेज था तो आप Pepsi.com के वेब ऐप पर लॉग इन नहीं कर सकते थे। एप्लिकेशन पूरी तरह से विफल नहीं हुआ, बस इसके सामान्य फ़ंक्शन का एक बड़ा हिस्सा उपयोगकर्ताओं के लिए उपलब्ध नहीं है।

प्रदर्शन परीक्षण वेब ऐप की प्रतिक्रिया समय को बनाए रखने की क्षमता को दर्शाता है कि कितने उपयोगकर्ता ऐप का उपयोग कर रहे हैं। उदाहरण के लिए, एक ऐप जो 10 समवर्ती उपयोगकर्ताओं के साथ प्रति सेकंड 10 लेनदेन को संभालता है, उसे 20 उपयोगकर्ताओं पर 20 लेनदेन प्रति सेकंड संभालना चाहिए। यदि ऐप प्रति सेकंड 20 लेनदेन से कम संभालता है, तो प्रतिक्रिया समय लंबा हो रहा है और ऐप रैखिक मापनीयता प्राप्त करने में सक्षम नहीं है।

इसके अलावा, उपरोक्त उदाहरण में लेनदेन-प्रति-सेकंड गिनती केवल परीक्षण उपयोग केस / वर्कफ़्लो के सफल संचालन की होनी चाहिए। विफलताएं आमतौर पर कम समय में होती हैं और टीपीएस माप को अत्यधिक आशावादी बना देगा। असफलता एक तनाव और प्रदर्शन परीक्षण के लिए महत्वपूर्ण है क्योंकि वे ऐप पर भी लोड उत्पन्न करते हैं।

मैंने टेस्टमेकर यूजर गाइड में http://www.pushtotest.com/pushtotest-testmaker-6-methodology पर PushToTest कार्यप्रणाली लिखी । टेस्टमेकर दो फ्लेवर में आता है: ओपन सोर्स (जीपीएल) कम्युनिटी वर्जन और टेस्टमेकर एंटरप्राइज (बड़े पेशेवर समर्थन के साथ वाणिज्यिक।)

फ्रैंक


1
यह ओपी के सवाल का जवाब नहीं देता है
कोरी गोल्डबर्ग

1

LoadBooster ( https://www.loadbooster.com) पर एक नज़र डालें ) । यह वेब साइटों का परीक्षण करने के लिए हेडलेस स्क्रिप्टेबल ब्राउज़र PhantomJS / CasperJs का उपयोग करता है। फैंटमज हर पृष्ठ को पार्स और रेंडर करेगा, क्लाइंट-साइड स्क्रिप्ट निष्पादित करेगा। बिना सिर वाले ब्राउज़र दृष्टिकोण जटिल AJAX भारी वेब 2.0 ऐप browser ब्राउज़र नेविगेशन, माउस क्लिक और कीस्ट्रोक्स का ब्राउज़र में समर्थन करने के लिए परीक्षण परिदृश्य लिखना आसान है या DOM में एक तत्व मौजूद होने तक प्रतीक्षा करें। LoadBooster selenium HTML स्क्रिप्ट को भी सपोर्ट करता है।

डिस्क्लेमर: मैं लोडबॉस्टर के लिए काम करता हूं।


1

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


0

एक और ध्यान दें, हमारे वेब एप्लिकेशन के लिए, मैंने पाया कि हमारे पास थ्रेड्स ऑन लॉक्स के बीच विवाद के कारण भारी प्रदर्शन के मुद्दे थे ... इसलिए नैतिकता को लॉकिंग स्कीम पर बहुत सावधानी से सोचना था। हम एक अतुल्यकालिक http हैंडलर का उपयोग करते हुए बहुत सारे अनुरोधों को समाप्त करने के लिए वर्कर थ्रेड्स को समाप्त कर देते हैं, अन्यथा एप्लिकेशन बस अभिभूत हो जाएगा और दुर्घटनाग्रस्त हो जाएगा और जल जाएगा। इसका मतलब था कि एक विशाल बैकलॉग ढेर हो सकता है, लेकिन कम से कम साइट ऊपर रहेगी।


यह ओपी के सवाल का जवाब नहीं देता है
कोरी गोल्डबर्ग


0

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


0

मैंने JMeter के साथ खेला। एक सोच है कि यह परीक्षण नहीं कर सका ASP.NET Webforms। व्यूस्टेट ने मेरे परीक्षण तोड़ दिए। मैं श्योर क्यों नहीं हूं, लेकिन वहाँ कुछ उपकरण हैं जो न तो सही देखते हैं। मेरी वर्तमान परियोजना ASP.NET MVC है और JMeter इसके साथ अच्छा काम करता है।


0

मेरे पास फंकलड के साथ अच्छे परिणाम थे :

  • आसान उपयोगकर्ता बातचीत करने के लिए स्क्रिप्ट
  • रिपोर्ट स्पष्ट हैं
  • सर्वर लोड की निगरानी कर सकते हैं

0

बेशर्म आत्म संवर्धन के आरोप में होने के जोखिम पर मैं यह कहना चाहूंगा कि एक मुफ्त लोड परीक्षण उपकरण की तलाश में मैं इस लेख पर गया: http://www.devcurry.com/2010/07/10-free- उपकरण करने वाली loadstress-परीक्षण your.html

या तो मुझे वह थ्रूपुट नहीं मिल सका जो मैं चाहता था, या मैं वह लचीलापन नहीं पा सकता था जो मैं चाहता था। और मैं आसानी से पोस्ट टेस्ट विश्लेषण में कई लोड टेस्ट पीढ़ी के मेजबानों के परिणामों को एकत्र करना चाहता था।

मैंने सूची के हर उपकरण को आजमाया और मेरी हताशा में पाया कि उनमें से कोई भी ऐसा नहीं था जो मैं करना चाहता था। इसलिए मैंने एक बनाया और इसे साझा कर रहा हूं।

यहाँ यह है: http://sourceforge.net/projects/loadmonger

पुनश्च: शहरी स्लैंग से परिचित लोगों के नाम पर कोई भद्दी टिप्पणी नहीं। मैं नहीं था, लेकिन अब थोड़ा अधिक सांसारिक हूं।


0

के लिए मैं वोट JMeter भी और मैं @PeterBernier जवाब देने के लिए कुछ उद्धरण जोड़ना चाहते हैं।

मुख्य प्रश्न जो परीक्षण उत्तरों को लोड करता है वह मेरे वेब एप्लिकेशन को कितने समवर्ती उपयोगकर्ताओं का समर्थन कर सकता है? एक उचित उत्तर प्राप्त करने के लिए, लोड परीक्षण को वास्तविक एप्लिकेशन उपयोग का प्रतिनिधित्व करना चाहिए, जितना संभव हो उतना करीब

ध्यान रखें, jMeter में कई बिल्डिंग ब्लॉक्स लॉजिकल कंट्रोलर , कॉन्फिग एलीमेंट्स , प्री प्रोसेसर्स , श्रोता , ... हैं, जो इसमें आपकी मदद कर सकते हैं।

आप jMeter के साथ वास्तविक दुनिया की स्थिति की नकल कर सकते हैं, उदाहरण के लिए:

  1. कॉन्फ़िगर JMeter कॉन्फ़िगर करके वास्तविक ब्राउज़र के रूप में कार्य करने के लिए ( concurrent resource download, browser cache, http headers, setting request time out, cookie management, https support, encoding, ajax support, ...)
  2. कॉन्फ़िगर JMeter उपयोगकर्ता अनुरोधों उत्पन्न करने के लिए (परिभाषित करते हुए number of users per second, ramp-up time, scheduling, ...)
  3. एक वितरित लोड परीक्षण करने के लिए उन पर jMeter के साथ बहुत सारे क्लाइंट कॉन्फ़िगर करें।
  4. परीक्षण के दौरान सर्वर सही ढंग से प्रतिक्रिया दे रहा है या नहीं, यह जानने के लिए प्रक्रिया प्रतिक्रिया। (उदाहरण के लिए assertइसमें एक पाठ खोजने के लिए प्रतिक्रिया)

कृपया ध्यान रखें:

  • मिनटों में jMeter के साथ एक वास्तविक वेब एप्लिकेशन परीक्षण शुरू करना आसान है। JMeter के पास एक बहुत ही आसान उपकरण है जो आपके परीक्षण परिदृश्य को रिकॉर्ड करता है (जैसा पता है HTTP(S) Test Script Recorder)।
  • jMeter के पास http://jmeter-plugins.org पर बहुत सारे प्लगइन्स हैं ।
  • JMeter UI आधारित है और उसने jMeter 3.2 में अच्छे बदलाव किए हैं। दूसरी ओर, कृपया विचार करें कि JMeter GUI का उपयोग केवल परीक्षण और डीबगिंग के लिए किया जाना चाहिए। वास्तविक परीक्षण के लिए GUI मोड में इसका उपयोग करना अच्छा नहीं है। https://www.blazemeter.com/blog/5-ways-launch-jmeter-test-without-use-jmeter-gui । अपने परिदृश्य को कॉन्फ़िगर करें और परीक्षण करें और इसे गैर-गिनी मोड पर चलाएँ।
  • JMeter (जैसा ज्ञात listeners) में बहुत सारे रिपोर्टिंग उपकरण हैं, लेकिन परीक्षण के दौरान होने का कोई मतलब नहीं है। आपको अपना परीक्षण चलाना चाहिए और रिपोर्ट ( .jtlफाइलें) उत्पन्न करनी चाहिए । फिर आपको परिणाम का विश्लेषण करने के लिए इन उपकरणों का उपयोग करना होगा। कृपया https://www.blazemeter.com/blog/jmeter-listeners-part-1-basic-display-formats या https://www.tutorialspoint.com/jmeter/jmeter_listeners.htm पर एक नज़र डालें ।

Https://www.blazemeter.com/jmeter मदद करने के लिए बहुत अच्छा और व्यावहारिक जानकारी आप अपने परीक्षण वातावरण को कॉन्फ़िगर है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.