2012-01-04 31 views
11

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

हालांकि एक बात है जिसके बारे में मैं स्पष्ट नहीं हूं।

जेएमटर होमपेज पर पढ़ना, "Best practice" section है। अन्य बातों के अलावा, यह कहते हैं:

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

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

निश्चित रूप से, जेएमटर ब्राउज़र नहीं है, लेकिन स्थिर संसाधनों के लिए अनुरोध आपके आवेदन के प्रदर्शन को प्रभावित करेंगे? क्या कोई मुझे एक अच्छा स्पष्टीकरण दे सकता है :-)

उत्तर

7

यह सब उस पर निर्भर करता है कि आप परीक्षण करने का प्रयास कर रहे हैं।

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

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

स्थिर वेबसाइटों की सेवा करने के लिए आपके वेबसर्वर की क्षमता का परीक्षण करने में बहुत कम बिंदु है - माइक्रोसॉफ्ट, अपाचे टीम, जो भी पहले से ही एक शानदार काम कर चुकी है; जब तक कि आपके पास कोई विशिष्ट चिंता न हो, तब तक आपके परीक्षण बजट को खर्च करने के बेहतर तरीके हैं।

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

+0

+1। मैं आपका जवाब पसंद करता हूं। –

+0

एक महान जवाब के लिए धन्यवाद, वास्तव में अच्छी तरह से समझाया! – Daniel

1

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

इसके अलावा, हालांकि स्थिर संसाधन बैंडविड्थ को प्रभावित करते हैं और उपयोगकर्ता के लिए समग्र प्रतिक्रिया समय, उन्हें सर्वर लोड पर एक छोटा सा प्रभाव होना चाहिए, और हो सकता है कि वे ऐसी चीज न हों जो आप मापना चाहते हैं।

मुझे लगता है कि आपको नकल करने की कोशिश करने की ज़रूरत है कि वास्तविक, वास्तविक उपयोगकर्ता एप्लिकेशन के साथ क्या करेंगे।

6

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

खाते में ब्राउज़र कैश लेने के लिए आप HTTP Cache Manager या Once Only controller उपयोग कर सकते हैं, ताकि प्रत्येक धागा केवल एक बार स्थिर सामान डाउनलोड करता है, अपनी पहली अनुरोध के साथ।
HTTP कैश प्रबंधक सेट करने के लिए अनुशंसित तरीका है और सेट अप करने में बहुत आसान है, बस इसे अपने परीक्षण में शामिल करें, थ्रेड समूह के पहले बच्चे के रूप में।
एक बार केवल नियंत्रक नियमित रूप से उपयोग किया जाता है जब आपको केवल अपने पहले अनुरोध पर लॉग-इन करने की आवश्यकता होती है।

गैर स्थैतिक HTTP अनुरोधों के बीटीडब्ल्यू पैरामीट्रिजेशन की अनुशंसा की जाती है, आप उदा। उसी उत्पाद का नाम या उदा। हर बार एक ही किताब खरीदें, आमतौर पर यह शुरुआती बिंदु है जो आपको अपने ऐप की प्रदर्शन दक्षता का सामान्य विचार दे सकता है।

उम्मीद है कि यह मदद करता है ...

संबंधित मुद्दे