selenium framework creation
पिछले ट्यूटोरियल में, हमने आपको परिचित किया परीक्षण स्वचालन फ्रेमवर्क की मूल बातें , इसके घटक और प्रकार। पिछले ट्यूटोरियल में सचित्र रूपरेखाएँ बिरादरी द्वारा उपयोग किए जाने वाले सबसे लोकप्रिय रूपरेखाओं में से कुछ थीं।
हमने मॉड्यूल आधारित फ्रेमवर्क, लाइब्रेरी आर्किटेक्चर आधारित फ्रेमवर्क, कीवर्ड संचालित फ्रेमवर्क, डेटा चालित फ्रेमवर्क और हाइब्रिड फ्रेमवर्क की संक्षिप्त चर्चा की। कई अन्य ढांचे भी जगह में हैं।
कृपया ध्यान दें कि हम इसे अपनाएंगे हमारे बाकी ट्यूटोरियल के लिए डेटा ड्रिवेन टेस्ट ऑटोमेशन फ्रेमवर्क।
धारा में इस श्रृंखला में ट्यूटोरियल , हम आपको एक परिचित करेंगे नमूना ढांचा, एक्सेल जो परीक्षण डेटा और उनके एक्सेल जोड़तोड़ को संग्रहीत करेगा । उसी तर्ज पर, हम आगे बढ़ेंगे और अपने ढांचे को परिपक्व करने के लिए नई रणनीतियों और संसाधनों का परिचय देंगे।
तो आइए जानें:
- एक नमूना परियोजना का उपयोग कर फ्रेमवर्क निर्माण की रणनीति
- बाहरी डेटा स्रोत में संग्रहीत परीक्षण डेटा तक पहुंचें
आगे बढ़ते हुए, हम परियोजना पदानुक्रम के विवरण के साथ शुरू करेंगे जो हम विभिन्न परियोजना घटकों को अलग करने के लिए बनाएंगे।
नमूना परियोजना के लिए बनाई गई परियोजना पदानुक्रम के लिए नीचे की छवि देखें। नीचे दिए गए जावा प्रोजेक्ट को आसानी से ग्रहण किया जा सकता है जिस तरह से हमने पहले के ट्यूटोरियल में प्रोजेक्ट बनाए हैं।
आप क्या सीखेंगे:
सेलेनियम प्रोजेक्ट फ़ोल्डर संरचना - वॉकथ्रू
(1) src - फ़ोल्डर में सभी परीक्षण स्क्रिप्ट, जेनरिक, पाठक और उपयोगिताओं हैं। ये सभी संसाधन कुछ और नहीं बल्कि साधारण जावा क्लासेस हैं। स्रोत (src) फ़ोल्डर के तहत, हमने फ़ोल्डरों का एक पदानुक्रम बनाया है।
एक परीक्षा - 'परीक्षण' फ़ोल्डर का गठन मुख्यतः दो अवयवों में किया जाता है - परीक्षण सूट और परीक्षण के तहत आवेदन के विभिन्न मॉड्यूल का प्रतिनिधित्व करने वाले फ़ोल्डर। इस प्रकार, इन फ़ोल्डरों में से प्रत्येक में मॉड्यूल से संबंधित परीक्षण स्क्रिप्ट शामिल हैं, जिससे यह जुड़ा हुआ है। टेस्टसुइट एक से अधिक परीक्षण लिपियों का तार्किक संयोजन है। इस प्रकार, उपयोगकर्ता परीक्षण सूट के भीतर किसी भी परीक्षण स्क्रिप्ट की प्रविष्टि को चिह्नित कर सकता है जिसे वह बाद के रनों में निष्पादित करना चाहता है।
गुणवत्ता नियंत्रण साक्षात्कार प्रश्न और उत्तर पीडीएफ
b) उपयोगिताओं - 'यूटिलिटीज' फ़ोल्डर उपयोगकर्ता-परिभाषित अपवादों को लागू करने के लिए विभिन्न जेनरिक, स्थिरांक, पाठकों और कक्षाओं का गठन किया जाता है। उपयोगिताओं के तहत प्रत्येक फ़ोल्डर का अपना महत्व है।
- एक्सेल रीडर - एक्सेल शीट से टेस्ट डेटा (इनपुट पैरामीटर और अपेक्षित परिणाम) पढ़ने के लिए एक सामान्य और सामान्य वर्ग बनाया गया है
- पर्यावरणसंपादक - फ़ोल्डर जावा वर्गों का एकीकरण है जो पथों और अन्य पर्यावरणीय विवरणों के संदर्भ में स्थिर चर को संग्रहीत करता है। ये विवरण अनुप्रयोग URL, डेटाबेस के लिए URL, डेटाबेस के लिए क्रेडेंशियल्स और उपयोग किए जा रहे किसी भी तीसरे पक्ष के टूल के लिए URL हो सकते हैं। अलग-अलग वातावरण (देव, उत्पाद, परीक्षण, मास्टर, दास आदि) के लिए अलग-अलग एप्लिकेशन URL सेट किए जा सकते हैं।
- डेटासेटर्स - फ़ोल्डर में एक्सेल से प्राप्त परीक्षण डेटा के गेटर्स और सेटर को लागू करने वाली कक्षाएं शामिल हैं। टेस्ट डेटा के कई सेट लोड करने के लिए, हम ArrayLists बनाते हैं।
- उपयोगकर्ता भूमिका - फ़ोल्डर उन वर्गों को समायोजित करता है जो सहज ज्ञान युक्त उपयोगकर्ताओं के लिए रोल-आधारित एक्सेस मानदंड का ध्यान रखते हैं।
- कार्यसूची - फ़ोल्डर उन वर्गों से बना होता है जिनमें फ़ंक्शंस और विधियाँ होती हैं जिन्हें कई वर्गों के बीच साझा और उपयोग किया जा सकता है। बहुत बार, हम वास्तविक परीक्षण निष्पादन से पहले कुछ प्रक्रियाओं का प्रदर्शन करने वाले होते हैं, जैसे कि आवेदन करने के लिए लॉगिन, वातावरण की स्थापना, रोल से संबंधित गतिविधियाँ, डेटा जोड़तोड़, लेखन परिणाम, अन्य तरीकों से पूर्व / पोस्ट की स्थिति उत्पन्न करने वाले तरीके । चूंकि हम इन गतिविधियों को सभी या अधिकांश परीक्षण स्क्रिप्ट के लिए निष्पादित करते हैं। इस प्रकार यह हमेशा परीक्षण लिपियों में से प्रत्येक में उन्हें बार-बार कोड करने के बजाय ऐसी गतिविधियों के लिए एक अलग वर्ग बनाने की सिफारिश की जाती है।
- PreConditionalMethods
- PostConditionalMethods
बहुत बार, हम कुछ प्रक्रियाओं को करने से पहले और उसके बाद वास्तविक परीक्षण निष्पादन के लिए आवेदन करने के लिए लॉगिन, वातावरण की स्थापना, उपयोगकर्ता भूमिकाओं से संबंधित गतिविधियों, डेटा जोड़तोड़, लेखन परिणाम, उन तरीकों से पहले / बाद की स्थिति उत्पन्न करने वाले हैं विधियाँ। चूंकि हम इन गतिविधियों को सभी या अधिकांश परीक्षण स्क्रिप्ट के लिए निष्पादित करते हैं, इसलिए इस तरह की गतिविधियों के लिए हमेशा अलग-अलग वर्ग बनाने की सिफारिश की जाती है, ताकि वे प्रत्येक परीक्षण स्क्रिप्ट में बार-बार कोडिंग करें।
कॉमनमेथोड्स
प्री और पोस्टकंडिशन की तरह, एक से अधिक टेस्ट स्क्रिप्ट द्वारा उपयोग किए जा सकने वाले तरीके और कार्य हो सकते हैं। इस प्रकार, इन विधियों को एक कक्षा में एक साथ समूहीकृत किया जाता है। परीक्षण स्क्रिप्ट सामान्य वर्ग के ऑब्जेक्ट का उपयोग करके इन तरीकों तक पहुंच सकती है।
# 2) एक्सेल फाइल - एक्सेल फ़ाइलों को परीक्षण स्क्रिप्ट निष्पादन के लिए डेटा स्रोत / डेटा प्रदाता माना जाता है। ये फ़ाइलें परीक्षण डेटा को कुंजी-मूल्य जोड़े में संग्रहीत करती हैं। ध्यान दें कि हम प्रत्येक परीक्षण स्क्रिप्ट के लिए एक अलग एक्सेल शीट बनाते हैं यानी प्रत्येक परीक्षण स्क्रिप्ट की अपनी परीक्षण डेटा फ़ाइल होती है। परीक्षण स्क्रिप्ट और संबंधित परीक्षण डेटा फ़ाइलों / एक्सेल शीट का नाम ट्रेसेबिलिटी परिप्रेक्ष्य के लिए समान रखा गया है। नीचे दिए गए नमूना परीक्षण डेटा प्रारूप देखें:
डेटा प्रारूप का परीक्षण करें
स्तंभों में से प्रत्येक एक कुंजी का प्रतिनिधित्व करता है और पंक्तियों में से प्रत्येक एक परीक्षण डेटा / मूल्य का प्रतिनिधित्व करता है। कई डेटा सेट के साथ एक ही टेस्ट स्क्रिप्ट को निष्पादित करने के लिए कई पंक्तियों को निर्दिष्ट करें।
चिह्नित करें कि परीक्षण डेटा प्रारूप पूरी तरह से उपयोगकर्ता परिभाषित हैं। इस प्रकार आपकी आवश्यकताओं के आधार पर, आप परीक्षण डेटा फ़ाइलों को अनुकूलित कर सकते हैं।
# 3) पुस्तकालय - फ़ोल्डर सभी आवश्यक जार फ़ाइलों, पुस्तकालयों, ड्राइवरों आदि के लिए एक रिपॉजिटरी / आर्टिफैक्ट्री के रूप में कार्य करता है ताकि परीक्षण वातावरण का सफलतापूर्वक निर्माण किया जा सके और परीक्षण लिपियों को निष्पादित किया जा सके। हमारी परियोजना के भीतर नियोजित पुस्तकालयों की जाँच करने के लिए निम्नलिखित आंकड़े देखें।
# 4) लॉग - फ़ोल्डर में एक .txt फ़ाइल होती है जो प्रत्येक निष्पादन पर लॉगिंग जानकारी संग्रहीत करती है।
# 5) परीक्षण सामग्री - फ़ोल्डर में वास्तविक परीक्षण डेटा होता है जिसे यदि कोई हो तो अपलोड करने की आवश्यकता होती है। यह फ़ोल्डर चित्र में तब आएगा जब हम परीक्षण परिदृश्यों में आएंगे जहाँ उपयोगकर्ता को फ़ाइलें, दस्तावेज़, चित्र, रिपोर्ट आदि अपलोड करने की आवश्यकता होती है।
# 6) build.xml - पूरी बिल्ड प्रक्रिया को स्वचालित करने के लिए 'एंट सर्वर' द्वारा xml फ़ाइल का उपयोग किया जाता है।
# 7) log4j.xml - इस xml फ़ाइल का उपयोग जावा-आधारित उपयोगिता द्वारा किया जाता है जिसे निष्पादन लॉग को उत्पन्न करने के लिए 'Log4j' नाम दिया गया है।
ध्यान दें : हम आगामी ट्यूटोरियल में लॉग्स, उपयोगकर्ता-परिभाषित अपवादों और चींटी के बारे में अधिक अध्ययन करेंगे। यदि आप धारणाओं के बीच उलझ जाते हैं तो घबराएं नहीं।
अब, जैसा कि हम आगे बढ़ते हैं, हम उस घटना को समझते हैं जहां हम एक्सेल फ़ाइलों तक पहुंचते हैं और परीक्षण डेटा को हमारी परीक्षण लिपियों में आबाद करते हैं।
प्रक्रिया को आसान बनाने के लिए, हम इस प्रक्रिया को निम्न चरणों में तोड़ेंगे।
डेटा निर्माण का परीक्षण करें
चरण 1 : पहला और सबसे महत्वपूर्ण कदम परीक्षण डेटा बनाना है जिसके साथ हम परीक्षण स्क्रिप्ट निष्पादित करेंगे। उपर्युक्त परीक्षण डेटा प्रारूप को ध्यान में रखते हुए, हम 'TestScript1' के रूप में एक एक्सेल फ़ाइल बनाते हैं। तत्वों में मूल्यों का संचय करें।
विंडोज़ पर डाट फाइलें कैसे खोलें
चरण 2 : अगला कदम एक्सेल मैनीपुलेशन के लिए पहले से बनाए गए सामान्य तरीकों तक पहुंचने में सक्षम होने के लिए 'जावा एक्सेल लाइब्रेरी' (jxl) नाम से एक मानक जावा आधारित एपीआई / लाइब्रेरी डाउनलोड करना है।
चरण 3 : 'ExcelReader.java' नाम से एक सामान्य एक्सेल रीडर क्लास बनाएं। ExcelReader.java में नीचे दिए गए कोड को कॉपी करें।
package Utilities; import java.io.File; import java.io.IOException; import java.util.Hashtable; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; /** * This is a utility class created to read the excel test data file before performing the test steps. * This class loads the excel file and * reads its column entries. * */ public class ExcelReader { /** * The worksheet to read in Excel file */ public static Sheet wrksheet; /** * The Excel file to read */ public static Workbook wrkbook = null; /** * Store the column data */ public static Hashtable dict = new Hashtable(); /** * Create a Constructor * * @param ExcelSheetPath * @throws BiffException * @throws WeblivException */ public ExcelReader(String ExcelSheetPath) throws IOException, BiffException { // Initialize try { wrkbook = Workbook.getWorkbook(new File(ExcelSheetPath)); wrksheet = wrkbook.getSheet('Sheet1'); } catch (IOException e) { throw new IOException(); } } /** * Returns the Number of Rows * * @return Rows */ public static int RowCount() { return wrksheet.getRows(); } /** * Returns the Cell value by taking row and Column values as argument * * @param column * @param row * @return Cell contents */ public static String ReadCell(int column, int row) { return wrksheet.getCell(column, row).getContents(); } /** * Create Column Dictionary to hold all the Column Names */ public static void ColumnDictionary() { // Iterate through all the columns in the Excel sheet and store the // value in Hashtable for (int col = 0; col चरण 4 : एक सामान्य वर्ग बनाएँ - 'CommonMethods.java'। कक्षा के भीतर एक सामान्य विधि बनाएँ जो ExcelReader.java में लागू विधियों का उपयोग करके एक्सेल शीट से कोशिकाओं को पढ़े।
/** * Read the test data from excel file * * @param data The TestData data object */ public void readExcelData (TestData data) { ArrayList browser = new ArrayList(); ArrayList username = new ArrayList(); ArrayList password = new ArrayList(); ArrayList element1 = new ArrayList(); ArrayList element2 = new ArrayList(); ArrayList element3 = new ArrayList(); // Get the data from excel file for (int rowCnt = 1; rowCnt चरण 5 : एक नया जावा वर्ग बनाएं जिसका नाम “TestData.java” है। यह वर्ग एक्सेल डेटा के लिए एक गेट्टर और सेटर के रूप में कार्य करेगा। TestData.java वर्ग में निम्न कोड को कॉपी और पेस्ट करें।
package Utilities.dataSetters; import java.util.ArrayList; public class TestData { private ArrayList loginUser = null; private ArrayList password = null; private ArrayList browser = null; private ArrayList element1 = null; private ArrayList element2 = null; private ArrayList element3 = null; /** * @return loginUser */ public ArrayList getLoginUser() { return loginUser; } /** * @param loginUser */ public void setLoginUser(ArrayList loginUser) { this.loginUser = loginUser; } /** * @return password */ public ArrayList getPassword() { return password; } /** * @param password */ public void setPassword(ArrayList password) { this.password = password; } /** * @return browser */ public ArrayList getBrowser() { return browser; } /** * @param browser */ public void setBrowser(ArrayList browser) { this.browser = browser; } /** * @return element1 */ public ArrayList getElement1() { return element1; } /** * @param element1 */ public void setElement1(ArrayList element1) { this.element1 = element1; } /** * @return element2 */ public ArrayList getElement2() { return element2; } /** * @param element2 */ public void setElement2(ArrayList element2) { this.element2 = element2; } /** * @return element3 */ public ArrayList getElement3() { return element3; } /** * @param element3 */ public void setElement3(ArrayList element3) { this.element3 = element3; } }
चरण 6 : अगला कदम परीक्षण डेटा को एक्सेस और पॉप्युलेट करने के लिए टेस्ट स्क्रिप्ट के भीतर 'टेस्टडाटा.जावा' और 'कॉमनमेथोडेसजवा' जावा इंस्टेंसेस बनाना है। ऑब्जेक्ट आरंभीकरण के लिए नीचे दिए गए कोड स्निपेट को देखें, एक्सेल डेटा को पढ़ना और जहाँ भी आवश्यक हो, मानों को पॉप्युलेट करना।
// Create Objects public ExcelReader excelReaderObj; CommonMethods commonMethodobj = new CommonMethods(); TestData td = new TestData(); // Load the excel file for testing excelReaderObj = new ExcelReader(Path of the excel); // Load the Excel Sheet Col in to Dictionary for use in test cases excelReaderObj.ColumnDictionary(); // Get the data from excel file commonMethodobj.readExcelData (td); // Populate the username driver.findElement(By.id('idofElement')).sendKeys(data.getLoginUser().get(0));
इसलिए, गेटर्स के साथ संयोजन के रूप में testData.java वर्ग के उदाहरण का उपयोग करते हुए, स्क्रिप्ट के भीतर किसी भी परीक्षण डेटा मूल्य को पॉप्युलेट किया जा सकता है।
निष्कर्ष:
ट्यूटोरियल मुख्य रूप से फ्रेमवर्क निर्माण और एक्सेल से परीक्षण डेटा तक पहुंचने जैसी धारणाओं के आसपास घूमता है। हमने आपको एक नमूना परियोजना का उपयोग करके फ्रेमवर्क निर्माण की रणनीति से परिचित कराया। हमने अपने ढांचे के विभिन्न घटकों और पहलुओं पर संक्षेप में प्रकाश डाला।
बाह्य डेटा स्रोत में संग्रहीत परीक्षण डेटा तक पहुंचने के लिए, हमने एक जावा आधारित एपीआई - जेएक्सएल का उपयोग किया। हमने परीक्षण स्क्रिप्ट में एक्सेल डेटा को पढ़ने और पॉप्युलेट करने के लिए नमूना कोड भी बनाया है।
अगला ट्यूटोरियल # 22 : अगले ट्यूटोरियल में, हम अपने ट्यूटोरियल को आधार देंगे जेनरिक की अवधारणाएँ और उनकी पहुँच तंत्र । हम कुछ सैंपल जेनेरिक तरीके बनाएंगे और फिर उन्हें टेस्ट स्क्रिप्ट के भीतर एक्सेस करेंगे। हम आपको टेस्टसुइट की अवधारणा और नमूना कोड विकास से भी परिचित कराएँगे।
अनुशंसित पाठ
- सेलेनियम स्क्रिप्ट में JUnit फ्रेमवर्क और इसके उपयोग का परिचय - सेलेनियम ट्यूटोरियल # 11
- अपाचे POI का उपयोग कर सेलेनियम वेबड्राइवर में डेटा ड्रिवेन फ्रेमवर्क
- ककड़ी सेलेनियम ट्यूटोरियल: ककड़ी जावा सेलेनियम वेबड्राइवर एकीकरण
- सेलेनियम वेबड्राइवर का परिचय - सेलेनियम ट्यूटोरियल # 8
- शुरुआती के लिए गहराई से ग्रहण ट्यूटोरियल
- सेलेनियम लिपियों के निर्माण के लिए TestNG फ्रेमवर्क का उपयोग कैसे करें - TestNG सेलेनियम ट्यूटोरियल # 12
- कुशल सेलेनियम स्क्रिप्टिंग और समस्या निवारण परिदृश्य - सेलेनियम ट्यूटोरियल # 27
- लॉग (लॉग 4 जे ट्यूटोरियल) के साथ सेलेनियम लिपियों को डीबग करना - सेलेनियम ट्यूटोरियल # 26