13

का उपयोग करके भारी भार को अनुकरण करने के परीक्षण को कैसे तनाव दें मेरे पास परीक्षण करने के लिए एक प्रणाली है, जो एक वीडियो विज्ञापन वितरण तकनीक है। विज्ञापनों की सेवा के लिए मुझे हर वीडियो को 1-2 मिनट लोड करना होगा। वीडियो फ्लैश क्लाइंट में खेला जाता है और YouTube में FLV स्ट्रीम के रूप में स्ट्रीम किया जाता है।सेलेनियम

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

मैंने सेलेनियम, वाटीएन, ऑटोमेशन कहीं और कई अन्य स्वचालन उपकरण का उपयोग किया है। हालांकि, जब मैं अपनी मशीन (32 जीबी रैम, 16-कोर सीपीयू) पर 10000 ब्राउज़रों की तरह शुरू करने की कोशिश कर रहा हूं, तो उनमें से कोई भी नौकरी करने में सक्षम नहीं है।

सेलेनियम के साथ, मैं अब तक अधिकतम फ़ायरफ़ॉक्स उदाहरण शुरू करने में सक्षम हूं, लेकिन यह अभी भी बहुत कम है: उदाहरणों में से आधे परीक्षण नहीं चलाते हैं।

सेलेनियम के साथ क्या कोई सुझाव है?

+0

यदि आपको लोड अनुकरण करने की आवश्यकता है तो आप ओपन सोर्स टूल का उपयोग कर सकते हैं जिसे पिलोट (http://pylot.org/) कहा जाता है। यह टूल समवर्ती कनेक्शन अनुकरण कर सकता है और आप एक्सएमएल में लिखे गए एक परीक्षण परिदृश्य प्रदान कर सकते हैं (पढ़ना शुरू करना साइट पर)। उपकरण असली ब्राउज़र का उपयोग नहीं कर रहा है। – alonp

उत्तर

4

आप अपनी मशीन पर 10,000 ब्राउज़र चलाने नहीं जा रहे हैं। इससे ब्राउजर इंस्टेंस प्रति 3.2 एमबी भौतिक मेमोरी मिलेगी और मुझे यकीन है कि फ़ायरफ़ॉक्स बस इसे पसंद नहीं करेगा।

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

+0

10000 एक काल्पनिक संख्या थी, वर्तमान सर्वर कॉन्फ़िगरेशन के लिए भी 1000-5000 ठीक होगा। जेएमटर मेरे मामले में उपयोगी नहीं है क्योंकि मेरे पास एक समृद्ध मीडिया एप्लिकेशन है जिसे परीक्षण के सफल होने के लिए एक मिनट के लिए निष्पादित करने की आवश्यकता है। –

+2

3.2 एमबी या 32 एमबी रैम, मुझे संदेह है कि फ़ायरफ़ॉक्स भी उतना ही अच्छा होगा। तर्कसंगत रूप से आप सर्वर का परीक्षण कर रहे हैं यदि आप उस पर 1000 धागे फेंकना चाहते हैं तो कौन परवाह करता है कि ग्राहक क्या कर रहा है? क्या क्लाइंट मीडिया का उपयोग करके पूर्ण रूप से फ़ायरफ़ॉक्स है और इसके साथ कुछ कर रहा है, या एक ही समय के साथ उचित यूआरएल के लिए एक कर्ल या wget है, क्योंकि समृद्ध मीडिया ऐप सर्वर से कोई फर्क नहीं पड़ता है, है ना? – digitaljoel

+2

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

1

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

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

+0

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

+0

सुमित, यदि आपको सक्रिय ब्राउज़र विंडो के साथ अपना परीक्षण चलाना है तो आपके पास अब निम्न विकल्प हैं: –

+0

सुमित, यदि आपको सक्रिय ब्राउज़र विंडो के साथ अपना परीक्षण चलाना होगा और आपने पहले से ही अपना बहुत समय और पैसा लिखने सेलेनियम स्क्रिप्ट का निवेश किया है तो मैं चाहता हूं निम्नलिखित विकल्पों का सुझाव दें: 1) अमेज़ॅन ईसी 2 पर कई उदाहरणों को नियोजित करें। आप अपने ईसी 2 उदाहरण पर सेलेनियम ग्रिड सेट कर सकते हैं। यहां विवरण प्राप्त करें: http://selenium-grid.seleniumhq.org/setting_up_selenium_grid_on_ec2.html। 2) यदि डेटा सुरक्षा या किसी अन्य कारण के कारण आप क्लाउड का उपयोग नहीं कर सकते हैं तो आप अपनी प्रयोगशाला में एकाधिक परीक्षण मशीन का उपयोग करके सेलेनियम ग्रिड सेट कर सकते हैं। व्यक्तिगत रूप से मैं ईसी 2 का उपयोग अपने तेज़, आसान और सस्ते विकल्प के रूप में करना पसंद करूंगा। –

1

यह मुझे लगता है कि आप यह सत्यापित करने की कोशिश कर रहे हैं कि ग्राहक उच्च ट्रैफ़िक के आधार पर क्या देखेगा, नहीं?

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

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

5

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

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

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

एक और सिफारिश वास्तविक प्रदर्शन परीक्षण उपकरण होगी। मैं Soasta CloudTest की सिफारिश करता हूं। उनके पास एक मुफ्त संस्करण है जो 100 उपयोगकर्ताओं को चलाता है ताकि आप देख सकें कि यह आपके लिए उपयुक्त होगा या नहीं। मैंने पाया है कि क्लाउडटेस्ट के लिए स्क्रिप्टिंग अपेक्षाकृत सरल है।

अस्वीकरण: दोनों कंपनियों के साथ मेरे अनुभव एक भुगतान करने वाले ग्राहक के रूप में रहे हैं और मैंने कभी भी काम नहीं किया है।

+0

लगता है कि ब्राउज़रमोब नेस्टर में बदल दिया ... –

0

आपकी पोस्ट विज्ञापन-आधारित धोखाधड़ी के कुछ रूपों की गंध करता है, लेकिन किसी भी तरह से: क्या आपने फ़ायरफ़ॉक्स के अलावा विभिन्न वेब ब्राउज़र का उपयोग करने पर विचार किया है? PhantomJS एक हेडलेस वेबकिट-आधारित ब्राउज़र है जो सेलेनियम के साथ संगत है। यह डोम हैंडलिंग, सीएसएस चयनकर्ता, जावास्क्रिप्ट और कैनवास जैसी सभी मूल ब्राउज़र सुविधाओं का समर्थन करता है। मुझे नहीं पता कि यह फ्लैश का समर्थन करता है या नहीं।

This पोस्ट में अन्य हेडलेस और स्वचालित वेब ब्राउज़र की एक सभ्य सूची है जिसे आप विचार कर सकते हैं।

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