22

अवलोकन: क्रोमड्रिवर सामान्य रूप से एक मशीन पर काम करता है लेकिन दो अन्य समान मशीनों पर बेहद धीरे-धीरे काम करता है।सेलेनियम ग्रिड और .net

सेटअप:

  • कोडिंग और परीक्षण के वितरण के लिए सेलेनियम ग्रिड के लिए नेट का उपयोग कर Webdriver सेलेनियम। परीक्षण चलाने के लिए विजुअल स्टूडियो 2010 के भीतर एमएसटीएस्ट का उपयोग किया जा रहा है।
  • एक 64 बिट विंडोज 7 स्थानीय मशीन हब
  • तीन 32-बिट विन 7 रिमोट मशीन (उनमें से दो आभासी हैं) मेरे स्थानीय नेटवर्क पर सभी नोड्स के रूप में कॉन्फ़िगर किए गए हैं। यहाँ दूरस्थ मशीनों पर नोड्स शुरू करने के लिए इस्तेमाल किया आदेश है:

    जावा जार c: \ seleniumWebDriver \ seleniumGrid \ सेलेनियम-server-स्टैंडअलोन-2.31.0.jar -role नोड -hub http://XXX.XXX.XXX.XXX:4444/grid/register -browser "browserName = क्रोम ", maxInstances = 4 -Dwebdriver.chrome.driver =" C: \ seleniumWebDriver \ chromedriver.exe "

  • ड्राइवर कोड के भीतर से इस तरह शुरू की है:

    DesiredCapabilities क्षमता = नए DesiredCapabilities() ; क्षमता .सेट क्षमता (क्षमता टाइप करें। ब्राउजर नाम, ब्राउज़र); चालक = नया रिमोट वेब ड्राइवर (नया उरी (हबउआरएल), क्षमता);

  • उपरोक्त "ब्राउज़र" और "hubUrl" चर एक app.config फ़ाइल के माध्यम से चलाया जाता है जो रनटाइम पर बनाया गया है। इस मामले के लिए, ब्राउज़र = क्रोम।

समस्या:

  • जब मैं सेटअप मशीन 212 उपरोक्त आदेश का उपयोग कर (जो एक आभासी मशीन है) एक क्रोम नोड के रूप में, और उसके बाद केंद्र से स्क्रिप्ट लॉन्च करते हैं, मैं देख रहा हूँ क्रोम उचित रिमोट मशीन में शुरू होता है और सामान्य रूप से चलता है। यह प्रति सेकेंड 5-10 कमांड के बीच फ़ील्ड करता है।

  • जब मैं मशीन 78 (वर्चुअल मशीन) या मशीन 103 (असली मशीन) को उसी तरीके से नोड के रूप में सेट करता हूं, और उसके बाद हब से स्क्रिप्ट लॉन्च करता है, तो मुझे नोड ठीक से क्रोम शुरू होता है। हालांकि, यह बहुत धीमी गति से चलता है, जैसे प्रति कम या कम 1 कमांड।

अन्य जानकारी: जैसा कि मैंने कहा, पर एक मशीन क्रोम सामान्य रूप से काम करता है, लेकिन दूसरों पर, बहुत धीमे चलता है। फ़ायरफ़ॉक्स और आईई, जब नोड्स के रूप में कॉन्फ़िगर किया गया, सामान्य रूप से काम करते हैं।

मैंने अन्य मशीनों के साथ मशीन 212 (जो ठीक से काम करता है) की तुलना की है और अंतर नहीं मिल सकता है। सभी मशीनें 'सेलेनियम-सर्वर-स्टैंडअलोन-2.31.0.jar' और क्रोमड्राइवर का एक ही संस्करण उपयोग कर रही हैं।

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

मेरे नेटवर्क तकनीक ने सत्यापित किया है कि ये सभी मशीनें नेटवर्क पर समान रूप से कॉन्फ़िगर की गई हैं।

क्या किसी ने इससे पहले ऐसा कुछ देखा है?

संपादित करें 1: मैंने आज लॉग इन किया है और सभी तीन दूरस्थ मशीन धीरे-धीरे क्रोम चला रहे हैं। उनमें से एक सामान्य था, लेकिन अब वे सब धीमे हैं।

+0

नोट: यह समस्या मौजूद है या नहीं मैं दृश्य स्टूडियो के भीतर से MSTest का उपयोग कर परीक्षण चलाने के लिए या कि क्या मैं MSTest कमांड लाइन का उपयोग कर उन्हें चलाते हैं। कॉल "C: \ प्रोग्राम फ़ाइलें (x86) \ माइक्रोसॉफ्ट विजुअल स्टूडियो 10.0 \ कुलपति \ vcvarsall.bat" x86_amd64 MSTest/testcontainer: "पथ \ धुआँ टेस्ट 4.dll" – Sky

+0

क्या आप देख पा रहे हैं जब आप मैन्युअल रूप से क्रोम का उपयोग धीमी वीएम में? क्या पेज अन्य मशीनों के रूप में तेजी से लोड हो रहे हैं? –

+1

हां, जब मैं मैन्युअल रूप से चलाता हूं, यह सामान्य गति पर काम करता है। – Sky

उत्तर

31

मैं इसी तरह की समस्या में भाग गया जहां कुछ मशीनों में क्रोमेड्रिवर धीमा था और यह प्रॉक्सी समस्या साबित हुआ। Chrome के अंतर्गत "स्वचालित रूप से सेटिंग्स का पता लगाने" को अक्षम करना: // सेटिंग्स> प्रॉक्सी सेटिंग्स बदलें> LAN सेटिंग्स> वेबड्राइवर क्रोम में मेरे लिए क्रोम में तेजी से निष्पादित करें।

+0

हाय। मैं नवीनतम संस्करण का उपयोग कर रहा हूं लेकिन "प्रॉक्सी सेटिंग्स बदलें" "नेटवर्क" के अंतर्गत स्थित है और यह ग्रे है। क्या आपके पास कोई अद्यतन यानी अपडेट है? धन्यवाद। – FortCpp

+1

क्या यह संभव है क्षमताओं या crome.switch पैरामीटर के माध्यम से इसे बदलना? मुझे _-- no-proxy-server_ जैसे कुछ मिला, लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है। – schnickers

6

मेरी प्रॉक्सी सेटिंग्स स्वचालित पहचान का उपयोग नहीं कर रही थी, लेकिन मुझे निम्नलिखित में बहुत मदद मिली। समय यह ड्राइवर शुरू करने के लिए ले लिया 43 सेकंड से 1 सेकंड तक नीचे चला गया

driver = new ChromeDriver(new ChromeOptions{Proxy = null}); 
+0

जोड़ना {प्रॉक्सी = शून्य} मदद करता है, मैं एक वीपीएन बीटीडब्ल्यू का उपयोग कर रहा हूँ .. – Dean

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