keyword driven framework selenium with examples
कीवर्ड ड्रिवेन फ्रेमवर्क पर यह व्यापक ट्यूटोरियल फ्रेमवर्क के विभिन्न घटकों और सेलेनियम में एक कैसे बनाएं का वर्णन करता है:
सामान्य तौर पर, फ्रेमवर्क दिशानिर्देशों का एक सेट है, जिसका पालन करने पर लाभकारी परिणाम मिलेंगे।
कीवर्ड-ड्रिव्ड फ्रेमवर्क एक अलग ऑब्जेक्ट रिपॉजिटरी में स्क्रिप्ट्स / क्रियाओं का उपयोग करने के लिए एक तकनीक है जो एक अलग ऑब्जेक्ट रिपॉजिटरी (यहां, यह एक जावा क्लास फाइल है) में है, जो बढ़ी हुई कोड-पुन: प्रयोज्यता, कम स्क्रिप्ट रखरखाव जैसे सकारात्मक परिणाम देगा। और उच्च पोर्टेबिलिटी।
=> यहां सेलेनियम शुरुआती गाइड पर एक नज़र डालें।
आप क्या सीखेंगे:
सेलेनियम में एक कीवर्ड संचालित फ्रेमवर्क क्या है?
यहाँ वीडियो ट्यूटोरियल हैं:
कीवर्ड ड्रिवेन फ्रेमवर्क - प्लान एंड डिज़ाइन
कीवर्ड ड्रिवेन फ्रेमवर्क पार्ट का निर्माण - I
कीवर्ड ड्रिवेन फ्रेमवर्क पार्ट - II का निर्माण
बाइनरी ट्री सम्मिलन और जावा में विलोपन
कीवर्ड ड्रिवेन टेस्टिंग फ्रेमवर्क के घटक
नीचे दिए गए उन घटकों की सूची दी गई है जो कीवर्ड ड्रिवेन फ्रेमवर्क में शामिल हैं।
- फंक्शन लाइब्रेरी
- कीवर्ड को संग्रहीत करने के लिए एक्सेल शीट
- डिजाइन टेस्ट केस टेम्प्लेट
- एलिमेंट रिपॉजिटरी फॉर एलिमेंट्स / लोकेटर
- टेस्ट लिपियों या ड्राइवर स्क्रिप्ट
(1) फंक्शन लाइब्रेरी
यह आमतौर पर एक जावा क्लास फ़ाइल है जहाँ कीवर्ड परिभाषित किए जाते हैं। दूसरे शब्दों में, एप्लिकेशन पर किए जाने वाले सभी कार्यों को लाइब्रेरी क्लास फ़ाइल में उपयोगकर्ता-परिभाषित तरीकों (जो कीवर्ड हैं) के रूप में परिभाषित किया गया है।
उदाहरण के लिए:
आइए हम मान लें कि हमारे आवेदन को एक या अधिक परीक्षण मामलों में निम्नलिखित क्रियाएं करनी हैं:
- URL दर्ज करें।
- एक तत्व पर क्लिक करें।
- एक टेक्स्टबॉक्स में टाइप करें।
फिर, पुस्तकालय फ़ाइल इन सभी कार्यों के लिए अलग-अलग तरीकों को परिभाषित करके बनाई गई है जैसा कि नीचे दिखाया गया है:
यहां, हम क्रिया के लिए उपयोगकर्ता-परिभाषित पद्धति बना रहे हैं - 'URL दर्ज करें'।
उपयोगकर्ता द्वारा परिभाषित विधि के लिए प्रदान किया गया नाम a कहलाता है कीवर्ड।
इसलिए, यहां 'enter_URL' कीवर्ड है
public void enter_URL(WebDriver driver,String TestData) throws IOException { driver.get(TestData); }
मापदंडों :
चालक - ड्राइवर को मेन क्लास में इनिशियलाइज़ किया जाता है और यहाँ से गुजारा जाता है।
परीक्षण डेटा - मेन क्लास द्वारा बाहरी स्रोत से पढ़ा जाता है और इसे यहां से पारित किया गया है।
.jnlp फाइलें कैसे खोलें
समारोह :
यहाँ, Driver.get () - सेलेनियम का कार्य है जो 'URL दर्ज करें' क्रिया करता है।
Keywords.java
package Keywords.Defined; import java.io.File; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; public class Keywords { String path = System.getProperty('user.dir'); WebDriver driver; // driver object is declared //method for entering URL – Keyword is ‘enter_URL’ public void enter_URL(WebDriver driver,String TestData) throws IOException { driver.get(TestData); } //method for typing action – Keyword is ‘type’ public void type(WebDriver driver, String ObjectName, String locatorType, String testdata) { driver.findElement(this.getObject(ObjectName,locatorType)).sendKeys(testdata); } //method for click action – Keyword is ‘click’ public void click(WebDriver driver,String ObjectName, String locatorType) { driver.findElement(this.getObject(ObjectName,locatorType)).click(); } }
# 2) एक्सेल शीट कीवर्ड स्टोर करने के लिए
सभी उपयोगकर्ता-परिभाषित तरीकों के साथ-साथ इसकी कार्यक्षमता विवरण एक्सेल शीट में उल्लिखित होनी चाहिए ताकि उपयोगकर्ता समझ सके कि लाइब्रेरी फ़ाइल में क्या कीवर्ड है।
एक्सेल शीट लाइब्रेरी फ़ाइल के लिए सारांश के रूप में कार्य करती है और परीक्षण केस टेम्पलेट बनाते समय उपयोगी हो जाती है, जहाँ उपयोगकर्ता एक्सेल शीट कीवर्ड सूची को देखता है और परीक्षण मामले में प्रत्येक क्रिया के लिए संबंधित कीवर्ड को चुनता है।
उदाहरण के लिए:
package Keywords.Defined; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; public class Keywords { String path = System.getProperty('user.dir'); WebDriver driver; public void enter_URL(WebDriver driver,String TestData) throws IOException{ driver.get(TestData); } public void type(WebDriver driver, String ObjectName, String locatorType, String testdata) throws IOException{ driver.findElement(this.getObject(ObjectName,locatorType)).sendKeys(testdata); //driver.findElement(By.xpath('//')).sendKeys(testdata); } public void wait(WebDriver driver,String ObjectName, String locatorType) throws IOException{ WebDriverWait wait = new WebDriverWait(driver, 60); wait.until(ExpectedConditions.visibilityOf(driver.findElement(this.getObject(ObjectName,locatorType)))); } public void click(WebDriver driver,String ObjectName, String locatorType) throws IOException{ driver.findElement(this.getObject(ObjectName,locatorType)).click(); } public String get_currentURL(WebDriver driver){ String URL = driver.getCurrentUrl(); System.out.println('print URL '+URL); return URL; } By getObject(String ObjectName, String locatorType) throws IOException{ File file = new File(path+'\Externals\Object Repository.properties'); FileInputStream fileInput = new FileInputStream(file); Properties prop = new Properties(); //find by xpath if(locatorType.equalsIgnoreCase('XPATH')){ return By.xpath(prop.getProperty(ObjectName)); } //find by class else if(locatorType.equalsIgnoreCase('CLASSNAME')){ return By.className(prop.getProperty(ObjectName)); } //find by name else if(locatorType.equalsIgnoreCase('NAME')){ return By.name(prop.getProperty(ObjectName)); } //Find by css else if(locatorType.equalsIgnoreCase('CSS')){ return By.cssSelector(prop.getProperty(ObjectName)); } //find by link else if(locatorType.equalsIgnoreCase('LINK')){ return By.linkText(prop.getProperty(ObjectName)); } //find by partial link else if(locatorType.equalsIgnoreCase('PARTIALLINK')){ return By.partialLinkText(prop.getProperty(ObjectName)); } return null; } }
# 3) डिज़ाइन टेस्ट केस टेम्प्लेट
टेस्ट केस टेम्प्लेट प्रोजेक्ट सुविधा के अनुसार बनाया जा सकता है। खाका बनाने के लिए कोई विशेष नियम नहीं है। यह इस बात के आधार पर तैयार किया गया है कि परियोजना को रूपरेखा को तैयार करने के लिए कितनी जरूरत है। बाह्यकरण केवल कीवर्ड के लिए हो सकता है, या कभी-कभी टेस्ट डेटा और UI तत्व भी बाह्यीकृत होते हैं।
एक नमूना परीक्षण मामला टेम्पलेट बनाया गया है:
दिए गए उदाहरण में, टेम्पलेट इस तरह से बनाया गया है:
- प्रत्येक शीट टेस्ट केस से मेल खाती है और अंतिम शीट वह है जो 'कीवर्ड सूची' रखती है।
- प्रत्येक पंक्ति एक टीसी के परीक्षण चरणों से मेल खाती है।
- प्रत्येक स्तंभ वह पैरामीटर है जो प्रत्येक क्रिया के लिए आवश्यक है।
टेस्ट केस टेम्पलेट कैसे भरें:
# 1) प्रदान की गई टेस्ट केस शीट से, प्रत्येक टेस्ट केस और उसके अनुरूप परीक्षण चरणों को पढ़ें। प्रत्येक परीक्षण चरण के लिए, कार्रवाई का पता लगाएं और लाइब्रेरी फ़ाइल से संबंधित कीवर्ड ढूंढें।
#दो) एक बार जब कार्रवाई कीवर्ड के साथ मेल खाती है, तो परीक्षण मामले के आदेश में परीक्षण केस टेम्पलेट भरें और आवश्यक के रूप में अन्य आवश्यक पैरामीटर भी पास करें।
# 4) लोकेटर के लिए ऑब्जेक्ट रिपोजिटरी
UI लोकेटर की पहचान की जा सकती है और इसका मान या तो टेस्ट केस टेम्प्लेट में उल्लेख किया जा सकता है या एक अलग ऑब्जेक्ट रिपॉजिटरी में रखा जा सकता है।
नीचे दिए गए उदाहरण में, तत्व पहचान गुण
- लोकेटर प्रकार - उपयोग की जाने वाली पहचान तकनीक आईडी, Xpath, ClassName, आदि है।
- लोकेटर मान - उस विशेषता का मूल्य - उदाहरण के लिए: यदि इसकी Id विशेषता है, तो id इत्यादि का मूल्य।
दूसरा तरीका ऑब्जेक्ट रिपॉजिटरी में बनाए रखना है और एक्सेल शीट में ऑब्जेक्ट नाम का उल्लेख करना है।
Android के लिए सबसे अच्छा संगीत डाउनलोडर साइट
- लोकेटर प्रकार - उपयोग की जाने वाली पहचान तकनीक आईडी, Xpath, ClassName, आदि है।
- लोकेटर का नाम -ऑब्जेक्ट रिपॉजिटरी से ऑब्जेक्ट का नाम जहां लोकेटर वैल्यू स्टोर किया जाता है। उदाहरण के लिए, यदि रिपॉजिटरी किसी ऑब्जेक्ट के Xpath मान को 'उपयोगकर्ता नाम' के रूप में रखता है, तो लोकेटरनाम को 'यूजरनेम' के रूप में उल्लिखित किया जाता है।
ध्यान दें: एक्सेल शीट में उल्लिखित लोकेटरटाइप के अनुसार, इसका मूल्य ऑब्जेक्ट रिपॉजिटरी में संग्रहीत किया जाना चाहिए। उदाहरण के लिए: यदि Xpath को LocatorType के रूप में निर्दिष्ट किया गया है, तो रिपॉजिटरी को उस तत्व के Xpath को संग्रहीत करना चाहिए, यदि आईडी को Locatortype के रूप में निर्दिष्ट किया गया है, तो आईडी को संग्रहीत किया जाना चाहिए और इसी तरह।
# 5) टेस्ट लिपियों या ड्राइवर स्क्रिप्ट
यह मुख्य स्क्रिप्ट है जो एक्सेल शीट की सभी सामग्री को पढ़ता है और संबंधित कार्रवाई करता है। स्क्रिप्ट कैसे बनाया जाता है, इसके आधार पर स्क्रिप्ट तैयार की जाती है।
हमारे मामले में, जैसा कि प्रत्येक टेस्ट शीट टेस्ट केस के रूप में और प्रत्येक पंक्ति एक टेस्ट स्टेप के रूप में कार्य करती है, ड्राइवर स्क्रिप्ट को शीट और फिर पंक्तियों में पुनरावृति करके बनाया जा सकता है।
प्रत्येक विशेष पंक्ति में, एक कीवर्ड पढ़ा जाता है और लाइब्रेरी फ़ाइल में इसकी संबंधित विधि निष्पादित होती है और इसी तरह। यह तब तक जारी रहता है जब तक कि परीक्षण मामले के सभी परीक्षण चरण निष्पादित नहीं हो जाते। फिर, यह अगले परीक्षण मामले / शीट पर आगे बढ़ता है और इसे निष्पादित करता है।
package Automation.KeywordFramework; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.LinkedList; import java.util.Properties; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.Reporter; import org.testng.annotations.BeforeTest; import org.testng.annotations.Parameters; import org.testng.annotations.Test; import org.testng.asserts.Assertion; import Keywords.Defined.Assertions; import Keywords.Defined.Keywords; public class IrctcLogic { WebDriver driver; String path = System.getProperty('user.dir'); Keywords keyword = new Keywords(); Assertions assertion = new Assertions(); @Test public void readExcelandexecute() throws IOException, InterruptedException{ //From excelfile String excelFilePath = path+'\Externals\Test Cases.xlsx'; FileInputStream fileInputStream = new FileInputStream(excelFilePath); XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream); int testcasescount = workbook.getNumberOfSheets()-1; System.out.println('Total test cases :'+testcasescount); for (int testcase=0;testcaseनिष्कर्ष
इस प्रकार, एक बार एक रूपरेखा तैयार हो जाने के बाद, यह कई परीक्षण मामलों / परियोजनाओं के लिए पुन: प्रयोज्य है। इस तरह, यह प्रत्येक परियोजना के लिए एक स्वचालन स्क्रिप्ट बनाने के मानव-घंटे को कम करता है।
अगले अध्याय में, हम हाइब्रिड चालित ढांचे के निर्माण पर चर्चा करेंगे जो कि कीवर्ड-ड्रिवेन फ्रेमवर्क और डेटा-ड्रिवेन फ्रेमवर्क का संयोजन है।
=> आसान सेलेनियम प्रशिक्षण श्रृंखला के माध्यम से पढ़ें।
अनुशंसित पाठ
- अपाचे POI का उपयोग कर सेलेनियम वेबड्राइवर में डेटा ड्रिवेन फ्रेमवर्क
- डेटा चालित परीक्षण कार्य (QTP और सेलेनियम के उदाहरण)
- सेलेनियम स्क्रिप्ट में JUnit फ्रेमवर्क और इसके उपयोग का परिचय - सेलेनियम ट्यूटोरियल # 11
- सेलेनियम में हाइब्रिड फ्रेमवर्क क्या है?
- सेलेनियम उदाहरणों के साथ पाठ ट्यूटोरियल द्वारा तत्व का पता लगाएं
- 30+ सर्वश्रेष्ठ सेलेनियम ट्यूटोरियल: वास्तविक उदाहरणों के साथ सेलेनियम जानें
- सेलेनियम फ्रेमवर्क निर्माण और एक्सेल से टेस्ट डेटा तक पहुंचना - सेलेनियम ट्यूटोरियल # 21
- जावा 'यह' कीवर्ड: कोड उदाहरण के साथ ट्यूटोरियल