2011-02-04 16 views
8

मुझे यह मानना ​​है कि मैं सेलेनियम के साथ रिकॉर्ड-एंड-प्ले सुविधा के साथ-साथ आईडीई से दर्ज किए गए कार्यों के लिए टेस्टकेस पीढ़ी की कार्यक्षमता के लिए प्यार में पड़ गया हूं। लेकिन आकस्मिक विवरण (उदाहरण के लिए, डीओएम, xpath..etc के साथ घटनाओं का पता लगाने) के कारण कार्यान्वयन चरण में आगे बढ़ने में मुझे अभी भी झिझक रहा है, जो रिकॉर्डिंग के दौरान टेस्टकेस में बनाए गए हैं, जो टेस्टकेस विफलता कभी भी प्रवण हो सकती है आरसी में आयात होने के बाद एक एचटीएमएल परिवर्तन होता है। मैं पूरी तरह से समझता हूं कि यह प्रतिगमन परीक्षण के हिस्से के रूप में समय-समय पर अपेक्षित परिणामों को समायोजित करने के लिए परीक्षकों की नौकरियों का एक हिस्सा है, लेकिन मैं यह भी नहीं चाहता कि इस पर खर्च किए गए समय मैन्युअल परीक्षण करने के समय से बड़ा हो ।रोबोट ढांचे के साथ सीधे सेलेनियम आरसी या सेलेनियम का उपयोग करें

जहां तक ​​मुझे पता है रोबोट ढांचे के साथ सेलेनियम में टेस्टकेस के कीवर्ड रूप हैं। मेरा अनुमान है कि यह हमें आकस्मिक विवरण को विभिन्न खोजशब्दों में निकालने की अनुमति देता है, जो टेस्टकेस को समायोजित कर सकता है और अधिक रखरखाव कर सकता है। (अगर मैं गलत हूं तो कृपया मुझे सही करें)

इस बात की सराहना की जाएगी कि एक प्रभावी यूआई स्वचालन वातावरण कैसे स्थापित किया जाना चाहिए। क्या मुझे रोबोट ढांचे के साथ सेलेनियम आरसी या सेलेनियम का उपयोग करना चाहिए? और क्यों?

धन्यवाद अग्रिम में

+0

या, कोई भी कभी सिकुली का उपयोग करता है? सेलेनियम विचार की तुलना में यह कैसा है? टेस्टकेस आसानी से धावकों का परीक्षण करने के लिए एकीकृत किया जा सकता है? – Daniel

उत्तर

9

आप बिल्कुल सही हैं कि उत्पादित स्क्रिप्ट में आकस्मिक और अक्सर बदलते विवरण रिकॉर्ड-और-प्लेबैक स्वचालन की सबसे बड़ी समस्या है। रिकॉर्डिंग के बाद आप स्पष्ट रूप से स्क्रिप्ट से विवरण निकाल सकते हैं, लेकिन मेरी राय में पुन: प्रयोज्य पुस्तकालयों और कोड स्क्रिप्ट को शुरुआत से मैन्युअल रूप से बनाना बेहतर है।

"वास्तविक" प्रोग्रामिंग भाषाओं का उपयोग करके कोडिंग स्क्रिप्ट के लिए एक अच्छा विकल्प कुछ उच्च स्तरीय स्वचालन ढांचे का उपयोग कर रहा है जैसे कि Robot Framework जिसका आपने उल्लेख किया था। जैसा कि आपने अनुमान लगाया था, रोबोट के पुन: प्रयोज्य कीवर्ड और चर भी परीक्षणों से बहुत आसान विवरण निकालने में मदद करते हैं। SeleniumLibrary's demo में परीक्षण के मामले इस बहुत अच्छी तरह से चित्रित करते हैं और डेमो यह भी दिखाता है कि रोबोट के माध्यम से सेलेनियम का उपयोग कैसे करें।

आपने Sikuli के बारे में भी पूछा। मैंने इसे कभी भी इस्तेमाल नहीं किया है लेकिन यह निश्चित रूप से दिलचस्प लग रहा है। आपको this great how-to पर रुचि हो सकती है जो बताती है कि रोबोट फ्रेमवर्क के माध्यम से इसका उपयोग कैसे करें।

+0

तो, आप कहते हैं कि रोबोट फ्रेमवर्क में परीक्षण लिखना बेहतर है? मुझे रोबोट में परीक्षण लिखने का अनुभव है (और मुझे यह पसंद है), लेकिन मैंने सेलेनियम आईडीई की कोशिश नहीं की है। यह उपयोग करने में आसान या तेज़ लगता है .. – Qwerty

+1

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

2

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

तो, कुछ आईडी के साथ उन तत्वों की आवश्यकता के अनुसार डीओएम में मौजूद हैं, अगर हम पृष्ठ से तत्वों को हटा देते हैं तो हम निश्चित रूप से हमारे परीक्षण तोड़ देंगे; हालांकि, हमने पाया कि यह व्यवहार बहुत उपयोगी है क्योंकि यह कार्यान्वयन के साथ किए गए परीक्षणों को अनुबंधित करता है और यह एक अच्छी बात है कि जैसे ही किसी ने कार्यान्वयन तोड़ दिया, हम गायब तत्वों को पाते हैं।

इसके अलावा, यूआई स्वचालन त्वचा को गहरा रखने के लिए यह अच्छा अभ्यास है: केवल सेलेनियम के साथ पृष्ठ पर मौजूद है और अंतर्निहित कार्यों को सीधे कॉल करके व्यवसाय-तर्क का परीक्षण करें।

+0

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

+2

हां, हम आईडी के प्रति डोम-एलिमेंट का उपयोग करते हैं। लेकिन इन्हें स्वतः उत्पन्न किया जा सकता है और डेवलपर्स और परीक्षक दोनों आसानी से उन्हें ढूंढ सकते हैं क्योंकि उन्हें कच्चे एचटीएमएल में चिपकाया जाता है (कोई संकेत नहीं, और यह केवल हमारे परीक्षण के लिए बाहरी खपत के लिए नहीं है)। एक बार परीक्षक के पास एक आईडी है, उसे अब डोम-पेड़ पर नेविगेट करने की आवश्यकता नहीं है, लेकिन केवल चयन-दर-आईडी चुन सकते हैं और टेबल-फॉर्म में एक टेस्ट-केस लिख सकते हैं जैसे 123 | include | asdf |, और यदि टेस्ट-टेबल में से कोई एक एक त्रुटि को नोटिस करता है, testuite उन डेवलपर्स को तत्व आईडी दे सकता है जो तुरंत टूटने वाले सटीक स्थान को जानते हैं। –

+0

यह लंबे समय से है क्योंकि मैंने इस पृष्ठ को वापस मारा है। एक बग बनाने के बजाय और डेवलपर्स को सही जगह पर आईडी इंजेक्ट करने की उम्मीद है, खुद को एक परीक्षक के रूप में स्वयं करें। मैं इसे स्वयं करता हूं और खुद का न्याय करता हूं अगर मैं उत्पादन कोड को स्पर्श करके देख सकता हूं कि मेरा एकीकरण परीक्षण बदले गए कोड को कवर करता है या नहीं। डेवलपर का अपना समय कब्जा कर लिया है। यह अनुमान लगाया जाएगा कि काम तेजी से और अधिक सुखद काम env होगा। – Daniel

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