2014-11-26 4 views
10

मैं 'क्लाइंट-सर्वर' सेटअप सेटअप में PHP बाइंडिंग के साथ सेलेनियम को सेटअप करने के तरीके के बारे में विशिष्ट जानकारी खोजने का प्रयास कर रहा हूं। मुझे यह भी यकीन नहीं है कि मैं जो चाहता हूं वह संभव है, लेकिन मैं जो हासिल करने की कोशिश कर रहा हूं उसके उद्देश्य का वर्णन करने के लिए मैं अपना सर्वश्रेष्ठ प्रयास करने की कोशिश करूंगा।PHP बाइंडिंग के साथ सेलेनियम (वेबड्राइवर और सर्वर) को कैसे सेट करें

मैं एक वेब विकास परियोजना पर क्यूए करता हूं, जहां हम वितरित टीम के सदस्यों के साथ काम कर रहे हैं। हमें स्वचालित फ्रंट एंड परीक्षण की आवश्यकता है, और निर्णय लिया है कि (कई कारकों के कारण) सेलेनियम नौकरी के लिए सर्वश्रेष्ठ उम्मीदवार बनाता है। हमारी टीम PHP में विशिष्ट है, इसलिए PHP बाइंडिंग के साथ सेलेनियम का उपयोग करना समझ में आता है।

मेरे सबसे बड़ी चुनौती है:

1) कैसे मैं उन पीएचपी बाइंडिंग स्थापित करूं?

2) मैं PHP में सेलेनियम स्क्रिप्ट कैसे बना और निष्पादित करूं? यह स्पष्ट प्रतीत हो सकता है, लेकिन मुझे यह जानने की ज़रूरत है कि मुझे PHP में किसी प्रकार का 'प्रोजेक्ट' बनाना है, या इसके लिए अलग-अलग चरणों की आवश्यकता है या नहीं। जब यह डिफ़ॉल्ट जावा बाइंडिंग से संबंधित होता है, तो मैन्युअल बहुत स्पष्ट और विस्तृत होते हैं, लेकिन PHP बाइंडिंग पर निराशाजनक रूप से कमी होती है।

3) मैं कैसे यह सब करते हैं, एक ग्राहक से एक परीक्षण आह्वान करने के लिए इच्छुक है, लेकिन हो रही है यह एक 'सर्वर/VM' द्वारा निष्पादित करते हुए? (ध्यान रखें कि यदि संभावना थी, तो मैं सर्वर पर परीक्षण भी कर सकता हूं, जो क्लाइंट के डेस्कटॉप पर परीक्षण गतिविधियों को निष्पादित/निष्पादित कर सकता है।)

4) मैं कैसे सेटअप करूं एक सर्वर जो PHP बाइंडिंग के साथ सेलेनियम सर्वर चलाने के लिए सभी आवश्यकताओं को पूरा करता है?

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

तकनीकी तौर पर इसे जहां क्यूए उत्पाद में एक मुद्दा पाता परिदृश्य का समर्थन करना चाहिए, और सिर्फ यह पुन: पेश करने के लिए आवश्यक स्क्रिप्ट निर्दिष्ट करने के लिए सक्षम होना चाहिए। डेवलपर जिनके पास इस मुद्दे को ठीक करने का कार्य है, उन्हें केवल अपनी त्रुटि पर पुन: उत्पन्न करने के लिए अपनी मशीन पर स्क्रिप्ट चलाने की आवश्यकता है।

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

मैं सभी विस्तृत प्रलेखन के लिए इंटरनेट पर तलाश रहे हैं, लेकिन सिर्फ के बारे में कोई दस्तावेज में कई मान्यताओं पहले से ही कॉन्फ़िगर और की स्थापना के वातावरण के बारे में बना रहे हैं। मुझे वास्तव में चीजों को सेट करने के तरीके के बारे में एक कदम से कदम की आवश्यकता है।

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

मैं पहले से ही सेलेनियम सर्वर एक वी एम में एक सेवा के रूप में चल रहे है, मैं सिर्फ मैं इसे सेट अप करने की जरूरत है, यह कैसे कॉन्फ़िगर करने के लिए पता करने के लिए मैं और क्या जरूरत की जरूरत है, और। चीजों को संवाद कैसे करें, आदि

किसी भी मदद/विचारों की अत्यधिक सराहना की जाएगी।

+0

क्या आपने फेसबुक से php-webdriver की कोशिश की है? https://github.com/facebook/php-webdriver मेरे लिए अच्छी तरह से काम करता है। – ymas

+0

मैंने उस पर एक नज़र डाली, लेकिन चूंकि यह पूर्ण निर्देश नहीं देता है, इसलिए यह वास्तव में मुझे स्पष्ट नहीं है कि इसका उपयोग कैसे किया जाए। मुझे लगता है कि यह मेरी मुख्य समस्या है। मैं स्वयं एक PHP डेवलपर नहीं हूं, इसलिए मुझे वास्तव में रूकी निर्देशों की आवश्यकता है। चूंकि आप इसका उपयोग कर रहे हैं, क्या आप मुझे वास्तव में एक त्वरित अवलोकन दे सकते हैं कि आपने इसे कैसे इंस्टॉल किया? –

+0

आप संगीतकार (https://getcomposer.org/) के माध्यम से फेसबुक के php-webdriver पैकेज को इंस्टॉल कर सकते हैं। सेलेनियम वेब ड्राइवर की मेरी प्रति मेरी स्थानीय मशीन पर चलती है - हालांकि, यह दूरस्थ रूप से इसे चलाने के लिए एक बड़ी छलांग नहीं है (मैं इसके लिए सॉस लैब्स (https://saucelabs.com/) का उपयोग करता था)। – ymas

उत्तर

0

स्थानीय स्तर पर इस चलाने के लिए, यहां दिए गए निर्देशों का पालन करें:

https://github.com/facebook/php-webdriver#getting-started

यहां नमूने पीएचपी webdriver स्क्रिप्ट है कि आप उपयोग कर सकते हैं। यह फ़ायरफ़ॉक्स खुल जाएगा, गूगल के पृष्ठ पर ले और खोज प्रश्न दर्ज:

// you'll need to modify this path so it points to the composer autoloader 
    require_once __DIR__ . '/vendor/autoload.php'; 

    /** 
    * since I'm running the selenium jar locally, this is all I need. 
    * I just run it in the background and my php scripts connect to it and 
    * the tests 
    */ 
    $host = 'http://localhost:4444/wd/hub'; 

    $driver = RemoteWebDriver::create($host, DesiredCapabilities::firefox()); 

    $driver->get('http://google.com'); 
    $element = $driver->findElement(WebDriverBy::name('q')); 
    $element->sendKeys('Cheese'); 
    $element->submit(); 

इस विस्तार की तरह आप के लिए देख रहे हैं?

+0

हाय ymas, मुझे इसे देखने के लिए एक पल चाहिए, लेकिन यह कुछ सामान दिखाता है जो मैं ढूंढ रहा था। हालांकि मैं निश्चित रूप से इस पर वापस आऊंगा। –

+0

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

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