2013-09-23 4 views
9

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

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

मैं निम्नलिखित आकलन करने के लिए करना चाहते हैं:

  • उपलब्धता पर अधिक लोड
  • पर अधिक लोड
  • प्रदर्शन
  • मेमोरी/सीपीयू/डिस्क पर अधिक लोड प्रयोग
  • यह उच्च तहत क्रैश हो रहा है लोड या प्रतिक्रियापूर्वक

मानक के तहत ऐसी विशेषताओं को मापना और इसके विपरीत करना भी दिलचस्प होगा अल लोड

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

+2

मैं अपाचे जेएमटर http://jmeter.apache.org/ को वेब अनुप्रयोगों के लिए एक उत्कृष्ट तनाव परीक्षण उपकरण के रूप में अनुशंसा करता हूं। इसका उपयोग करना आसान है और इसे भी बढ़ाया जा सकता है। – Rami

+0

मुझे गैटलिंग (http://gatling.io) एक उत्कृष्ट उपकरण भी मिला है। – cmd

उत्तर

1

स्केलेबिलिटी मापने के लिए हमारी मानक तकनीकों में से एक stepped-ramp load tests चल रहा है।

0

मुख्य रूप से एक आवेदन पर प्रदर्शन के लिए दो दृष्टिकोण हैं:

प्रदर्शन परीक्षण और सिस्टम टेस्ट

वे क्या अंतर है? वैसे यह आसान है, यह उनके दायरे पर आधारित है, प्रदर्शन परीक्षण का दायरा सीमित है और अत्यधिक अवास्तविक है। उदाहरण: कुछ ऐप एक्स पर इनकमिंग मैसेज हैंडलर का परीक्षण करें, इसके लिए आप एक परीक्षण स्थापित करेंगे जो एक्स, वाई, जेड आधार पर इस हैंडलर को मीसेज भेजता है। यह दृष्टिकोण आपको समस्याओं को कम करने और आपके आवेदन पर व्यक्तिगत और सीमित जोनों के प्रदर्शन को मापने में मदद करेगा।

तो अब यह आपको प्रश्न पर ले जाना चाहिए, तो क्या मैं अपने ऐप में अलग-अलग घटकों में से प्रत्येक का बेंचमार्क और प्रदर्शन परीक्षण कर रहा हूं? हां, यदि आप मानते हैं कि घटक का व्यवहार महत्वपूर्ण है और नए संस्करणों में परिवर्तन प्रदर्शन दंड को प्रेरित करने की संभावना है। लेकिन, यदि आप पूरी तरह से अपने आवेदन पर महसूस करना चाहते हैं, तो घटकों का समूह एक दूसरे के साथ बातचीत कर रहा है और देखें कि प्रदर्शन कैसे आता है, तो आपको सिस्टम परीक्षण की आवश्यकता है।

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

तो निष्कर्ष के रूप में, अपने ऐप पर एक सिस्टम टेस्ट सेटअप करें और मापें कि आप क्या कह रहे थे कि आप मापना चाहते हैं। फिर पूरी तरह से सिस्टम को तनाव दें और देखें कि यह कैसे प्रतिक्रिया करता है, आप परिणाम पर आश्चर्यचकित होंगे।

अंत में, प्रदर्शन परीक्षण व्यक्तिगत रूप से आपके द्वारा पहचाने गए किसी भी महत्वपूर्ण घटक या आपके ऐप पर ट्रैक रखना चाहते हैं।

एक सामान्य दिशानिर्देश के रूप में, प्रदर्शन करते समय आपको हमेशा: 1.- निष्क्रिय स्थिति पर सिस्टम के लिए आधारभूत आधार प्राप्त करें। 2.- सामान्य अपेक्षित लोड के तहत सिस्टम के लिए आधारभूत आधार प्राप्त करें। 3.- तनाव की स्थिति के तहत सिस्टम के लिए आधारभूत आधार प्राप्त करें।

ध्यान रखें कि सामान्य लोड परिणाम तनाव की स्थिति वाग्विस्तार किया जाना चाहिए रखें, और एक अच्छा सिस्टम हमेशा कि एक जो रैखिक पैमाने किया जाएगा।

उम्मीद है कि इससे मदद मिलती है।

पीएस टेस्ट, पर्यावरण सेटअप और यहां तक ​​कि डेटा संग्रह जितना संभव हो सके स्वचालित रूप से स्वचालित होना चाहिए, इससे आपको इसे आधार पर चलाने में मदद मिलेगी और प्रदर्शन समस्याओं का निदान करने में समय लगेगा और परीक्षण स्थापित नहीं किया जाएगा।

5

मैं JMeter का बड़ा प्रशंसक हूं। आप सीधे सर्वर के खिलाफ कॉल सेट कर सकते हैं जैसे उपयोगकर्ता इसे एक्सेस करेंगे। आप उपयोगकर्ता (समवर्ती धागे) और एक्सेस की संख्या को नियंत्रित कर सकते हैं। यह वर्कफ़्लो का पालन कर सकता है, पृष्ठ पर प्रासंगिक सूचना पृष्ठ को स्क्रैप कर रहा है। इसे उत्पादक होने के लिए पर्याप्त रूप से सीखने में 1 से 2 दिन लगते हैं।

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

+0

"यह सामान्य भार के तहत ऐसी विशेषताओं को मापने और इसके विपरीत करने के लिए भी दिलचस्प होगा।" मैं आपको मेट्रिक्स की जांच करने के लिए आमंत्रित करूंगा: http://metrics.dropwizard.io/3.1.0/ – lrn2prgrm

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