सेलेनियम एक व्यापक रूप से उपयोग किया जाने वाला ओपन-सोर्स टूल है जो डेवलपर्स और परीक्षकों को ब्राउज़र क्रियाओं को स्वचालित करने और वेब अनुप्रयोगों को मान्य करने में सक्षम बनाता है। कई प्रोग्रामिंग भाषाओं और ब्राउज़र प्लेटफार्मों के साथ इसकी अनुकूलता के साथ, यह कोई आश्चर्य की बात नहीं है कि सेलेनियम कई सॉफ्टवेयर परीक्षण टीमों के लिए पसंदीदा विकल्प है।
सेलेनियम आपको जावा, पायथन , सी #, रूबी और अन्य सहित विभिन्न प्रकार की प्रोग्रामिंग भाषाओं में स्वचालित परीक्षण स्क्रिप्ट लिखने की अनुमति देता है। यह क्रोम, फायरफॉक्स, सफारी और आईई जैसे कई ब्राउज़र प्लेटफॉर्म का समर्थन करता है।
सेलेनियम के साथ चुनौतियों में से एक परीक्षण मामलों को निष्पादित करने में लगने वाला समय है। इस हैंड्स-ऑन सेलेनियम ट्यूटोरियल में, हम सेलेनियम के साथ परीक्षण निष्पादन को गति देने में आपकी मदद करने के लिए मानक और उन्नत युक्तियों और तकनीकों को कवर करते हैं, जिसमें लॉन्चेबल के प्रिडिक्टिव टेस्ट चयन को कैसे लागू किया जाए। इसके लिए हम Python भाषा के साथ सेलेनियम का उपयोग करने पर ध्यान देंगे।
आरंभ करने के लिए, सुनिश्चित करें कि आपने अपने सिस्टम पर पायथन और सेलेनियम स्थापित किया है। आप सेलेनियम को निम्नलिखित बैश कमांड के साथ स्थापित कर सकते हैं: pip install selenium
अपने सेलेनियम परीक्षण मामले के निष्पादन की गति में सुधार करने के लिए, इन चार मानक सर्वोत्तम प्रथाओं का पालन करें, सभी का उद्देश्य आपके परीक्षण निष्पादन समय को महत्वपूर्ण रूप से कम करना और आपकी स्वचालित परीक्षण प्रक्रिया की दक्षता में वृद्धि करना है।
अपने परीक्षण मामलों का अनुकूलन करें
पहले महत्वपूर्ण कार्यक्षमता पर ध्यान केंद्रित करने के लिए परीक्षण मामलों को प्राथमिकता दें।
बड़े परीक्षण सूट को छोटे, अधिक प्रबंधनीय हिस्सों में विभाजित करें।
अनावश्यक और पुराने परीक्षणों को हटा दें।
कुशल कोड का प्रयोग करें
कोडिंग के सर्वोत्तम अभ्यासों का पालन करें, जैसे मॉड्यूलरीकरण, DRY (डोंट रिपीट योरसेल्फ) सिद्धांत, और उचित टिप्पणी।
कुशल एल्गोरिदम और डेटा संरचनाओं का उपयोग करके अपना कोड अनुकूलित करें।
दक्षता बनाए रखने के लिए नियमित रूप से अपने कोड की समीक्षा करें और उसे दोबारा सुधारें।
पृष्ठ लोड समय कम करें
भारी छवियों, वीडियो और अन्य मीडिया फ़ाइलों का उपयोग कम करें।
ऐसी सामग्री के लिए आलसी लोडिंग का उपयोग करें जो पृष्ठ पर तुरंत दिखाई नहीं दे रही है।
JavaScript और CSS फ़ाइलों को छोटा और कंप्रेस करके उनका अनुकूलन करें।
समानांतर परीक्षण लागू करें
समग्र परीक्षण समय को कम करने के लिए समवर्ती रूप से कई परीक्षण मामले चलाएँ।
एकाधिक मशीनों या ब्राउज़रों में परीक्षण वितरित करने के लिए सेलेनियम ग्रिड जैसे टूल का उपयोग करें।
जबकि ये चारों सर्वोत्तम अभ्यास आपके सेलेनियम परीक्षण को अधिक कुशल बनाते हैं, वे केवल उन्हें एक बिंदु तक अनुकूलित कर सकते हैं। कई टीमें तेजी से परीक्षण समय के लिए समानांतर परीक्षण पर भरोसा करती हैं, परीक्षण समवर्ती रूप से चलाती हैं। हालांकि एक सामान्य अभ्यास, यह परिमित है; आप अपने परीक्षणों को केवल अपनी मशीन उपलब्धता सीमा के समानांतर कर सकते हैं। डायनेमिक टेस्ट सबसेट के साथ संयुक्त होने पर समानांतर परीक्षण की शक्ति वास्तव में सामने आती है।
वेब अनुप्रयोगों के स्वचालित परीक्षण के लिए सेलेनियम का व्यापक रूप से उपयोग किया जाता है, लेकिन परीक्षकों को अक्सर धीमी परीक्षण निष्पादन गति का सामना करना पड़ता है। सेलेनियम परीक्षण निष्पादन में देरी कई कारणों से प्रभावित हो सकती है जिसमें एप्लिकेशन का आकार या जटिलता, नेटवर्क विलंबता और फूला हुआ परीक्षण सूट शामिल हैं।
इन चुनौतियों पर काबू पाने के लिए, आप सेलेनियम परीक्षण को गति देने के लिए उन्नत तकनीकों का उपयोग कर सकते हैं - जिसमें निम्न व्यावहारिक कोड उदाहरण शामिल हैं - ताकि आप उन्हें अपने स्वयं के सेलेनियम परीक्षण में लागू कर सकें।
हेडलेस ब्राउज़र का उपयोग करते समय, भौतिक ब्राउज़र विंडो खोलने की कोई आवश्यकता नहीं होती है, जिसका अर्थ है कि कम सिस्टम संसाधनों का उपयोग किया जाता है। यह परीक्षण के समय को गति दे सकता है और समग्र प्रणाली के प्रदर्शन में सुधार कर सकता है।
हेडलेस ब्राउजिंग पायथन उदाहरण:
from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument('--headless') driver = webdriver.Chrome(options=options)
हम जानते हैं कि ब्राउज़र कैशिंग वेबसाइट डेटा को ब्राउज़र की कैश मेमोरी में संग्रहीत करता है, जिससे बार-बार देखी जाने वाली वेबसाइटें तेज़ी से लोड हो जाती हैं। सेलेनियम परीक्षणों में ब्राउज़र कैशिंग को सक्षम करने से स्थैतिक सामग्री को लोड करने में लगने वाले समय को कम किया जा सकता है, परीक्षण को तेज़ और अधिक सटीक बनाया जा सकता है, जबकि परीक्षण की समग्र लागत को भी कम किया जा सकता है।
परीक्षण के दौरान स्थिर सामग्री लोड करने में लगने वाला समय बचाने के लिए ब्राउज़र कैशिंग सक्षम करें।
अपने ब्राउज़र विकल्पों में कैश सेटिंग कॉन्फ़िगर करें
ब्राउज़र कैश सेटिंग्स को कॉन्फ़िगर करें पायथन उदाहरण:
options = webdriver.ChromeOptions() options.add_argument('--disk-cache-dir=/path/to/cache')
पेज ऑब्जेक्ट मॉडल के साथ इन तकनीकों का उपयोग करके, सेलेनियम परीक्षण अधिक कुशल और बनाए रखने योग्य हो सकते हैं, जिसके परिणामस्वरूप तेजी से परीक्षण निष्पादन और परीक्षण के परिणामों में अधिक आत्मविश्वास होता है।
जब भी संभव हो अद्वितीय और स्थिर तत्व पहचानकर्ता (आईडी, नाम या सीएसएस वर्ग) का उपयोग करें।
आवश्यकता पड़ने पर XPath या CSS चयनकर्ताओं का उपयोग करें लेकिन अत्यधिक जटिल या लंबे भावों का उपयोग करने से बचें।
पुन: प्रयोज्य और मॉड्यूलर परीक्षण संरचना बनाने के लिए पेज ऑब्जेक्ट मॉडल (पीओएम) का उपयोग करें जो परीक्षण के तर्क और कोड को यूआई से अलग करता है।
नींद () बयानों का उपयोग करने से बचें क्योंकि वे परीक्षण चक्र में अनावश्यक विलंब जोड़ते हैं और अप्रत्याशित परिणाम पैदा कर सकते हैं।
यह सुनिश्चित करने के लिए नियमित रूप से तत्व लोकेटरों की समीक्षा और अद्यतन करें कि वे अभी भी सटीक और स्थिर हैं, खासकर यदि एप्लिकेशन का यूआई अक्सर बदलता रहता है।
पृष्ठ की HTML संरचना का निरीक्षण करने और लोकेटर के रूप में उपयोग किए जा सकने वाले अद्वितीय तत्व विशेषताओं की पहचान करने के लिए ब्राउज़र डेवलपर टूल का उपयोग करें।
गतिशील पृष्ठ प्रतीक्षा शुरू करने के लिए सेलेनियम में स्पष्ट प्रतीक्षा का उपयोग करें। स्पष्ट प्रतीक्षा के लिए परीक्षण के अगले चरण के साथ आगे बढ़ने से पहले एक विशिष्ट स्थिति को पूरा करने की आवश्यकता होती है, जिससे समय की समस्याओं से बचने और परीक्षण की विश्वसनीयता में सुधार करने में मदद मिलती है।
निश्चित नींद के समय का उपयोग करने के बजाय, विशिष्ट स्थिति पूरी होने तक परीक्षण निष्पादन को रोकने के लिए स्पष्ट प्रतीक्षा का उपयोग करें।
सेलेनियम में WebDriverWait और अपेक्षित स्थिति कक्षाओं का उपयोग करें।
डायनेमिक पेज प्रतीक्षा करता है पायथन उदाहरण:
from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC element = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, "example_id")) )
जबकि ये उन्नत परीक्षण अनुकूलन तकनीकें आपके सेलेनियम परीक्षण को अधिक कुशल बना सकती हैं, वे फूले हुए परीक्षण सूट को हल नहीं करते हैं। गुणवत्ता का त्याग किए बिना सेलेनियम परीक्षण चलाने के समय को वास्तव में तेज करने का एकमात्र समाधान पहले और अक्सर परीक्षण करना है।
सेलेनियम टेस्ट सूट कई प्रकार के सॉफ्टवेयर के लिए उत्पाद की गुणवत्ता सुनिश्चित करने का एक अनिवार्य हिस्सा है। हालांकि, कई टीमों को एक आम समस्या का सामना करना पड़ता है - लंबे समय तक चलने वाले परीक्षण जो मूल्यवान समय लेते हैं, जिसके परिणामस्वरूप परीक्षण की आवृत्ति कम हो जाती है और रिलीज में देरी होती है।
उनकी जटिलता और धीमे निष्पादन के कारण, सेलेनियम परीक्षण आमतौर पर सॉफ़्टवेयर वितरण जीवनचक्र में बाद में चलते हैं। इससे डेवलपर्स के लिए विलंबित फीडबैक होता है, जो घंटों से लेकर दिनों या हफ्तों तक हो सकता है। जब तक कोई परीक्षण विफल हो जाता है, तब तक डेवलपर्स परिवर्तनों के संदर्भ को भूल गए होंगे, जिससे समस्या को ठीक करने के लिए अतिरिक्त समय मिल जाएगा। इसके अलावा, ऐसे परीक्षण चलाने से टीम का परीक्षण बजट समाप्त हो सकता है।
लॉन्च करने योग्य गतिशील परीक्षण सबसेट को बुद्धिमानी से उत्पन्न करके सेलेनियम निष्पादन समय को कम करता है । तेजी से, समय पर प्रतिक्रिया के लिए प्रत्येक पुल अनुरोध पर चलने के लिए अपने सेलेनियम परीक्षणों का एक सबसेट चुनें।
लॉन्चेबल का टेस्ट इंटेलिजेंस प्लेटफॉर्म आने वाले बदलावों के आधार पर यह अनुमान लगाने के लिए मशीन लर्निंग मॉडल का उपयोग करता है कि आपके टेस्ट सूट में कौन से परीक्षण विफल होने की संभावना है। यह व्यावहारिक जोखिम-आधारित दृष्टिकोण परीक्षण के समय को कम करता है और इस प्रकार डिलीवरी की गति और गुणवत्ता को बनाए रखते हुए खर्च करता है।
टीमें परीक्षण को प्राथमिकता दे सकती हैं, सुनिश्चित करें कि सबसे महत्वपूर्ण परीक्षण अधिक बार चलाए जाएं, उत्पाद की गुणवत्ता में सुधार हो और जोखिम कम हो।
लॉन्च करने योग्य का मुख्य एकीकरण बिंदु आपकी टीम के बिल्ड टूल या टेस्ट रनर के साथ है, बजाय टेस्ट फ्रेमवर्क के। इसलिए, यदि आप सेलेनियम ढांचे का उपयोग कर रहे हैं, तो यह निर्धारित करना महत्वपूर्ण है कि आप अपने परीक्षण शुरू करने के लिए किस उपकरण का उपयोग करते हैं, जिसमें निम्न शामिल हैं:
लॉन्चेबल के प्रेडिक्टिव टेस्ट चयन का लाभ उठाने के लिए आपको सेलेनियम के साथ कुछ भी अतिरिक्त करने की आवश्यकता नहीं है। आपको केवल अपने टेस्ट रनर के लिए लॉन्च करने योग्य सेटअप करना है - किसी टेस्ट बदलाव की आवश्यकता नहीं है।
लॉन्च करने योग्य सेटअप सरल है:
लॉन्च करने योग्य खाते के लिए https://app.launchableinc.com/signup पर साइन अप करें।
अपना उपयोगकर्ता खाता बनाने और अपना ईमेल पता सत्यापित करने के बाद (यदि आवश्यक हो), आपको अपनी कंपनी के लिए एक संगठन और अपने परीक्षण सूट के लिए एक कार्यक्षेत्र बनाने के लिए कहा जाएगा।
फिर लॉन्च करने योग्य को अपना टेस्ट डेटा भेजना शुरू करें।
लॉन्च करने योग्य के साथ गुणवत्ता का त्याग किए बिना, शुरुआती प्रतिक्रिया और तेज़ रिलीज़ के लाभों का आनंद लें। लॉन्च करने योग्य अंतरिक्ष यात्री से आज ही जुड़ें!
सेलेनियम एक शक्तिशाली उपकरण है, लेकिन आपके सेलेनियम परीक्षण अक्सर उनकी लंबाई और जटिलता के कारण आपके परीक्षण पाइपलाइन में बाद में धकेल दिए जाते हैं। साझा ट्यूटोरियल्स के साथ अपने सेलेनियम परीक्षणों को अनुकूलित करना और अपने परीक्षण चक्रों में पहले सही सेलेनियम परीक्षणों को चलाने से आपके परीक्षण के समय में तेजी आएगी। लॉन्च करने योग्य आपके सेलेनियम परीक्षणों के साथ मूल रूप से एकीकृत होता है, इससे कोई फर्क नहीं पड़ता कि आप किस ऑर्केस्ट्रेटर का उपयोग कर रहे हैं, इसलिए आप अपने परीक्षण वर्कफ़्लो को अनुकूलित करते हुए, सबसे महत्वपूर्ण और प्रासंगिक परीक्षणों का चयन करना शुरू कर सकते हैं, और जितनी जल्दी हो सके त्वरित प्रतिक्रिया प्राप्त कर सकते हैं।
यह लेख मूल रूप से Launchableinc.com पर प्रकाशित हुआ था