how automate api requests using rest assured
इस ट्यूटोरियल में हम जेनकींस पर टेस्ट स्क्रिप्स को एक्सेप्ट करने के दौरान REST एश्योर्ड का उपयोग करके API रिक्वेस्ट को स्वचालित करना सीखेंगे:
REST API Tutorial Series की दूसरी ट्यूटोरियल में, हमने POSTMAN का उपयोग करके विभिन्न प्रकार के प्रतिक्रिया कोड, REST अनुरोध, REST सर्वोत्तम अभ्यास और API परीक्षण सीखा।
आराम विकास, कार्यान्वयन, पहुंच और फिर निष्पादन में आसानी के कारण वेब सेवाएं दिन-प्रतिदिन लोकप्रिय हो रही हैं। उसके ऊपर, ये हल्के होते हैं और इनका पालन करने के लिए कोई सख्त मानक नहीं होते हैं।
हालाँकि, जब कोई बड़ी संख्या में सेवाएँ मौजूद होती हैं, और उन्हें हर नए बिल्ड में निष्पादित करने की आवश्यकता होती है, तो यह परीक्षक के लिए और परियोजना लागत के लिए एक बुरा सपना बन जाता है। फिर से, कुछ सेवाएं आंतरिक हैं जो परियोजना से संबंधित हैं और कुछ का निर्माण तीसरे पक्ष द्वारा किया जाता है।
इसलिए ऑटोमेशन का विचार आया है। REST सेवाओं को स्वचालित करने के लिए कई उपकरण उपलब्ध हैं जैसे कि-
- vRest
- HttpMaster
- पारसॉफ्ट
- निश्चित होना
RestAssured परीक्षकों के बीच एक लोकप्रिय स्वचालन उपकरण है। आइए देखते हैं कि यह एक पसंदीदा विकल्प क्यों है।
आप क्या सीखेंगे:
क्यों बहाल किया गया?
- यह ओपन-सोर्स है, इसलिए कोई भी संगठन अपनी परियोजना की जरूरतों के लिए इसका उपयोग कर सकता है।
- REST एश्योर्ड एक जावा लाइब्रेरी है इसलिए यह अन्य टूल्स की तरह GUI के रूप में नहीं आती है। यह जावा में REST सेवाओं का परीक्षण करने के लिए एक रूपरेखा है।
- यह स्वचालन स्क्रिप्ट बनाने के लिए एक डोमेन-विशिष्ट भाषा (DSL) प्रदान करता है, जावा जैसी किसी भी मूल भाषा का उपयोग करता है और Restful Web API का परीक्षण करता है।
- यह अनुरोध, प्रतिक्रिया के लिए XML और JSON प्रारूप का समर्थन करता है।
- यह एक हेडलेस क्लाइंट के रूप में कार्य करता है।
- हम उस अनुरोध को कस्टमाइज़ कर सकते हैं जिसे हम इस लाइब्रेरी का उपयोग करके सर्वर को भेजने जा रहे हैं।
- साथ ही, यह जटिल व्यावसायिक तर्क के विभिन्न संयोजन का परीक्षण कर सकता है।
- यह भेजे गए अनुरोध के लिए सर्वर से स्थिति कोड, प्रतिक्रियाएं, प्रतिक्रिया निकाय, हेडर लाने में सक्षम है।
- यह टेस्ट स्क्रिप्ट लिखने की BDD शैली यानि GIVEN-WHEN-THEN के प्रारूप में सक्षम बनाता है ताकि कोई भी व्यवसाय टीम का सदस्य, विशेष रूप से गैर-आईटी पृष्ठभूमि से, इसे भी देख सके और तर्क और परीक्षण कवरेज को समझ सके।
इस ट्यूटोरियल में, हम उन अनुरोधों को स्वचालित करेंगे जो हमने पहले REST API ट्यूटोरियल में POSTMAN के माध्यम से पहले बनाए थे और हम GITHUB नामक एक व्यावसायिक टूल पर भी चर्चा करेंगे।
REST एश्योर्ड का उपयोग करके वेब API अनुरोधों को स्वचालित करना
इस ट्यूटोरियल में, हम एंड-टू-एंड ऑटोमेशन यानी जावा क्लास बनाएंगे और जेनकिंस से इसे निष्पादित करेंगे।
पूर्व-आवश्यकताएं:
- इच्छुक प्राप्तकर्ताओं को ग्रहण आईडीई, मावेन, टेस्टएनजी, रिपोर्टएनजी का कार्य ज्ञान होना चाहिए।
- प्राप्तकर्ता को जेनकिंस के बारे में भी जानकारी होनी चाहिए।
- यदि हम वेब पर तैनात सेवाओं तक पहुँच बना रहे हैं तो इंटरनेट कनेक्शन की आवश्यकता है। मामले में हम स्थानीय रूप से तैनात सेवाओं तक पहुंच रहे हैं, उस स्थिति में, सुनिश्चित करें कि परीक्षक के पास अधिकार है।
- यदि हम किसी भी व्यावसायिक, सुरक्षित साइटों को स्वचालित कर रहे हैं, तो उस स्थिति में, सुनिश्चित करें कि प्राधिकरण टोकन, एपीआई टोकन, एपीआई कुंजी, आदि ठीक से काम कर रहे हैं और परीक्षक को प्रदान किए जाते हैं, जो वर्तमान में स्क्रिप्ट को स्वचालित कर रहा है।
परीक्षण URL
- http://jsonplaceholder.typicode.com ऊपर और चल रहा है
- उपयोगकर्ता के पास वैध क्रेडेंशियल है GitHub
पर्यावरण सेटिंग्स
# 1) ग्रहण आईडीई स्थापित करें
सबसे पहले, हमें आधिकारिक वेबसाइट से ग्रहण आईडीई डाउनलोड करने की आवश्यकता है ग्रहण।
फिर आईडीई स्थापित करें। पथ, JAVA_HOME पर्यावरण चर को सही ढंग से सेट करें। भविष्य के उपयोग के लिए JDK, JRE पथ को संभाल कर रखें। एक बार ग्रहण स्थापित हो जाने के बाद, कार्यक्षेत्र बनाएं / सेट करें और कार्यक्षेत्र खोलें।
मेरे मामले में यह है:
#दो) एक Maven प्रोजेक्ट बनाएं
सुनिश्चित करें कि आपने पर्यावरण चर पर मावेन घर को कॉन्फ़िगर किया है।
# 3) REST-ASSURED, TESTNG, REPORTNG से संबंधित सभी प्रासंगिक, आवश्यक निर्भरता, प्लगइन्स को pom.xml में जोड़ें।
यहाँ एक नमूना pom.xml है।
4.0.0 com restapi 2.9.1-SNAPSHOT jar restapi http://maven.apache.org UTF-8 junit junit 3.8.1 test org.testng testng 6.11 com.jayway.restassured rest-assured 2.9.0 com.jayway.jsonpath json-path 2.2.0 com.jayway.restassured json-schema-validator 2.9.0 com.google.code.gson gson 2.6.2 test org.hamcrest hamcrest-junit 2.0.0.0 org.hamcrest hamcrest-all 1.3 commons-io commons-io 2.4 io.rest-assured rest-assured-common 3.0.1 org.uncommons reportng 1.1.4 test org.testng testng com.google.inject guice 3.0 org.apache.maven.plugins maven-surefire-plugin 2.14.1 ${env} listener org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter Tutorials.xml
# 4) मावेन परियोजनाओं के निर्माण के लिए आवश्यक जार जोड़ें पथ।
आम तौर पर ये लाइब्रेरी फ़ाइल होती हैं जो REST-आश्वासन दिए गए जार, TESTNG, REPORTNG के अंतर्गत आती हैं। भले ही हमने निर्भरता को जोड़ा है, pom.xml फ़ाइल पर प्लगइन, लेकिन फिर भी कभी-कभी त्रुटि आती है इसलिए हमें मावेन परियोजना का मार्ग बनाने के लिए इन जार / पुस्तकालयों को जोड़ना होगा ताकि त्रुटियों को रोका जा सके (यदि कोई हो)।
हालाँकि, जब हम मावेन परियोजनाओं के बजाय जावा परियोजनाएँ बना रहे हैं, उस स्थिति में, हमें इन जार, पुस्तकालयों को संभाल कर रखना चाहिए और जब जरूरत हो तब इसका उपयोग करना चाहिए।
# 5) JENKINS स्थापित करें (विंडोज पर)
Jenkins.io/download/ से जेनकिंस डाउनलोड करें।
अगला, सेटअप खोलें, ठीक से स्थापित होने तक चरणों का पालन करें।
एक बार स्थापित होने के बाद हमें JENKINS शुरू करने की आवश्यकता है, हम कमांड प्रॉम्प्ट से ही कर सकते हैं।
.jar फ़ाइल का उपयोग कैसे करें
C: Program Files Jenkins> java -jar jenkins.war –httpPort = 9090।
एक बार जब उपरोक्त संदेश प्रदर्शित होता है, तो हमें निम्नलिखित संदेश को देखने के लिए कुछ और समय तक प्रतीक्षा करने की आवश्यकता है।
जैसा कि हम उपरोक्त स्क्रीन में अंतिम संदेश देख सकते हैं जहां जेनकिंस पूरी तरह से ऊपर और चल रहा है, इसलिए अब हम निम्नलिखित URL का उपयोग करके जेनकींस को लॉन्च कर सकते हैं।
http: // लोकलहोस्ट: 9090 /
पहली बार इसमें समय लग सकता है लेकिन बाद में यह जल्दी हो जाएगा। उसके बाद, हमें एक उपयोगकर्ता बनाने की आवश्यकता है।
एक बार उपयोगकर्ता बन जाने के बाद, हमें जेनकिंस को पुनः लोड करना होगा और पासवर्ड के साथ यूआई तक पहुंचना होगा।
एक बार जेनकिन स्थापित हो जाने के बाद, हम प्लग इन को जेनकिन्स प्रबंधित करें> ग्लोबल टूल कॉन्फ़िगरेशन (यहां तक कि जेनकिन इंस्टॉलेशन के दौरान) स्थापित कर सकते हैं।
ऑटोमेशन स्क्रिप्ट बनाना
# 6) हम एक नया जावा क्लास बना सकते हैं और इसे टीईएसएनजी में बदल सकते हैं या सीधे एक नया XML फ़ाइल (testng.xml) बनाकर एक TESTNG CLASS बनाएं।
सरलता के लिए, दो जावा कक्षाएं बनाई गई हैं
# 1) Tutorial1.java - इस फाइल में GET, POST, PUT, PATCH, DELETE, LOGREQUEST, LOGRESPONSE, ASSERT जैसे सभी तरीकों का उपयोग एक डमी टेस्टिंग URL का उपयोग करके किया गया है https: jsonplaceholder.typicode.com
भले ही URL ऐसी प्रतिक्रियाएँ देकर मूल URL की तरह व्यवहार करता है लेकिन वास्तव में सर्वर पर कोई संशोधन नहीं किया जाता है। यह केवल वेब सेवाओं के गुणों और प्रतिक्रिया को प्रदर्शित करने के लिए है जब वे किसी ग्राहक से कोई अनुरोध प्राप्त करते हैं।
# 2) Tutorial2.java - इस फ़ाइल में GitHub का वास्तविक समय का उदाहरण है जहां हम एक जिस्ट में जोड़े गए कमेंट को पढ़ेंगे।
ध्यान दें : GitHub को प्रमाणीकरण की आवश्यकता है इसलिए हमें GitHub में लॉग इन करने के बाद एपीआई टोकन या मूल प्राधिकरण तैयार करना होगा - सेटिंग्स या फिर हम POSTMAN से प्राधिकरण टोकन उत्पन्न कर सकते हैं
TESNG.XML
यहां XML फ़ाइल है जो दोनों को निष्पादित करेगी Tutorial1.java तथा Tutorial2.java
प्रदर्शन उद्देश्यों के लिए, मैंने चलाने के लिए सभी तरीकों को छोड़ दिया है और ट्यूटोरियल 1 के केवल एक GET विधि को सक्षम किया है। Java को निष्पादित किया जाना है। हालाँकि, यदि हम निष्पादित सभी विधियों को देखना चाहते हैं, तो हमें TestNG XML फ़ाइल को बदलना होगा। हमारे मामले में TestNG फ़ाइल का नाम testng1.xml है।
अब अगर हम ऊपर अमल करते हैं ग्रहण पर testng1.xml फ़ाइल तो हम निम्नलिखित प्राप्त करेंगे कंसोल आउटपुट।
(TestNGContentHandler) (WARN) अपनी फ़ाइल के शीर्ष पर '' जोड़ने की दृढ़ता से अनुशंसा की जाती है, अन्यथा, TestNG विफल हो सकता है या अपेक्षा के अनुरूप काम नहीं कर सकता है।
(TestNG) रनिंग:
D: RestAssured restapi testng1.xml
*** METHOD प्राप्त करें ***
उपयोगकर्ता - (१) से - (३) शीर्षक - (यदि यह परेशानी है कि व्यायाम दर्दनाक है या शरीर) - (और सही, लेकिन कानून
और सभी चुनाव या अंधों के सुख के लिए हैं
या किसी भी परिणामी दुःख और सुख की निंदा करना
और एक अप्रिय, या असुविधा के शौचालय के लिए और उससे तैयार है;)
*** METHOD ENDS प्राप्त करें ***
————————————————————
अन्य एपीआई ट्यूटोरियल
कुल परीक्षण चलते हैं: 1, विफलताएं: 0, कौशल: 0
————————————————————-
Linux साक्षात्कार अनुभवी के लिए प्रश्न और उत्तर
यहाँ सुइट का परीक्षा परिणाम है।
यहाँ TestNG द्वारा उत्पन्न डिफ़ॉल्ट रिपोर्ट है।
यह रिपोर्ट ReportNG द्वारा बनाई गई रिपोर्ट है।
चूँकि हमने पहले ही ReportNG को कॉन्फ़िगर कर लिया है, इसलिए हम कुल उत्तीर्ण होने के एक स्पष्ट दृश्य की उम्मीद कर सकते हैं, ऊपर की तरह असफल गणना।
कमांड प्रॉम्प्ट का उपयोग करके परीक्षण लिपियों को निष्पादित करना
- हमें कमांड प्रॉम्प्ट शुरू करने की आवश्यकता है
- कार्यस्थान स्थान के रूप में कार्यशील निर्देशिका सेट करें
- बिन / लक्ष्य स्थान का पता लगाएं
- लाइब्रेरी स्थान ढूंढें / बनाएं
- सबसे पहले, हमें एक सेट की जरूरत है, निर्देशिका जहां परियोजना मौजूद है। मेरे मामले में यह D: RestAssured restapi है
- जावा - कीवर्ड
- सीपी - यह क्लासपाथ है, जिसका अर्थ है कि प्रोजेक्ट में जावा क्लास मौजूद है
- लक्ष्य - यह बिन फ़ोल्डर के समान है जब हम जावा प्रोजेक्ट पर काम कर रहे हैं। चूंकि हम मावेन परियोजना पर काम कर रहे हैं, इसलिए हमारे पास यह फ़ोल्डर होगा। इस फ़ोल्डर के अंतर्गत, हमारे पास दो और फोल्डर हो सकते हैं: क्लास, टेस्ट-क्लास। वास्तविक जावा वर्ग इन दो फ़ोल्डरों के बीच मौजूद होगा
- उदारीकरण - इस फोल्डर में वे सभी जार होंगे जो हमने ग्रहण से परीक्षण स्क्रिप्ट को निष्पादित करते समय उपयोग किए हैं। कुछ मामलों में, फ़ोल्डर मौजूद नहीं हो सकता है। इसलिए, हमें एक फ़ोल्डर बनाने और उसके अंदर सभी जार, निष्पादनयोग्य आदि रखने की आवश्यकता हो सकती है।
- org.testng.TestNG testng1.xml - यह एक सिंटेक्स की तरह है। अंतिम भाग testng1.xml TestNG की संसाधन फ़ाइल है, जिसे वांछित परीक्षण स्क्रिप्ट निष्पादित करने के लिए कहा जाएगा
पूरा कमांड होगा
java -cp target / test-classes; target / Classes; lib / * org.testng.TestNG testng1.xml
इसके बाद एंटर दबाएं
ध्यान दें: जब हम जावा प्रोजेक्ट पर काम करते हैं तो हम बिन फ़ोल्डर देख सकते हैं। हालांकि, अगर हम मावेन परियोजना में काम कर रहे हैं तो हमारे पास एक लक्ष्य फ़ोल्डर और सामान्य कक्षाएं होंगी, टेस्ट-क्लास फ़ोल्डर इसके साथ मौजूद होगा।
BAT फ़ाइल और परीक्षा टेस्ट लिपियों का निर्माण
कमांड प्रॉम्प्ट खोलने और परीक्षण स्क्रिप्ट को निष्पादित करने के लिए उपरोक्त कमांड चलाने के बजाय, हम कमांड को टेक्स्ट फाइल में रख सकते हैं और इसे सहेजते समय इसे एक नाम देता है, जैसे:
'Run.bat' (सुनिश्चित करें कि आप run.bat के आसपास 'रखें')
यहां एक बार बनने के बाद यह कैसा दिखता है।
अब 'रन' पर डबल क्लिक करें
कमांड प्रॉम्प्ट खुल जाएगा और यह परीक्षण स्क्रिप्ट को निष्पादित करेगा और एक बार निष्पादन पूरा होने के बाद, कमांड प्रॉम्प्ट बंद हो जाता है।
जेनकेन को मावेन, जावा के साथ एकीकृत करना
हमें मावेन, जावा के साथ एकीकरण करने और इसे निष्पादित करने के लिए जेनकिंस पर 4-5 कॉन्फ़िगरेशन बनाने की आवश्यकता है।
एक बार जब हम जेनकिंस में लॉग इन करते हैं,
गोटो प्रबंधक जेनकींस >> ग्लोबल टूल कॉन्फ़िगरेशन
JDK स्थापना पथ सेट करें
ध्यान दें : सुनिश्चित करें कि जेनकिन का संस्करण JDK / Java संस्करण का समर्थन करता है। जेनकिंस संस्करण 2.73 में कम से कम JDK / JAVA संस्करण 1.8 की आवश्यकता होती है अन्यथा परीक्षण स्क्रिप्ट निष्पादित करते समय यह समस्याएं पैदा करेगा।
मावेन स्थापना पथ सेट करें
उसके बाद, गोटो प्रबंधक जेनकींस >> सिस्टम कॉन्फ़िगर करें
मैक पर 7z फ़ाइलों को कैसे खोलना है
पर्यावरण चर मार्ग सेट करें
अगला, एक नया आइटम बनाएँ
हमें एक नया लिंक बनाने पर क्लिक करना होगा, निर्दिष्ट करें नाम नौकरी के लिए, प्रोजेक्ट के प्रकार का चयन करें फ्रीस्टाइल । अब अन्य चीजों के बारे में चिंता करने की कोई जरूरत नहीं है।
एक बार नौकरी बनने के बाद यह इस तरह दिखेगा।
अब जॉब पर क्लिक करें
नीचे दिए गए चरणों का पालन करें:
- बाईं ओर के पैनल पर कॉन्फ़िगर लिंक पर क्लिक करें।
- सामान्य टैब को नीचे स्क्रॉल करें और उन्नत बटन पर क्लिक करें।
- कस्टम कार्यस्थान चेकबॉक्स चुनें और प्रोजेक्ट फ़ोल्डर स्थान निर्दिष्ट करें।
उसके बाद
- ट्रिगर बनाने के लिए और नीचे स्क्रॉल करें
- समय-समय पर चेकबॉक्स बनाएँ
- नीचे बताए अनुसार कुछ समय निर्धारित करें
नीचे स्क्रॉल करें, बिल्ड का नाम सेट करें। हमारे मामले में, यह एक निष्पादन योग्य विंडोज बैच कमांड है।
यह उसी स्थान पर है, जहाँ हमने run.bat फ़ाइल पहले रखी है जो D: RestAssured restapi फ़ोल्डर है
अब तक किए गए उपरोक्त सभी परिवर्तनों को सहेजें।
अब, क्रॉन नौकरी चलाने के लिए प्रतीक्षा करें। हम देख सकते हैं कि निर्माण शुरू किया गया है।
एक बार जब बिल्ड सफलतापूर्वक निष्पादित हो जाता है, तो अगली बार हमें बिल्ड # 20 पर क्लिक करना होगा जैसा कि उपरोक्त छवि में निर्दिष्ट है।
पर क्लिक करें कंसोल आउटपुट बाएं पैनल में लिंक।
अब हमें निम्नलिखित आउटपुट देखने में सक्षम होना चाहिए।
निष्कर्ष
REST API की भाषा के बावजूद स्वचालित करने के लिए REST ASSURED एक बहुत ही उपयोगी JAVA लाइब्रेरी है। इसमें कई इनबिल्ट विकल्प हैं। इसके अलावा, इसमें कई संस्करण हैं जिनमें दिलचस्प फ़ंक्शन, विकल्प शामिल हैं। यह अनुरोध के रूप में कई स्वरूपों का समर्थन करता है जैसे XML, JSON, आदि।
इस ट्यूटोरियल में, हमने जेनकिंस का उपयोग करके परीक्षण स्क्रिप्ट निष्पादित करते समय RESTAssured का उपयोग करके एपीआई अनुरोधों को स्वचालित करने का तरीका बताया। हमने यह भी बताया कि एपीआई अनुरोधों को स्वचालित करने के लिए रेस्ट एश्योर्ड एक बेहतर विकल्प क्यों है।
हमें उम्मीद है कि आपको यह आराम एपीआई ट्यूटोरियल श्रृंखला पढ़ने में मज़ा आया होगा!
अनुशंसित पाठ
- बीडीडी दृष्टिकोण का उपयोग करके ककड़ी के साथ रीस्ट एपीआई परीक्षण
- 2021 में 10 सर्वश्रेष्ठ एपीआई परीक्षण उपकरण (SOAP और REST API परीक्षण उपकरण)
- स्प्रिंग रिस्टेमप्लेट और टेस्टएनजी के साथ रीस्ट एपीआई परीक्षण
- JMeter में HTTP रिक्वेस्ट के साथ कार्य करना
- पोस्टमैन ट्यूटोरियल: एपीआई टेस्ट पोस्टमैन का उपयोग करना
- शीर्ष 20 सबसे महत्वपूर्ण एपीआई परीक्षण साक्षात्कार प्रश्न और उत्तर
- शीर्ष 10 सर्वश्रेष्ठ एपीआई प्रबंधन उपकरण फ़ीचर तुलना के साथ
- शीर्ष 36 जेनकिंस साक्षात्कार प्रश्न (2021 के लिए)