OpenAPI → टेस्ट केस

ब्राउज़र में चलता है ऑटोमेशन

स्पेसिफ़िकेशन पार्स करके हर operation के लिए टेस्ट केस बनाएँ: happy path, ग़ायब ज़रूरी फ़ील्ड, अमान्य type, boundary वैल्यू, अनधिकृत पहुँच और अनपेक्षित स्टेटस कोड — CSV, Markdown या JSON में एक्सपोर्ट किए जा सकते हैं।

गोपनीयता: यह टूल पूरी तरह आपके ब्राउज़र में चलता है। आपका इनपुट कभी आपके डिवाइस से बाहर नहीं जाता।
टूल लोड हो रहा है…

API कॉन्ट्रैक्ट टेस्टिंग क्या है?

API कॉन्ट्रैक्ट किसी इंटरफ़ेस का सहमत विवरण है — उसके एंडपॉइंट, पैरामीटर, रिक्वेस्ट व रिस्पॉन्स स्कीमा और स्टेटस कोड — जो आमतौर पर OpenAPI दस्तावेज़ के रूप में लिखा जाता है। कॉन्ट्रैक्ट टेस्टिंग सर्विस के वास्तविक रिस्पॉन्स की उस विवरण से तुलना करती है, ताकि बदला हुआ फ़ील्ड नाम या टाइप दूसरी तरफ़ को तोड़ने से पहले प्रोड्यूसर या कंज़्यूमर के पास पकड़ा जाए।

गाइड पढ़ें: API टेस्टिंग क्या है? REST API कैसे टेस्ट करें

OpenAPI → टेस्ट केस कैसे इस्तेमाल करें

  1. स्पेसिफ़िकेशन पेस्ट करें (या उदाहरण लोड करें)।
  2. चाहें तो कुछ ख़ास operation तक सीमित करें और अपनी ज़रूरत की श्रेणियाँ चुनें।
  3. एक्सपोर्ट फ़ॉर्मैट चुनें और टेस्ट केस बनाएँ।
  4. तालिका देखें, फिर अपने टेस्ट-मैनेजमेंट टूल के लिए एक्सपोर्ट कॉपी या डाउनलोड करें।

OpenAPI → टेस्ट केस की खूबियाँ

  • OpenAPI 3.x और Swagger 2.0 को JSON या YAML में पार्स करता है और लोकल $ref हल करता है
  • हर operation के लिए happy-path, ज़रूरी फ़ील्ड ग़ायब, अमान्य type, boundary, auth, not-found, दस्तावेज़ित error, method और content-type केस बनाता है
  • path/query पैरामीटर और बॉडी के लिए यथार्थवादी सिंथेटिक वैल्यू वाले उदाहरण रिक्वेस्ट
  • हर केस पर प्राथमिकता, पूर्व-शर्तें, चरण, अपेक्षित स्टेटस और अपेक्षित नतीजा
  • operation और श्रेणी से फ़िल्टर करें; Markdown, JSON या CSV में एक्सपोर्ट करें

OpenAPI → टेस्ट केस का उदाहरण

किताब बनाने वाला endpoint

इनपुट:

लोड किया गया उदाहरण, फ़िल्टर "POST /books": ज़रूरी बॉडी { title (1–200 अक्षर), isbn (^[0-9]{13}$), price 0–10000 }, bearer सुरक्षा, दस्तावेज़ित स्टेटस 201 और 409

आउटपुट:

24 केस, जिनमें:
TC-001 Create a book — valid request succeeds (201)
TC-003 Create a book — body without required field "title" (400)
TC-008 Create a book — wrong type for body field "price" (number → "abc") (400)
TC-017 Create a book — body "price" at below minimum (-1) (400)
TC-019 Create a book — no credentials (401)
TC-022 Create a book — documented 409: ISBN already exists (409)

OpenAPI → टेस्ट केस के बारे में अक्सर पूछे जाने वाले सवाल

कौन-से टेस्ट केस बनते हैं?

हर operation के लिए: happy path, वैकल्पिक पैरामीटर छोड़े जाने पर, ज़रूरी पैरामीटर और बॉडी फ़ील्ड ग़ायब होने पर, अमान्य type, boundary वैल्यू (min/max, लंबाई, आइटम की संख्या), बिना प्रमाणीकरण या निषिद्ध पहुँच, अनजान id (404), दस्तावेज़ित error स्टेटस, असमर्थित method (405) और असमर्थित content type (415)।

क्या मैं सिर्फ़ एक operation पर ध्यान दे सकता हूँ?

हाँ — method, path, operationId, summary या tag से फ़िल्टर करें (जैसे "POST /books" या "createBook") और अपनी ज़रूरत की श्रेणियाँ चुनें।

मैं किन फ़ॉर्मैट में एक्सपोर्ट कर सकता हूँ?

Markdown (wiki या PR के लिए तैयार), JSON (टूलिंग के लिए) और CSV (स्प्रेडशीट या टेस्ट-मैनेजमेंट में इम्पोर्ट के लिए)। तालिका भी CSV में डाउनलोड की जा सकती है।

क्या यह Swagger 2.0 सपोर्ट करता है?

हाँ। OpenAPI 3.x के साथ-साथ Swagger 2.0 के body पैरामीटर, definitions और securityDefinitions भी संभाले जाते हैं।

तकनीकी नोट्स

boundary केस minimum/maximum, exclusive सीमाओं, minLength/maxLength और maxItems से निकाले जाते हैं; जब किसी संख्यात्मक फ़ील्ड पर कोई सीमा न हो, तो शून्य, ऋणात्मक और बहुत बड़ी वैल्यू सुझाई जाती हैं, और बॉडी के साधारण string फ़ील्ड को ख़ाली और 10,000 अक्षरों वाली वैल्यू मिलती है। pattern से कोई केस नहीं बनता, और हर operation के लिए फ़ील्ड के क्रम में अधिकतम आठ boundary केस बनते हैं। सुरक्षा operation-स्तर या वैश्विक security आवश्यकताओं से पढ़ी जाती है।

संदर्भ

  • OpenAPI SpecificationOpenAPI InitiativeREST API के वर्णन का मानक: पाथ, ऑपरेशन, पैरामीटर, स्कीमा, रिस्पॉन्स और सिक्योरिटी स्कीम।
  • JSON Schema SpecificationJSON SchemaJSON दस्तावेज़ की संरचना का वर्णन और वैलिडेशन करने की शब्दावली (टाइप, आवश्यक प्रॉपर्टी, फ़ॉर्मेट)।
  • RFC 9110: HTTP SemanticsIETF · 2022HTTP मेथड, हेडर फ़ील्ड, स्टेटस कोड और कंटेंट निगोशिएशन के अर्थ, वायर वर्ज़न से स्वतंत्र।