Hey Welcome to BTER Rajasthan Polytechnic.
1. Join Groups for PDF's & Regular Updates
Join the community of Civil Engineering students at BTER Polytechnic and stay updated:
- Telegram Channel: Join Telegram Channel 📱
- WhatsApp Group: Join WhatsApp Group 💬
- YouTube Channel: Visit YouTube Channel 🎥
2. Help & Donations 💖
If you find our resources helpful and wish to support our initiative, your donation will help us continue improving and providing valuable study material.
- UPI ID: garimakanwarchauhan@oksbi
- QR Code:
💰 Your support matters! Every contribution helps us reach more students and provide better resources! 🙏
3. Notes Website
- Official Notes Website: Visit Notes Website 📝
This website provides all study materials, notes, and important updates for Civil Engineering students.
4. Important Links
Explore the following links for additional resources and exam preparation:
- Syllabus: Download Syllabus 📚
- Previous Year Papers: View Previous Year Papers 🗂️
- Study Materials: Download Study Materials 📑
UNIT 4: टेस्ट ऑटोमेशन
टेस्ट ऑटोमेशन से तात्पर्य है विशेष उपकरणों और स्क्रिप्ट्स का उपयोग करके सॉफ़्टवेयर पर परीक्षण करना, बिना मैन्युअल हस्तक्षेप के। इस यूनिट में हम यह जानेंगे कि टेस्ट ऑटोमेशन क्यों आवश्यक है, कब इसे न किया जाए, कैसे सरल ऑटोमेटेड टेस्ट केस लिखे जाते हैं, और Selenium जैसे ऑटोमेटेड टेस्टिंग फ्रेमवर्क को कैसे सीखा और अभ्यास किया जाता है।
4.1 ऑटोमेशन क्यों?
टेस्ट ऑटोमेशन आधुनिक सॉफ़्टवेयर विकास में महत्वपूर्ण है, और इसके निम्नलिखित कारण हैं:
-
गति और दक्षता: ऑटोमेटेड टेस्ट मैन्युअल टेस्ट की तुलना में कहीं अधिक तेजी से चलते हैं। एक बार टेस्ट स्क्रिप्ट लिखी जाती है, तो इसे बार-बार बिना किसी मानव हस्तक्षेप के चलाया जा सकता है।
- उदाहरण: 100 टेस्ट केस मैन्युअली चलाने में कई घंटे लग सकते हैं, लेकिन एक ऑटोमेटेड स्क्रिप्ट इसे कुछ मिनटों में पूरा कर सकती है।
-
पुन: उपयोगिता: ऑटोमेटेड टेस्ट स्क्रिप्ट को विभिन्न सॉफ़्टवेयर संस्करणों में पुनः उपयोग किया जा सकता है, जिससे समय की बचत होती है।
- उदाहरण: एक लॉगिन टेस्ट स्क्रिप्ट कई रिलीज़ या कोड परिवर्तन के बाद भी पुनः उपयोग की जा सकती है, जिससे परीक्षण में निरंतरता बनी रहती है।
-
संगति: ऑटोमेशन मैन्युअल परीक्षण के दौरान होने वाली मानव त्रुटियों को समाप्त कर देता है। वही कदम हर बार उसी तरीके से चलाए जाते हैं।
- उदाहरण: एक परीक्षक मैन्युअल परीक्षण करते समय किसी कदम को छोड़ सकता है, लेकिन ऑटोमेटेड टेस्ट हमेशा पूर्व निर्धारित क्रम का पालन करता है।
-
रिग्रेशन परीक्षण: ऑटोमेटेड टेस्ट रिग्रेशन परीक्षण (ऐसा परीक्षण जिसमें यह सुनिश्चित किया जाता है कि नया कोड पुराने कार्यों को प्रभावित नहीं करता) में बहुत प्रभावी होते हैं। एक बार स्क्रिप्ट तैयार हो जाने के बाद, इसे बार-बार चलाया जा सकता है जब भी कोडबेस में बदलाव होता है।
- उदाहरण: एक पेमेंट गेटवे अपडेट करने के बाद, ऑटोमेटेड टेस्ट जल्दी से यह सुनिश्चित कर सकते हैं कि लॉगिन, उत्पाद जोड़ने जैसी मौजूदा विशेषताएँ ठीक से काम कर रही हैं।
-
लंबे समय में लागत-कुशल: हालांकि ऑटोमेशन की शुरुआत में लागत अधिक हो सकती है, लेकिन समय के साथ यह परीक्षण की लागत को कम करता है क्योंकि टेस्ट को बार-बार चलाया जा सकता है बिना किसी मैन्युअल प्रयास के।
- उदाहरण: किसी एप्लिकेशन में बार-बार अपडेट होने पर, मैन्युअल परीक्षण के लिए हर रिलीज़ में लागत बढ़ सकती है, जबकि ऑटोमेशन इससे कम समय और लागत में काम कर सकता है।
4.2 कब ऑटोमेशन न करें?
हालाँकि ऑटोमेशन के कई लाभ हैं, कुछ परिस्थितियाँ हैं जहाँ यह आदर्श विकल्प नहीं हो सकता:
-
कम समय वाले प्रोजेक्ट्स: अगर प्रोजेक्ट छोटा है या सीमित समय के लिए है, तो टेस्ट ऑटोमेशन में समय निवेश करना उपयुक्त नहीं हो सकता।
- उदाहरण: एक छोटा प्रोटोटाइप एप्लिकेशन जो कुछ महीनों के भीतर बंद हो जाएगा, शायद ऑटोमेशन की आवश्यकता नहीं है।
-
अस्थिर या बार-बार बदलने वाला कोड: यदि एप्लिकेशन अभी विकास के प्रारंभिक चरण में है या फीचर्स तेजी से बदल रहे हैं, तो ऑटोमेशन लिखना समय लेने वाला और कम प्रभावी हो सकता है।
- उदाहरण: यदि UI लगातार डिजाइन किया जा रहा है, तो शायद ऑटोमेटेड टेस्ट लिखने का यह सही समय नहीं है क्योंकि बार-बार स्क्रिप्ट को अपडेट करना होगा।
-
कम जोखिम वाले या साधारण कार्य: यदि परीक्षण करने वाला कार्य बहुत सरल है और बग्स आने की संभावना कम है, तो इसे मैन्युअल रूप से करना अधिक प्रभावी हो सकता है।
- उदाहरण: साधारण टेक्स्ट इनपुट या गणना परीक्षण जैसे कार्य मैन्युअल परीक्षण द्वारा किए जा सकते हैं क्योंकि ऑटोमेशन का प्रयास इसके मुकाबले अधिक होगा।
-
एक बार परीक्षण: कुछ परीक्षण केवल एक बार की आवश्यकता होती है और उन्हें बार-बार चलाने की आवश्यकता नहीं होती है। ऐसे परीक्षणों को मैन्युअल रूप से किया जा सकता है।
- उदाहरण: इंस्टॉलेशन या सेटअप प्रक्रिया जैसे एक बार के परीक्षण शायद ऑटोमेशन की आवश्यकता नहीं रखते।
-
बहुत जटिल यूजर इंटरफेस: यदि एप्लिकेशन का UI जटिल है और उसमें बार-बार लेआउट परिवर्तन होते हैं, तो ऑटोमेटेड UI टेस्ट करना चुनौतीपूर्ण और त्रुटियों से भरा हो सकता है।
- उदाहरण: एक वेब एप्लिकेशन जिसमें एनिमेशन और डाइनामिक कंटेंट हो, उसका परीक्षण मैन्युअल रूप से अधिक सटीक हो सकता है।
4.3 सरल ऑटोमेटेड टेस्ट केस लिखना
जब आप टेस्ट को ऑटोमेट करते हैं, तो एक संरचित दृष्टिकोण अपनाना होता है। नीचे दिए गए चरणों में सरल ऑटोमेटेड टेस्ट केस लिखने के कदम बताए गए हैं:
ऑटोमेटेड टेस्ट केस लिखने के कदम:
-
परीक्षण वातावरण सेट करें: सुनिश्चित करें कि सभी आवश्यक सॉफ़्टवेयर और उपकरण (जैसे Selenium, परीक्षण पुस्तकालय) इंस्टॉल और कॉन्फ़िगर किए गए हैं।
- उदाहरण: Selenium WebDriver और एक ब्राउज़र ड्राइवर (जैसे ChromeDriver, FirefoxDriver) इंस्टॉल करें।
-
परीक्षण केस की पहचान करें: सबसे पहले, उस परीक्षण केस को चुनें जिसे आप ऑटोमेट करना चाहते हैं। उदाहरण के लिए, लॉगिन पृष्ठ पर वैध क्रेडेंशियल्स के साथ लॉगिन का परीक्षण करना।
- उदाहरण: परीक्षण केस: "सुनिश्चित करें कि उपयोगकर्ता वैध क्रेडेंशियल्स के साथ लॉगिन कर सकता है।"
-
परीक्षण स्क्रिप्ट लिखें: Selenium जैसे परीक्षण फ्रेमवर्क का उपयोग करके टेस्ट केस को ऑटोमेट करने के लिए स्क्रिप्ट लिखें।
- उदाहरण: एक साधारण Selenium परीक्षण स्क्रिप्ट Java में लॉगिन परीक्षण को ऑटोमेट करने के लिए इस प्रकार हो सकती है:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.By; public class LoginTest { public static void main(String[] args) { // ChromeDriver का पथ सेट करें System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); // Chrome ब्राउज़र को प्रारंभ करें WebDriver driver = new ChromeDriver(); // एप्लिकेशन के लॉगिन पृष्ठ पर जाएं driver.get("https://www.example.com/login"); // यूज़रनेम फील्ड को ढूंढें और वैध यूज़रनेम डालें driver.findElement(By.id("username")).sendKeys("validUser"); // पासवर्ड फील्ड को ढूंढें और वैध पासवर्ड डालें driver.findElement(By.id("password")).sendKeys("validPassword"); // लॉगिन बटन को ढूंढें और क्लिक करें driver.findElement(By.id("loginButton")).click(); // यह सुनिश्चित करें कि लॉगिन सफल है (जैसे URL जांचें) if(driver.getCurrentUrl().equals("https://www.example.com/dashboard")) { System.out.println("लॉगिन परीक्षण पास"); } else { System.out.println("लॉगिन परीक्षण फेल"); } // ब्राउज़र को बंद करें driver.quit(); } }
- उदाहरण: एक साधारण Selenium परीक्षण स्क्रिप्ट Java में लॉगिन परीक्षण को ऑटोमेट करने के लिए इस प्रकार हो सकती है:
-
परीक्षण चलाएं: परीक्षण स्क्रिप्ट को चलाकर यह सुनिश्चित करें कि स्क्रिप्ट द्वारा की जाने वाली क्रियाएँ अपेक्षित परिणामों से मेल खाती हैं।
-
परिणाम की पुष्टि करें: परीक्षण के निष्पादन के बाद यह सत्यापित करें कि परीक्षण पास हुआ या नहीं।
-
देखभाल और अपडेट: सुनिश्चित करें कि जैसे-जैसे एप्लिकेशन में बदलाव होते हैं, ऑटोमेटेड टेस्ट स्क्रिप्ट को बनाए रखा और अपडेट किया जाता है (जैसे नई फ़ील्ड्स, बदला हुआ UI आदि)।
4.4 Selenium जैसे टेस्ट ऑटोमेशन फ्रेमवर्क को सीखना और अभ्यास करना
Selenium एक लोकप्रिय फ्रेमवर्क है जो वेब एप्लिकेशन परीक्षण के लिए उपयोग किया जाता है। यह विभिन्न प्रोग्रामिंग भाषाओं (Java, Python, C# आदि) और ब्राउज़रों का समर्थन करता है और यह क्रॉस-ब्राउज़र परीक्षण के लिए आदर्श है।
Selenium क्या है?
Selenium एक टूल्स का समूह है जिसका उपयोग वेब ब्राउज़र्स को स्वचालित करने के लिए किया जाता है। यह विभिन्न ब्राउज़रों और प्लेटफार्मों का समर्थन करता है और बहुत ही लचीला है।
- Selenium के घटक:
- Selenium WebDriver: यह वेब एप्लिकेशनों को स्वचालित करने के लिए एक टूल है। यह सीधे ब्राउज़र से संवाद करता है और क्रियाएँ जैसे कि बटन क्लिक करना, टेक्स्ट एंटर करना आदि करता है।
- Selenium Grid: यह विभिन्न मशीनों और ब्राउज़रों पर परीक्षण चलाने के लिए उपयोग किया जाता है, जिससे परीक्षण की गति बढ़ती है।
- Selenium IDE: यह एक ब्राउज़र एक्सटेंशन है, जो टेस्ट रिकॉर्डिंग और प्लेबैक की सुविधा प्रदान करता है। यह शुरुआती लोगों के लिए अच्छा है, लेकिन WebDriver से कम लचीला होता है।
Selenium से शुरुआत करना:
-
Selenium इंस्टॉल करें:
- सबसे पहले आपको उस ब्राउज़र के लिए Selenium WebDriver डाउनलोड और इंस्टॉल करना होगा, जिसे आप ऑटोमेट करना चाहते हैं (जैसे ChromeDriver, GeckoDriver (Firefox के लिए) आदि)।
- अगर आप Java का उपयोग कर रहे हैं तो आपको Selenium WebDriver की डिपेंडेंसी को Maven के साथ जोड़ना होगा या JAR फाइल्स डाउनलोड करनी होंगी।
-
एक साधारण स्क्रिप्ट बनाएं:
- WebDriver और ब्राउज़र को सेट करने के बाद, आप ऑटोमेशन स्क्रिप्ट बनाना शुरू कर सकते हैं। जैसा कि ऊपर Java और Python में उदाहरण दिए गए थे, आप Selenium का उपयोग करके एक परीक्षण केस को ऑटोमेट कर सकते हैं।
-
श्रेष्ठ अभ्यास (Best Practices):
- टेस्ट स्क्रिप्ट्स को मॉड्यूलर बनाएं: अपने परीक्षण केसों को पुन: उपयोग करने योग्य बनाने के लिए कार्यों या कक्षाओं का उपयोग करें।
- लोकेटर का सही उपयोग करें: तत्वों को खोजने के लिए अद्वितीय लोकेटर (जैसे
id
,name
,xpath
) का उपयोग करें, ताकि तत्व सही तरीके से पहचाने जा सकें। - सिंकनाइजेशन: यह सुनिश्चित करने के लिए कि स्क्रिप्ट को किसी भी तत्व के लोड होने का इंतजार करने की आवश्यकता न हो, Selenium में
WebDriverWait
का उपयोग करें। - एश्योरेंस (Assertions): परीक्षण परिणामों को सत्यापित करने के लिए एश्योरेंस का उपयोग करें।
-
उन्नत विशेषताएँ (Advanced Features):
- डेटा-ड्रिवन परीक्षण (Data-Driven Testing): आप परीक्षण डेटा को बाहरी स्रोतों (जैसे CSV, Excel, या डेटाबेस) से प्राप्त करके समान परीक्षण को कई डेटा सेट्स के साथ चला सकते हैं।
- हेडलेस परीक्षण (Headless Testing): आप बिना ब्राउज़र UI के परीक्षण चला सकते हैं, जो परीक्षण को और तेज करता है और Continuous Integration (CI) वातावरण में अधिक उपयुक्त होता है।
Selenium में एक साधारण टेस्ट केस का उदाहरण (Python में):
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
# ब्राउज़र ड्राइवर सेट करें (मान लीजिए आपने ChromeDriver इंस्टॉल किया है)
driver = webdriver.Chrome(executable_path="path/to/chromedriver")
# लॉगिन पेज खोलें
driver.get("https://www.example.com/login")
# यूज़रनेम और पासवर्ड फ़ील्ड्स ढूंढें
username = driver.find_element(By.ID, "username")
password = driver.find_element(By.ID, "password")
# वैध क्रेडेंशियल्स डालें
username.send_keys("validUser")
password.send_keys("validPassword")
# लॉगिन बटन ढूंढें और क्लिक करें
driver.find_element(By.ID, "loginButton").click()
# यह सुनिश्चित करें कि लॉगिन सफल हुआ (URL की जांच करें)
assert "dashboard" in driver.current_url
print("लॉगिन टेस्ट पास")
driver.quit()
सारांश:
- ऑटोमेशन क्यों?: टेस्ट ऑटोमेशन से समय की बचत, पुन: उपयोगिता, संगति, रिग्रेशन परीक्षण की सुविधा, और लंबे समय में लागत-कुशलता मिलती है।
- कब न करें ऑटोमेशन?: छोटे प्रोजेक्ट्स, अस्थिर कोड, साधारण परीक्षण, और एक बार के परीक्षणों में ऑटोमेशन न करना बेहतर होता है।
- सरल ऑटोमेटेड टेस्ट केस लिखना: स्क्रिप्ट लिखने के लिए पहले टेस्ट केस का चयन करें, फिर टेस्ट को ऑटोमेट करने के लिए स्क्रिप्ट तैयार करें, और अंत में परिणामों की पुष्टि करें।
- Selenium का अभ्यास करना: Selenium एक शक्तिशाली फ्रेमवर्क है जो वेब एप्लिकेशनों को स्वचालित करने में मदद करता है। इसके माध्यम से आप स्वचालित परीक्षणों को तेजी से लिख सकते हैं और क्रॉस-ब्राउज़र परीक्षण कर सकते हैं।
📢 🔔 Download PDF & Join Study Groups:
📥 WhatsApp Group: Join Now
📥 Telegram Channel: Join Now
📺 Watch Lecture on YouTube: BTER Polytechnic Classes
📍 Stay connected for more study materials! 🚀
Thank You for Visiting!
We wish you all the best for your studies. Keep learning, and don't hesitate to reach out for help! 📚✨
0 Comments