मुख्य कंटेंट तक स्किप करें

परिचय

@powerduck/openapi-cli एक कमांड-लाइन टूल है जो OpenAPI 3.2 दस्तावेज़ के आधार पर वास्तविक सर्वर पर बैच परीक्षण करता है। स्पेसिफ़िकेशन फ़ाइल या URL दें: यह दस्तावेज़ के ऑपरेशन चलाता है, हर प्रतिक्रिया पर असर्शन जाँचता है और तीन प्रारूपों में रिपोर्ट बनाता है।

यह अनुरोध चलाने के लिए @powerduck/openapi-request और $ref संदर्भों को हल करने के लिए @powerduck/openapi-parser का उपयोग करता है।

openapi-cli क्यों इस्तेमाल करें​

  • CI के लिए तैयार — डिफ़ॉल्ट रूप से, शून्य से अलग एग्ज़िट कोड परीक्षण विफलता या निष्पादन त्रुटि बताता है। इसलिए इसे GitHub Actions, GitLab CI या किसी अन्य पाइपलाइन में सीधे जोड़ा जा सकता है।
  • कई प्रोटोकॉल का अंतर्निहित समर्थन — एक ही स्पेसिफ़िकेशन HTTP, SSE, WebSocket, GraphQL, gRPC और MCP ऑपरेशन बता सकता है; एक ही रनर सभी को संभालता है।
  • असर्शन के दो तरीके — सरल जाँच के लिए घोषणात्मक x-tests ऐरे और जटिल मामलों के लिए Postman शैली की pm.test() / pm.expect() स्क्रिप्ट।
  • रिपोर्ट के तीन प्रारूप — मशीन-पठनीय JSON, आसानी से पढ़ा जा सकने वाला रंगीन CLI आउटपुट और अपने-आप में पूर्ण इंटरैक्टिव HTML रिपोर्ट।
  • स्थानीय या दूरस्थ स्पेसिफ़िकेशन — फ़ाइल पथ या http(s):// URL से दस्तावेज़ लोड करें; रीडायरेक्ट का पालन और टाइमआउट सीमा दोनों समर्थित हैं।
  • लचीली फ़िल्टरिंग — मेथड, पथ, टैग या operationId के आधार पर ऑपरेशन चुनें और एक साथ चलने वाले कामों की संख्या सीमित रखें।

समर्थित प्रोटोकॉल​

रनर OpenAPI एक्सटेंशन या प्रतिक्रिया के सामग्री प्रकार से हर ऑपरेशन का प्रोटोकॉल पहचानता है:

प्रोटोकॉलपहचानकर्ताचयन का आधार
HTTPhttpसामान्य ऑपरेशन का डिफ़ॉल्ट
सर्वर से भेजे गए इवेंटsseप्रतिक्रिया का सामग्री प्रकार text/event-stream या x-response-stream: true
WebSocketwebsocketx-protocol: "websocket"
GraphQLgraphqlx-protocol: "graphql"
gRPCgrpcx-protocol: "grpc"
MCPmcpx-protocol: "mcp"

ऑपरेशन या पथ आइटम पर x-protocol एक्सटेंशन देकर प्रोटोकॉल स्पष्ट रूप से तय भी किया जा सकता है।

रिपोर्ट​

चलने के बाद टूल नीचे दिए गए परिणाम बनाता है। फ़ाइलें डिफ़ॉल्ट रूप से ./openapi-cli-report में सेव होती हैं:

  • report.json — पूरा TestReport ऑब्जेक्ट, पढ़ने योग्य ढंग से फ़ॉर्मैट किए गए JSON में।
  • report.html — बाहरी निर्भरता के बिना पूर्ण HTML रिपोर्ट, जिसमें सारांश पट्टी, प्रगति पट्टी, फ़िल्टर बटन और खोली जा सकने वाली परीक्षण पंक्तियाँ होती हैं।
  • मानक आउटपुट — रंगीन CLI सारांश, जिसमें प्रगति पट्टी और हर परीक्षण के असर्शन होते हैं।

कोड से उपयोग​

यही प्रक्रिया लाइब्रेरी के रूप में भी उपलब्ध है। कॉन्फ़िगरेशन हल करें, परीक्षण चलाएँ और फिर ज़रूरी रिपोर्ट जनरेटर चुनें:

import { resolveConfig, runTests, printCliReport, generateJsonReport } from "@powerduck/openapi-cli";

const config = resolveConfig({ spec: "./openapi.json" });
const report = await runTests(config);
printCliReport(report);
generateJsonReport(report, "./reports");

अगले चरण​