data driven framework selenium webdriver using apache poi
अपाचे POI का उपयोग करते हुए सेलेनियम में डेटा ड्रिवेन फ्रेमवर्क पर कैसे काम करें?
डेटा ड्रिवेन फ्रेमवर्क मौजूदा बाजार में लोकप्रिय ऑटोमेशन टेस्टिंग फ्रेमवर्क में से एक है। डेटा ड्रिवन स्वचालित परीक्षण एक ऐसी विधि है जिसमें परीक्षण डेटा सेट को एक्सेल शीट में बनाया जाता है, और फिर परीक्षण के तहत सॉफ्टवेयर को खिलाने के लिए स्वचालन परीक्षण उपकरण में आयात किया जाता है।
सेलेनियम वेबड्राइवर वेब-आधारित अनुप्रयोगों को स्वचालित करने के लिए एक महान उपकरण है। लेकिन यह एक्सेल फ़ाइलों पर पढ़ने और लिखने के संचालन का समर्थन नहीं करता है।
इसलिए, हम उपयोग करते हैं तीसरे पक्ष के एपीआई अपाचे POI की तरह।
आप इस ट्यूटोरियल में क्या सीखेंगे:
- एक्सेल उदाहरण का उपयोग करके सेलेनियम वेबड्राइवर में डेटा संचालित ढांचा क्या है
- अपाचे POI का उपयोग करके सेलेनियम वेबड्राइवर में एक्सेल शीट से डेटा कैसे पढ़ें और लिखें
आप क्या सीखेंगे:
- Apache POI क्या है?
- डेटा ड्राइव परीक्षण क्यों?
- डेटा ड्रिवेन फ्रेमवर्क को लागू करने के लिए हमें क्या करने की आवश्यकता है?
- POI में इंटरफ़ेस
- अपाचे POI के साथ सेलेनियम का उपयोग करने के लिए कदम
- डेटा ड्रिवेन फ्रेमवर्क का उपयोग करने के लाभ
- निष्कर्ष
- अनुशंसित पाठ
Apache POI क्या है?
अपाचे POI (खराब अवलोकन कार्यान्वयन) पढ़ने और लिखने के संचालन के लिए जावा में लिखित एक एपीआई है - कार्यालय फ़ाइलों को संशोधित करना। यह सबसे आम एपीआई है जिसका उपयोग किया जाता है सेलेनियम डेटा संचालित परीक्षण ।
सर्वश्रेष्ठ मुफ्त विंडोज़ 10 सफाई उपयोगिता
डेटा ड्रिवेन फ्रेमवर्क को लागू करने के कई तरीके हैं , और प्रत्येक रूपरेखा और रखरखाव को विकसित करने के लिए आवश्यक प्रयास में भिन्न है।
POI का उपयोग करके सेलेनियम में डेटा संचालित ढांचा विकसित करना रखरखाव को कम करने में मदद करता है, परीक्षण कवरेज में सुधार करता है और इस प्रकार निवेश पर अच्छा रिटर्न प्रदान करता है।
अनुशंसित पुस्तकें:
डेटा ड्राइव परीक्षण क्यों?
अक्सर कई डेटा सेट हो सकते हैं जिनका उपयोग किसी एप्लिकेशन की एक विशेषता का परीक्षण करने के लिए किया जाना चाहिए। अब एक ही टेस्ट को अलग-अलग डेटा के साथ मैन्युअल रूप से चलाना समय लेने वाली, त्रुटि प्रवण और एक उबाऊ कार्य है।
आइए इस परिदृश्य को एक उदाहरण से समझते हैं ।
मान लीजिए हमें 100 अलग-अलग डेटा सेटों के साथ कई इनपुट फ़ील्ड के साथ लॉगिन / रजिस्टर / किसी भी फॉर्म का परीक्षण करने की आवश्यकता है।
इसका परीक्षण करने के लिए आपके पास तीन अलग-अलग दृष्टिकोण हैं:
1) प्रत्येक डेटासेट के लिए 100 स्क्रिप्ट बनाएं और प्रत्येक परीक्षण को एक-एक करके निष्पादित करें।
2) स्क्रिप्ट में डेटा बदलें और इसे कई बार निष्पादित करें।
3) एक्सेल शीट से डेटा आयात करें और स्क्रिप्ट को अलग-अलग डेटा के साथ कई बार निष्पादित करें।
पहले दो परिदृश्य श्रमसाध्य हैं, समय लेने वाली - कम आरओआई लागू करने वाली। इसलिए, हमें तीसरे दृष्टिकोण का पालन करना चाहिए।
तीसरे दृष्टिकोण में, डेटा ड्रिवेन फ्रेमवर्क को लागू कर रहे हैं, जहां हमारा सारा डेटा एक्सेल शीट में रहता है, जहां से इसे आयात किया जाता है और एप्लिकेशन की विशेषताओं का परीक्षण किया जाता है।
=> डेटा ड्रिवेन फ्रेमवर्क के बारे में अधिक जानना चाहते हैं? हमारे पास एक विस्तृत है लेख आप यहां देख सकते हैं ।
डेटा ड्रिवेन फ्रेमवर्क लागू करने के लिए हमें क्या करना होगा
इस दृष्टिकोण का पालन करने के लिए हमारे पास ग्रहण, TestNG ठीक से कॉन्फ़िगर होना चाहिए।
एक बार करने के बाद, हम देखेंगे:
- अपाचे POI के विभिन्न इंटरफेस।
- ग्रहण में अपाचे POI का एकीकरण।
- एक्सेल शीट से डेटा पढ़ें।
- डेटा को एक्सेल शीट पर लिखें।
- सेलेनियम के साथ अपाचे POI का उपयोग करने के लाभ।
POI में इंटरफ़ेस
सबसे उल्लेखनीय विशेषताओं में से एक अपाचे POI यह है कि यह .xls और .xslx फ़ाइलों पर संचालन को पढ़ने और लिखने का समर्थन करता है।
नीचे कुछ का उल्लेख किया गया है पीओआई के इंटरफेस ।
- XSSFWorkbook: Xlsx फ़ाइल में कार्यपुस्तिका का प्रतिनिधित्व करता है।
- HSSFWorkbook: Xls फ़ाइल में कार्यपुस्तिका का प्रतिनिधित्व करता है।
- XSSFSheet: XLSX फ़ाइल में एक शीट का प्रतिनिधित्व करता है।
- HSSFSheet: XLS फ़ाइल में एक शीट का प्रतिनिधित्व करता है।
- XSSFRow: XLSX फ़ाइल की शीट में एक पंक्ति का प्रतिनिधित्व करता है।
- HSSFRow: XLS फ़ाइल की शीट में एक पंक्ति का प्रतिनिधित्व करता है।
- XSSFCell: XLSX फ़ाइल की एक पंक्ति में एक सेल का प्रतिनिधित्व करता है।
- HSSFCell: XLS फ़ाइल की एक पंक्ति में एक सेल का प्रतिनिधित्व करता है।
सेल में उपलब्ध फ़ील्ड:
- CELL_TYPE_BLANK: एक रिक्त सेल का प्रतिनिधित्व करता है।
- CELL_TYPE_BOOLEAN: एक बूलियन सेल (सही या गलत) का प्रतिनिधित्व करता है।
- CELL_TYPE_ERROR: एक सेल में एक त्रुटि मान का प्रतिनिधित्व करता है।
- CELL_TYPE_FORMULA: सेल पर एक सूत्र परिणाम का प्रतिनिधित्व करता है।
- CELL_TYPE_NUMERIC: किसी सेल में संख्यात्मक डेटा का प्रतिनिधित्व करता है।
- CELL_TYPE_STRING: एक सेल में स्ट्रिंग का प्रतिनिधित्व करता है।
अपाचे POI के साथ सेलेनियम का उपयोग करने के लिए कदम
वेब-आधारित अनुप्रयोगों की लॉगिन प्रक्रिया का परीक्षण करने के लिए एक स्वचालन स्क्रिप्ट बनाएं।
ओपन सोर्स रिलेशनल डेटाबेस मैनेजमेंट सिस्टम
यहाँ, मैंने लिंक्डइन ले लिया है उदहारण के लिए ।
हम एक एक्सेल शीट से डेटा आयात करते हैं और फिर एप्लिकेशन में लॉग इन करने के लिए इसका उपयोग करते हैं और निष्पादन के बाद, हम एक्सेल शीट में परिणाम लिखते हैं।
फ्रेमवर्क को निष्पादित करने के चरणों के साथ ले जाने के लिए हमें अपने सिस्टम पर निम्नलिखित सॉफ़्टवेयर की आवश्यकता है:
- जावा JDK 1.7+
- ग्रहण आईडीई
- TestNG
- सेलेनियम जार
- माइक्रोसॉफ्ट ऑफिस / ओपन ऑफिस
चरण 1)
सबसे पहले, हमें ग्रहण को कॉन्फ़िगर करने की आवश्यकता है अपाचे POI ।
डाउनलोड Apache POI के लिए जार फाइलें।
चरण 2)
जार फ़ाइल को अनज़िप करें, और अपनी परियोजना में निम्नलिखित जार जोड़ें और उन्हें कॉन्फ़िगर करें।
- dom4j-1.6.1.jar
- पोई-3.10-फाइनल-20140208.जर
- पोई-ऑक्सिलम-3.10-फ़िनल-20140208.जर
- पोई-ऑक्सिलम-स्कीमा-3.10-फ़िनल-20140208.जर
- xmlbeans-2.3.0.jar
चरण 3)
संबंधित जार को कॉन्फ़िगर करने के बाद, एक एक्सेल शीट बनाएं, इसमें कुछ डेटा दर्ज करें और इसे सहेजें TestData.xlsx अपने पसंदीदा स्थान पर।
किस प्रकार के ईमेल हैं
चरण 4)
अब हम एक्सेल शीट से डेटा पढ़ने के लिए नमूना कोड का पालन करते हैं और लॉगिन करने के लिए इसका उपयोग करते हैं linkedin.com ।
package automationFramework; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.concurrent.TimeUnit; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; /** * @author Admin * */ public class ReadWriteExcel { WebDriver driver; WebDriverWait wait; HSSFWorkbook workbook; HSSFSheet sheet; HSSFCell cell; @BeforeTest public void TestSetup() { // Set the path of the Firefox driver. System.setProperty('webdriver.gecko.driver', 'C:\Users\geckodriver.exe'); driver = new FirefoxDriver(); // Enter url. driver.get('http://www.linkedin.com/'); driver.manage().window().maximize(); wait = new WebDriverWait(driver,30); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } @Test public void ReadData() throws IOException { // Import excel sheet. File src=new File('C:\Users\Admin\Desktop\TestData.xls'); // Load the file. FileInputStream finput = new FileInputStream(src); // Load he workbook. workbook = new HSSFWorkbook(finput); // Load the sheet in which data is stored. sheet= workbook.getSheetAt(0); for(int i=1; i<=sheet.getLastRowNum(); i++) { // Import data for Email. cell = sheet.getRow(i).getCell(1); cell.setCellType(Cell.CELL_TYPE_STRING); driver.findElement(By.id('login-email')).sendKeys(cell.getStringCellValue()); // Import data for password. cell = sheet.getRow(i).getCell(2); cell.setCellType(Cell.CELL_TYPE_STRING); driver.findElement(By.id('login-password')).sendKeys(cell.getStringCellValue()); } } }
चरण # 5)
टेस्ट केस क्लास पर राइट क्लिक करें और क्लिक करें के रूप में चलाएँ -> TestNG टेस्ट।
अपाचे POI एक्सेल शीट से डेटा आयात करता है और इसका उपयोग हमारे एप्लिकेशन में लॉग इन करने के लिए करता है। अब जब हमने देखा कि एक्सेल शीट से डेटा कैसे पढ़ना है, तो आइए देखें कि शीट को कैसे लिखना है।
package automationFramework; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.concurrent.TimeUnit; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; /** * @author Admin * */ public class ReadWriteExcel { WebDriver driver; WebDriverWait wait; HSSFWorkbook workbook; HSSFSheet sheet; HSSFCell cell; @BeforeTest public void TestSetup() { // Set the path of the Firefox driver. System.setProperty('webdriver.gecko.driver', 'C:\Users\geckodriver.exe'); driver = new FirefoxDriver(); // Enter url. driver.get('http://www.linkedin.com/'); driver.manage().window().maximize(); wait = new WebDriverWait(driver,30); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } @Test public void ReadData() throws IOException { // Import excel sheet. File src=new File('C:\Users\Admin\Desktop\TestData.xls'); // Load the file. FileInputStream finput = new FileInputStream(src); // Load he workbook. workbook = new HSSFWorkbook(finput); // Load the sheet in which data is stored. sheet= workbook.getSheetAt(0); for(int i=1; i<=sheet.getLastRowNum(); i++) { // Import data for Email. cell = sheet.getRow(i).getCell(1); cell.setCellType(Cell.CELL_TYPE_STRING); driver.findElement(By.id('login-email')).sendKeys(cell.getStringCellValue()); // Import data for password. cell = sheet.getRow(i).getCell(2); cell.setCellType(Cell.CELL_TYPE_STRING); driver.findElement(By.id('login-password')).sendKeys(cell.getStringCellValue()); // Write data in the excel. FileOutputStream foutput=new FileOutputStream(src); // Specify the message needs to be written. String message = 'Data Imported Successfully.'; // Create cell where data needs to be written. sheet.getRow(i).createCell(3).setCellValue(message); // Specify the file in which data needs to be written. FileOutputStream fileOutput = new FileOutputStream(src); // finally write content workbook.write(fileOutput); // close the file fileOutput.close(); } } }
ध्यान दें : यदि इस प्रक्रिया के दौरान आपको कोई समस्या आती है, तो कृपया निम्नलिखित बिंदुओं की जाँच करें।
- सुनिश्चित करें कि सभी उल्लिखित जार परियोजना में जोड़े गए हैं और ठीक से कॉन्फ़िगर किए गए हैं।
- आवश्यक सॉफ़्टवेयर सही ढंग से स्थापित है।
- एक्सेल फ़ाइल के संबंध में एक इंटरफ़ेस का उचित उपयोग, .xls के लिए HSSF और .xlsx के लिए XSSF की तरह।
- वैध पंक्ति और स्तंभ सूचकांक का उपयोग किया जाता है।
- एक्सेल फ़ाइल निष्पादन से पहले बंद होनी चाहिए।
- एक्सएलएसएफ जैसी एक्सेल फाइल के लिए इस्तेमाल की जाने वाली उचित कक्षाएं .xlsx फाइलें और HSSF .xls फाइलों के लिए उपयोग की जाती हैं।
डेटा ड्रिवेन फ्रेमवर्क का उपयोग करने के लाभ
- परीक्षण कवरेज में सुधार करता है।
- कोड की पुन: प्रयोज्य।
- कम रखरखाव।
- तेज़ निष्पादन।
- बेहतर त्रुटि से निपटने की अनुमति देता है।
निष्कर्ष
इनपुट और आउटपुट से फ़ाइल में सॉफ्टवेयर परीक्षण प्रक्रिया का एक बहुत महत्वपूर्ण हिस्सा है। अपाचे POI सेलेनियम टेस्ट स्वचालन के लिए यह संभव बनाने में एक महत्वपूर्ण भूमिका निभाता है।
सेलेनियम के साथ एकीकृत अपाचे POI आपको एक ही स्थान पर बनाए हुए सभी डेटा के साथ, अलग-अलग डेटा सेटों के साथ कई बार अपनी स्क्रिप्ट चलाने की सुविधा देता है। यह परीक्षण स्क्रिप्ट पर समय और रखरखाव के प्रयास को बचाता है।
बारे में लेखक: यह क्यू ऑटोमेशन इंजीनियर विवेक का एक गेस्ट पोस्ट है।
क्या आपके पास अपाचे POI का उपयोग करके सेलेनियम वेबड्राइवर में डेटा-संचालित परीक्षण ढांचे को लागू करने के लिए कोई प्रश्न हैं? हमें नीचे टिप्पणियों में बताएं।
अनुशंसित पाठ
- सेलेनियम फ्रेमवर्क निर्माण और एक्सेल से टेस्ट डेटा तक पहुंचना - सेलेनियम ट्यूटोरियल # 21
- स्पॉक फ्रेमवर्क के साथ डेटा-संचालित या परिमितित परीक्षण
- डेटा चालित परीक्षण कार्य (QTP और सेलेनियम के उदाहरण)
- सेलेनियम स्क्रिप्ट में JUnit फ्रेमवर्क और इसके उपयोग का परिचय - सेलेनियम ट्यूटोरियल # 11
- TestComplete टूल का उपयोग करके डेटा चालित परीक्षण कैसे करें
- QTP ट्यूटोरियल # 18 - डेटा प्रेरित और हाइब्रिड फ्रेमवर्क QTP उदाहरणों के साथ समझाया गया
- सेलेनियम लिपियों के निर्माण के लिए TestNG फ्रेमवर्क का उपयोग कैसे करें - TestNG सेलेनियम ट्यूटोरियल # 12
- SoapUI Pro में डेटा चालित परीक्षण कैसे करें - SoapUI Tutorial # 14