2011-09-27 13 views
8

पृष्ठभूमि:रनिंग समानांतर सेलेनियम परीक्षण

मैं Capybara एकीकरण मेरी रेल के खिलाफ 3 आवेदन चल रहा है परीक्षण का एक सेट है। परीक्षण सूट के अन्य हिस्सों के लिए मैं रुपयेपीई का उपयोग कर रहा हूं।

मेरे मैक ओएसएक्स देव मशीन पर एक सेलेनियम 2.6.0 स्टैंडअलोन सर्वर हब है।

java -jar selenium-server-standalone-2.6.0.jar -role hub 

मैं कई आभासी मशीनों प्रत्येक एक सेलेनियम नोड के साथ हब को झुका चल रहा हूँ:

java -jar selenium-server-standalone-2.6.0.jar -role webdriver -hub http://0.0.1.12:4444/grid/register port 5555 -browser browserName="internet explorer",version=8,platform=WINDOWS 

यह ठीक काम करता है, इस स्क्रीनशॉट में कंसोल से पता चलता है कि मैं एक IE7 और एक IE8 है ब्राउज़र हब से जुड़ा:

The hub console showing connected nodes

मैं सेलेनियम हब के खिलाफ चलाने के लिए सेटअप capybara है (कि प्रतिनिधियों नोड्स परीक्षण)।

Capybara.app_host = "myapp.dev" 
Capybara.default_driver = :selenium 
Capybara.register_driver :selenium do |app| 
    Capybara::Selenium::Driver.new(app, 
    :browser => :remote, 
    :url => "http://localhost:4444/wd/hub", 
    :desired_capabilities => :internet_explorer) 
end 

यह काम करता है, हालांकि यह केवल एक इंटरनेट_explorer नोड पर परीक्षण चलाएगा। ऐसा लगता है कि "पहली पंक्ति में" है; अगर मैं इसे बंद कर देता हूं, तो परीक्षण दूसरे नोड पर सफलतापूर्वक चल जाएगा।

मैं parallel_tests प्रोजेक्ट को आजमा रहा हूं, जैसा कि सुझाव के अनुसार कैपिबरा को कॉन्फ़िगर कर रहा है, लेकिन यह अभी भी एक एकीकरण परीक्षण लॉन्च करेगा।

मैं एक साथ सभी Internet_explorer नोड्स पर अपना एकीकरण कैसे चला सकता हूं?

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

+0

डैनियल, मुझे आपके जैसा ही समस्या है, क्या आप समाधान ढूंढने में सक्षम थे? – Farooq

+0

मुझे पता चला कि यदि आपके पास 1 हब और 3 नोड्स चल रहे हैं और आप एक ही समय में 3 अलग-अलग टैब में 3 परीक्षण चलाते हैं तो परीक्षण सभी नोड्स में चलेंगे। प्रत्येक नोड के लिए 1 परीक्षण। असल में परीक्षण अगले खाली नोड को लाइन में उठाता है और वहां चलाता है। – Farooq

उत्तर

1

आईई वेबड्राइव के लिए आप एक भौतिक नोड पर अधिकतम 1 परीक्षण चला सकते हैं! यदि आप आईई वेबड्राइवर के साथ समांतरता प्राप्त करना चाहते हैं तो आप हब में अधिक भौतिक नोड जोड़ने/पंजीकृत करके कोशिश कर सकते हैं।

हब कंसोल के ऊपर स्क्रीन शॉट के संबंध में, यह आपको केवल एक आईई आइकन भी दिखाता है। संदेश गलत है कि "5 तक का समर्थन करता है ...." लेकिन आप इसके नीचे प्रदर्शित संबंधित ब्राउज़र के लिए आइकन की संख्या पर विचार कर सकते हैं।

2

यहां आपको विभिन्न ब्राउज़र के लिए एक ही परीक्षण को आग लगाना है, इसलिए परीक्षण की दो प्रक्रिया शुरू करने का प्रयास कर सकते हैं यानी दो बार एक ही आदेश चलाएं।

जैसा कि आपने नोड्स शुरू कर दिए हैं, ग्रिड विभिन्न नोड्स पर निष्पादन को संभालेगा।

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

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