selenium database testing using webdriver
हमारे पिछले सेलेनियम ट्यूटोरियल में, हमने सीखा कि कैसे सेलेनियम स्क्रिप्ट में कुछ आवर्ती समस्याओं का निवारण करें । हमने कुछ अग्रिम अवधारणाओं पर चर्चा की जिसमें हम माउस और कीबोर्ड घटनाओं से निपटेंगे, सूचियों को लागू करके कई लिंक तक पहुंचेंगे।
हमारे साथ आगे बढ़ रहा है सेलेनियम प्रशिक्षण श्रृंखला में उन्नत विषय , हम आपको की अवधारणा के साथ पेश करेंगे सेलेनियम वेबड्राइवर का उपयोग करके डेटाबेस परीक्षण।
हम डेटाबेस कनेक्शन, प्रश्नों को निष्पादित करने, डेटा प्राप्त करने और डेटाबेस इंस्टेंसेस को डिस्कनेक्ट करने जैसी बुनियादी प्रक्रियाओं पर चर्चा करेंगे। हम विभिन्न व्यावहारिक प्रभावों पर भी चर्चा करेंगे, जहाँ हमें परीक्षण करने के लिए स्वचालन परीक्षण के साथ डेटाबेस परीक्षण की आवश्यकता है। पूर्ण अंत-टू-एंड परिदृश्य।
स्वचालित डेटाबेस परीक्षण से जुड़े तकनीकी निहितार्थ के साथ आगे बढ़ने से पहले। आइए हम कुछ परिदृश्यों पर चर्चा करते हैं जहां हमें स्वचालन परीक्षण के साथ डेटाबेस परीक्षण करने की आवश्यकता होती है। लेकिन इससे पहले, मैं यहां यह पुष्टि करना चाहूंगा कि डेटाबेस परीक्षण एक बहुत ही अजीब प्रकार का परीक्षण है, जबकि सेलेनियम वेबड्राइवर एक उपकरण है जिसका उपयोग उपयोगकर्ता इंटरफ़ेस को अनुप्रयोग UI के साथ अनुकरण और स्वचालित करने के लिए किया जाता है।
इसलिए तकनीकी रूप से हम डेटाबेस परीक्षण ठीक से नहीं कर रहे हैं, बल्कि हम डेटाबेस के साथ संयोजन के रूप में अपने आवेदन का परीक्षण कर रहे हैं ताकि यह सुनिश्चित हो सके कि परिवर्तन दोनों छोरों पर परिलक्षित होते हैं जिससे दोष जल्दी पहचान हो।
पूरी तरह से सभी वेब एप्लिकेशन को डेटा स्टोर करने के लिए बैकएंड की आवश्यकता होती है। MySQL, Oracle, और SQL Server जैसे डेटाबेस इन दिनों यथोचित लोकप्रिय हैं।
अब मूल विषय पर वापस आते हुए, आइए हम ऑटोमेशन टेस्टिंग के साथ-साथ डेटाबेस परीक्षण की मांग को समझने के लिए कुछ परिदृश्यों पर चर्चा करें।
आप क्या सीखेंगे:
- निम्नलिखित परिदृश्य पर विचार करें
- डेटाबेस में परीक्षण डेटा का निर्माण
- नए डेटाबेस का निर्माण
- निष्कर्ष
- अनुशंसित पाठ
निम्नलिखित परिदृश्य पर विचार करें
# 1) कई बार, हमें यह सुनिश्चित करने की आवश्यकता होती है कि UI से दर्ज किया गया डेटा डेटाबेस में लगातार परिलक्षित होता है। इस प्रकार हम डेटाबेस से जानकारी प्राप्त करते हैं और यूआई से आपूर्ति की गई जानकारी के खिलाफ पुनर्प्राप्त जानकारी को सत्यापित करते हैं। उदाहरण के लिए, पंजीकरण प्रपत्र, उपयोगकर्ता डेटा, उपयोगकर्ता प्रोफ़ाइल, उपयोगकर्ता डेटा के अपडेट और डिलीट। इस प्रकार, स्वचालित करने का परीक्षण परिदृश्य 'यह सत्यापित करने के लिए कि उपयोगकर्ता की जानकारी सफलतापूर्वक डेटाबेस में सहेजी जाती है, जैसे ही उपयोगकर्ता आवेदन में पंजीकृत करता है'।
#दो) सेलेनियम वेबड्राइवर के साथ डेटाबेस परीक्षण करने का एक और उपयोग मामला तब उत्पन्न हो सकता है जब उपयोगकर्ता को डेटाबेस से परीक्षण डेटा या अपेक्षित डेटा लोड करने के लिए निर्देशित किया जाता है। इस प्रकार, ऐसे मामले में, उपयोगकर्ता किसी तीसरे पक्ष के एपीआई का उपयोग करते हुए डेटाबेस के साथ संबंध बनाता है, डेटासेट से डेटा प्राप्त करने के लिए प्रश्नों को निष्पादित करता है और फिर डेटाबेस से प्राप्त डेटा को वास्तविक डेटा के साथ उपयोग करता है, जो आवेदन यूआई पर पॉप्युलेट होता है। ।
# 3) एक अन्य उपयोग मामला साहचर्य डेटाबेस परीक्षण करने के लिए है। मान लें कि हमने एप्लिकेशन के UI पर एक ऑपरेशन किया है, और हम डेटाबेस में प्रतिबिंब का परीक्षण करना चाहते हैं। यह ऐसा मामला हो सकता है कि प्रभावित डेटा एसोसिएशन के कारण डेटाबेस के विभिन्न तालिकाओं में रहता है। इसलिए सभी प्रभावित क्षेत्रों में डेटा प्रतिबिंब का परीक्षण करना हमेशा उचित होता है।
सेलेनियम, जैसा कि मैंने कहा, परीक्षण के तहत आवेदन के साथ उपयोगकर्ता की बातचीत का अनुकरण करता है। यह कीबोर्ड घटनाओं, माउस क्रियाओं आदि का अनुकरण कर सकता है, लेकिन यदि उपयोगकर्ता ब्राउज़र के आसपास के किसी भी चीज़ को स्वचालित करने की इच्छा रखता है - वेब एप्लिकेशन इंटरैक्शन, तो सेलेनियम बहुत मदद नहीं कर सकता है। इस प्रकार हमें परीक्षण करने के लिए अन्य उपकरणों या क्षमताओं की आवश्यकता होती है।
इस प्रकार, उपरोक्त सभी परिदृश्यों में, हमें यूआई स्वचालन के साथ डेटाबेस परीक्षण करने की आवश्यकता हो सकती है। हम डेटा में हेरफेर करके और उसके प्रतिबिंब को सत्यापित करके व्यावसायिक लॉजिक्स की जांच कर सकते हैं। हम डेटाबेस के तकनीकी पहलुओं की भी जांच कर सकते हैं जैसे सॉफ्ट डिलीट, फील्ड वेलिडेशन आदि।
आइए अब हम वास्तविक कार्यान्वयन के साथ आगे बढ़ते हैं। डेटा स्रोत से डेटा निकालने के लिए सेलेनियम वेबड्राइवर स्क्रिप्ट विकसित करने से पहले, डेटाबेस में टेस्ट डेटा बनाते हैं। इस ट्यूटोरियल के लिए, हम डेटाबेस के रूप में MySQL का उपयोग करेंगे।
डेटाबेस में परीक्षण डेटा का निर्माण
यदि आपने अभी तक डेटाबेस डाउनलोड नहीं किया है, तो इसका उपयोग करके डाउनलोड करें संपर्क । उपयोगकर्ता को डेटाबेस को डाउनलोड और इंस्टॉल करने के लिए कुछ बुनियादी चरणों का पालन करने की उम्मीद है।
= >> इस ट्यूटोरियल को पढ़ें डाउनलोड करें और MySQL डाटाबेस स्थापित करें ।
एक बार डेटाबेस सफलतापूर्वक स्थापित हो जाने के बाद, उपयोगकर्ता MySQL कमांड लाइन प्रॉम्प्ट लॉन्च कर सकता है जो निम्न स्क्रीनशॉट की तरह दिखाई देगा। एप्लिकेशन उपयोगकर्ता से पासवर्ड दर्ज करने के लिए कह सकता है। डिफ़ॉल्ट पासवर्ड 'रूट' है।
ध्यान दें : उपयोगकर्ता डेटाबेस से जुड़ने के लिए इंटरनेट पर GUI आधारित क्लाइंट भी पा सकता है। कुछ को नाम देने के लिए, उपयोगकर्ता क्वेरी ब्राउज़र या वर्क बेंच को डाउनलोड और इंस्टॉल कर सकता है।
नए डेटाबेस का निर्माण
अगला कदम डेटाबेस के साथ संबंध बनाने और प्रश्नों को निष्पादित करने के लिए उन तालिकाओं में संग्रहीत कुछ तालिकाओं और रिकॉर्ड के साथ परीक्षण डेटाबेस बनाना है।
चरण 1) पहले से उपलब्ध सभी डेटाबेस को देखने के लिए 'शो डेटाबेस' टाइप करें
डेटाबेस दिखाएं;
html साक्षात्कार प्रश्न और अनुभवी के लिए उत्तर
चरण 2) 'डेटाबेस उपयोगकर्ता बनाएँ' टाइप करें 'उपयोगकर्ता' नामक एक डेटाबेस बनाने के लिए।
डेटाबेस उपयोगकर्ता बनाएं;
ध्यान दें कि डेटाबेस का नाम उपयोगकर्ता द्वारा बनाया गया है और डेटाबेस की सूची में देखा जा सकता है।
चरण 3) 'उपयोगकर्ता का उपयोग करें?' नए बनाए गए डेटाबेस का चयन करने के लिए। इसके अलावा, टाइप करें 'शो टेबल;' उपयोगकर्ता डेटाबेस में उपलब्ध सभी तालिकाओं को देखने के लिए।
उपयोगकर्ता का उपयोग करें;
तालिका दिखाएं;
ध्यान दें कि 'शो टेबल' के परिणाम में खाली सेट दिखाया गया है; क्वेरी क्योंकि उपयोगकर्ता डेटाबेस के भीतर कोई टेबल उपलब्ध नहीं थे।
आइए अब हम कुछ टेबल बनाते हैं और उनमें रिकॉर्ड जोड़ते हैं।
चरण 4) 4 फ़ील्ड / कॉलम (userId, userName, userAge, userAddress) के साथ एक तालिका बनाने के लिए निम्न कमांड टाइप करें।
तालिका userinfo बनाएँ
()
userId int,
उपयोगकर्ता नाम varchar (255),
उपयोगकर्ता
userAddress varchar (255)
);
अगला कदम 'userinfo' तालिका में कुछ डेटा रिकॉर्ड जोड़ना है।
चरण 5) सभी चार फ़ील्ड 4 फ़ील्ड / कॉलम (userId, userName, userAge, userAddress) के लिए तालिका में डेटा डालने के लिए निम्न कमांड टाइप करें।
userinfo (userID, userName, userAge, userAddress) मान (’1’, ’श्रुति’, ’25’, ’नोएडा’) में डालें;
जोड़े गए डेटा को देखने के लिए, निम्न कमांड टाइप करें:
userinfo से * सेलेक्ट करें;
इसी तरह, आप अपनी तालिका में अधिक डेटा जोड़ सकते हैं और अन्य तालिकाओं को भी बना सकते हैं।
अब, हमने अपना डेटाबेस बना लिया है। हम आगे बढ़ सकते हैं और समझ सकते हैं डेटाबेस से रिकॉर्ड लाने के लिए स्वचालित प्रश्नों का कार्यान्वयन।
जैसा कि हमने पहले भी दोहराया था, सेलेनियम वेबड्राइवर यूआई स्वचालन के लिए एक उपकरण है। इस प्रकार, सेलेनियम वेबड्राइवर अकेले डेटाबेस परीक्षण करने के लिए अयोग्य है, लेकिन यह जावा डेटाबेस कनेक्टिविटी एपीआई (जेडीबीसी) का उपयोग करके किया जा सकता है। एपीआई उपयोगकर्ता को डेटा स्रोत से कनेक्ट करने और बातचीत करने और स्वचालित प्रश्नों की मदद से डेटा लाने की सुविधा देता है। JDBC API का दोहन करने में सक्षम होने के लिए, सिस्टम पर जावा वर्चुअल मशीन (JVM) का होना आवश्यक है।
JDBC वर्कफ़्लो
हम अपना ध्यान निम्नलिखित प्रक्रियाओं के साथ जोड़कर रखेंगे:
- डेटाबेस के साथ संबंध बनाना
- डेटा (CRUD ऑपरेशंस) निकालने / लाने के लिए प्रश्नों को निष्पादित करना और स्टेटमेंट अपडेट करना
- परिणाम सेट के रूप में डेटाबेस से निकाले गए डेटा का उपयोग करना और हेरफेर करना। (परिणाम सेट पंक्तियों और स्तंभों में आयोजित डेटा का एक संग्रह है)
- डेटाबेस कनेक्शन को डिस्कनेक्ट कर रहा है।
जैसा कि पहले कहा गया था, हमारे सेलेनियम वेबड्राइवर परीक्षण स्क्रिप्ट से डेटाबेस को स्वचालित रूप से परीक्षण करने में सक्षम होने के लिए, हम अपने परीक्षण स्क्रिप्ट के भीतर JDBC कनेक्टिविटी के माध्यम से डेटाबेस से जुड़ेंगे। कनेक्शन पर पोस्ट, हम डेटाबेस पर कई CRUD (क्रिएट, रीड, अपडेट और डिलीट) ऑपरेशंस को ट्रिगर कर सकते हैं।
इस ट्यूटोरियल में, हम 'ऑपरेशन और उसके वेरिएंट पढ़ें' और सेलेनियम वेबड्राइवर स्क्रिप्ट में उनके कार्यान्वयन के बारे में चर्चा करेंगे। लेकिन उससे पहले, हमें 'MySQL कमांड लाइन' का उपयोग करके मैन्युअल रूप से परीक्षण परिदृश्य की जांच करनी चाहिए।
परिदृश्य:
1) डेटाबेस सर्वर खोलें और 'उपयोगकर्ता' डेटाबेस से कनेक्ट करें।
दो) 'Userinfo' तालिका से सभी रिकॉर्डों को सूचीबद्ध करें।
वाक्य - विन्यास: userinfo से * सेलेक्ट करें;
3) डेटाबेस कनेक्शन बंद करें।
ध्यान दें कि पढ़ी गई क्वेरी यूज़रऑनफ़ तालिका में मौजूद सभी उपयोगकर्ता डेटा को सूचीबद्ध करेगी। तालिका में निम्नलिखित कॉलम शामिल हैं।
- यूज़र आईडी
- उपयोगकर्ता नाम
- उपयोगकर्ता
- userAddress
परिणाम यह भी दर्शाता है कि तालिका के भीतर केवल एक एकल डेटा सेट मौजूद है।
अब, Java क्लास का उपयोग करके उसी परिदृश्य को निष्पादित करते हैं।
डेटाबेस तक पहुंचने में सक्षम होने के लिए, उपयोगकर्ता को डेटाबेस से जुड़ने के लिए उपलब्ध विभिन्न कनेक्टर विकल्पों में से चुनने के लिए उत्तोलन किया जाता है। अधिकांश डेटाबेस कनेक्टर स्वतंत्र रूप से 'जार' फ़ाइलों के रूप में वितरित किए जाते हैं। जैसा कि हम MySQL का उपयोग डेटा स्रोत के रूप में कर रहे हैं, इसलिए हमें MySQL के लिए जार फ़ाइल को डाउनलोड करना आवश्यक है।
जार फ़ाइल से डाउनलोड किया जा सकता है: यहां या यहां।
चरण 1 : पहला और सबसे महत्वपूर्ण कदम यह है कि परियोजना के निर्माण पथ को कॉन्फ़िगर करें और बाहरी पुस्तकालय के रूप में 'mysql-कनेक्टर-जावा-3.1.13-bin.jar' फ़ाइल जोड़ें।
चरण 2 : 'DatabaseTesingDemo' नाम से एक जावा वर्ग बनाएँ।
चरण 3 : उपरोक्त चरण में बनाई गई कक्षा में नीचे दिए गए कोड को कॉपी और पेस्ट करें।
कोड नमूना
import org.junit.After; import org.junit.Before; import org.junit.Test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class DatabaseTesingDemo { // Connection object static Connection con = null; // Statement object private static Statement stmt; // Constant for Database URL public static String DB_URL = 'jdbc:mysql://localhost:3306/user'; // Constant for Database Username public static String DB_USER = 'root'; // Constant for Database Password public static String DB_PASSWORD = 'root'; @Before public void setUp() throws Exception { try{ // Make the database connection String dbClass = 'com.mysql.jdbc.Driver'; Class.forName(dbClass).newInstance(); // Get connection to DB Connection con = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); // Statement object to send the SQL statement to the Database stmt = con.createStatement(); } catch (Exception e) { e.printStackTrace(); } } @Test public void test() { try{ String query = 'select * from userinfo'; // Get the contents of userinfo table from DB ResultSet res = stmt.executeQuery(query); // Print the result untill all the records are printed // res.next() returns true if there is any next record else returns false while (res.next()) { System.out.print(res.getString(1)); System.out.print(' ' + res.getString(2)); System.out.print(' ' + res.getString(3)); System.out.println(' ' + res.getString(4)); } } catch(Exception e) { e.printStackTrace(); } } @After public void tearDown() throws Exception { // Close DB connection if (con != null) { con.close(); } } }
उपरोक्त कोड का आउटपुट है:
1 श्रुति 25 नोएडा
2 श्रीवास्तव 55 मुंबई
स्टेटमेंट वेरिएंट पढ़ें
जहां सिंगल कंडीशन के साथ क्लॉज हो
स्ट्रिंग क्वेरी = 'userinfo से चयन करें * जहां userId = '' + 1 + '‘ ';
ResultSet Res = stmt.executeQuery (क्वेरी);
कैसे एक पृष्ठ अनुप्रयोग बनाने के लिए कोणीय का उपयोग कर
आउटपुट:
1 श्रुति 25 नोएडा
जहां कई शर्तों के साथ खंड
स्ट्रिंग पता = 'मुंबई';
स्ट्रिंग क्वेरी = 'userinfo से चयन करें * जहां userId = '' + 2 + 'select और userAddress ='' + पता + 'select';
ResultSet Res = stmt.executeQuery (क्वेरी);
आउटपुट:
2 श्रीवास्तव 55 मुंबई
UserId प्रदर्शित करें
स्ट्रिंग क्वेरी = 'userinfo से userId चुनें';
ResultSet Res = stmt.executeQuery (क्वेरी);
आउटपुट:
1
दो
जहां खंड के साथ userId प्रदर्शित करें
स्ट्रिंग पता = 'नोएडा';
स्ट्रिंग क्वेरी = 'उपयोगकर्ता का चयन करें, यूजरनेम से यूजरनेम जहां userAddress = '' + पता + 'select';
ResultSet Res = stmt.executeQuery (क्वेरी);
आउटपुट:
दो
श्रीवास्तव
इस प्रकार, उसी तरह उपयोगकर्ता डेटाबेस पर विभिन्न प्रश्नों का निष्पादन कर सकता है।
इसके साथ, परिणाम पहुंच के तरीकों पर भी कुछ प्रकाश डालते हैं।
परिणाम पहुंच के तरीके:
विधि का नाम | विवरण |
---|---|
डबल गेटडबल () | परिणाम सेट से डबल टाइप डेटा प्राप्त करने के लिए विधि का उपयोग किया जाता है |
स्ट्रिंग getString () | परिणाम सेट से स्ट्रिंग प्रकार के डेटा को लाने के लिए विधि का उपयोग किया जाता है |
int getInt () | परिणाम सेट से पूर्णांक प्रकार के डेटा को लाने के लिए विधि का उपयोग किया जाता है |
बूलियन getBoolean () | परिणाम सेट से बूलियन मूल्य प्राप्त करने के लिए विधि का उपयोग किया जाता है |
फ्लोट getFloat () | परिणाम सेट से फ्लोट टाइप डेटा प्राप्त करने के लिए विधि का उपयोग किया जाता है |
लंबा गेटलॉन्ग () | परिणाम सेट से लंबी टाइप डेटा प्राप्त करने के लिए विधि का उपयोग किया जाता है |
शॉर्ट गेटशॉर्ट () | परिणाम सेट से शॉर्ट टाइप डेटा प्राप्त करने के लिए विधि का उपयोग किया जाता है |
तिथि प्राप्त करें () | विधि सेट परिणाम से दिनांक प्रकार ऑब्जेक्ट लाने के लिए उपयोग किया जाता है |
परिणाम नेविगेशन के तरीके:
विधि का नाम | विवरण |
---|---|
बूलियन अगला () | परिणाम सेट में अगले रिकॉर्ड पर जाने के लिए विधि का उपयोग किया जाता है |
बूलियन पिछला () | परिणाम सेट में पिछले रिकॉर्ड पर जाने के लिए विधि का उपयोग किया जाता है |
बूलियन पहले () | परिणाम सेट में पहले रिकॉर्ड पर जाने के लिए विधि का उपयोग किया जाता है |
बूलियन अंतिम () | परिणाम सेट में अंतिम रिकॉर्ड पर जाने के लिए विधि का उपयोग किया जाता है |
बूलियन निरपेक्ष (int rowNumber) | परिणाम सेट में विशिष्ट रिकॉर्ड पर जाने के लिए विधि का उपयोग किया जाता है |
निष्कर्ष
इस ट्यूटोरियल के माध्यम से, हमने आपको इस अवधारणा से परिचित कराने का प्रयास किया स्वचालित डेटाबेस परीक्षण । हमने डेटाबेस परीक्षण के तकनीकी निहितार्थ और जरूरतों पर स्पष्ट रूप से जोर दिया।
चूंकि हमारी पूरी श्रृंखला सेलेनियम पर केंद्रित थी, इसलिए पाठक गुमराह हो सकता है और यह धारणा बना सकता है कि यह ट्यूटोरियल सेलेनियम का उपयोग करके डेटाबेस परीक्षण करना सिखाएगा, लेकिन जैसे मैंने कई बार पहले उल्लेख किया था, कुछ भी जो यूआई परीक्षण की परिधि के बाहर है। , सेलेनियम द्वारा नियंत्रित नहीं किया जा सकता है। इसलिए हम सेलेनियम वेबड्राइवर स्क्रिप्ट के भीतर कोड को एम्बेड करके डेटाबेस परीक्षण करने के लिए जावा डेटाबेस कनेक्टिविटी (JDBC) एपीआई का परिचय देते हैं।
JDBC जावा वर्ग के लिए डेटाबेस से कनेक्ट करना, डेटाबेस से डेटा पुनर्प्राप्त करना या तथ्य की बात के लिए किसी भी CRUD ऑपरेशन को करना, परिणामी डेटा में हेरफेर करना और कनेक्शन को बंद करना संभव बनाता है।
इस प्रकार, ट्यूटोरियल उपर्युक्त प्रक्रिया के बुनियादी नमूना कार्यान्वयन का गठन करता है।
अगला ट्यूटोरियल # 29 : हम उन्नत सेलेनियम विषयों के साथ आगे बढ़ेंगे। अगले ट्यूटोरियल में, हम सेलेनियम जीआरआईडी को कवर करेंगे - जिसका उपयोग तब किया जाता है जब आपको मल्टी-ब्राउज़र परीक्षण करना होता है और आपके पास बड़ी संख्या में परीक्षण मामले होते हैं।
अनुशंसित पाठ
- डेटाबेस परीक्षण JMeter के साथ
- जेमीटर के साथ सेलेनियम का एकीकरण
- ककड़ी सेलेनियम ट्यूटोरियल: ककड़ी जावा सेलेनियम वेबड्राइवर एकीकरण
- सेलेनियम वेबड्राइवर का परिचय - सेलेनियम ट्यूटोरियल # 8
- सर्वश्रेष्ठ सॉफ्टवेयर परीक्षण उपकरण 2021 (क्यूए टेस्ट स्वचालन उपकरण)
- हमारी पहली वेबड्राइवर स्क्रिप्ट का कार्यान्वयन - सेलेनियम वेबड्राइवर ट्यूटोरियल # 10
- बेस्ट ऑनलाइन सेलेनियम वेबड्राइवर + जावा प्रशिक्षण पाठ्यक्रम
- सेलेनियम के साथ एकीकरण और कार्यात्मक परीक्षण के लिए स्पॉक