
OpenAPI endpoints के लिए स्वचालित REST API फज़र और नकारात्मक परीक्षण उपकरण। बिना कोडिंग प्रयास के हजारों स्व-उपचार परीक्षण उत्पन्न, चलाता और रिपोर्ट करता है, जो सीमा और सुरक्षा परिदृश्यों को कवर करता है।
CATS दस्तावेज़ीकरण https://endava.github.io/cats/ पर उपलब्ध है
REST API फ़ज़र और नेगेटिव टेस्टिंग टूल। बिना किसी कोडिंग प्रयास के मिनटों में हज़ारों स्व-उपचार करने वाले API परीक्षण चलाएँ!
समय कम है? 1-मिनट त्वरित आरंभ मार्गदर्शिका देखें!
एक सरल और न्यूनतम सिंटैक्स का उपयोग करके, सपाट सीखने की वक्र के साथ, CATS (Contract API Testing and Security) आपको बिना किसी कोडिंग प्रयास के मिनटों में हज़ारों API परीक्षण उत्पन्न करने में सक्षम बनाता है।
सभी परीक्षण 160+ फ़ज़र्स (साथ ही निरंतर फ़ज़िंग के लिए 31 रैंडम म्यूटेटर) के पूर्व-निर्धारित सेट के आधार पर स्वचालित रूप से उत्पन्न, चलाए और रिपोर्ट किए जाते हैं।
फ़ज़र्स सीमा परीक्षण, प्रकार बाध्यता, इंजेक्शन और नकारात्मक परिदृश्यों की एक विस्तृत श्रृंखला को कवर करते हैं: बड़े यूनिकोड और नियंत्रण-वर्ण पेलोड से लेकर अनुरोध डेटा प्रकारों और बाधाओं से प्राप्त संदर्भ-निर्भर मानों तक, साथ ही IDOR, PUT आइडेम्पोटेंसी, अपडेट-रीड संगति, सशर्त ETag प्रबंधन, हटाए गए संसाधन की उपलब्धता और संवेदनशील डेटा एक्सपोज़र के लिए स्टेटफुल जाँच तक।
बिना किसी अतिरिक्त सेटअप के, CATS निर्भर संचालनों से पहले उत्पादक POST पथों को क्रमबद्ध करता है, पथों में चौड़ाई-प्रथम तरंगों में फ़ज़र्स निष्पादित करता है, बाद के अनुरोधों में 2XX प्रतिक्रियाओं से सीखे गए पहचानकर्ताओं और बेसलाइनों का पुनः उपयोग करता है, HappyPath DELETE कॉल को रन के अंत तक स्थगित करता है, और प्रतिक्रियाओं को OpenAPI 3.0 और 3.1 स्कीमाओं के विरुद्ध मान्य करता है। आप cats run का उपयोग करके YAML में एंड-टू-एंड कार्यात्मक परीक्षण भी लिख सकते हैं।
# Run the full suite against an OpenAPI contract
cats -c openapi.yml -s http://localhost:8080
# Run a built-in profile (quick, security, compliance, ci, coverage, crash, type-coercion, health-check)
cats -c openapi.yml -s http://localhost:8080 --profile quick
# Run for a fixed time budget, continuing with random mutations if deterministic fuzzers finish early, and enforce a quality gate
cats -c openapi.yml -s http://localhost:8080 --stopAfterTimeInSec 60 --fillTimeBudget --qualityGate "errors<1"
# Lint the OpenAPI contract
cats lint -c openapi.yml
# Inspect dependency-ordered paths or explain a profile/fuzzer
cats list --paths --executionOrder -c openapi.yml
cats explain --type profile security
# Replay a test case or print the equivalent curl command
cats replay Test12
cats replay Test12 --curl
निष्पादन को फ़ॉलो करने और टर्मिनल छोड़े बिना परिणामों का निरीक्षण करने के लिए सामान्य फ़ज़िंग कमांड पर --tui का उपयोग करें:
cats --contract openapi.yml --server http://localhost:8080 --tui
अवलोकन Paths, Run configuration, Response time, HTTP Response Codes, Success/Warnings/Errors, और Fuzzers को CLI और HTML रिपोर्ट के समान शब्दावली का उपयोग करते हुए दिखाता है। fuzzer तालिका सभी उपलब्ध टर्मिनल पंक्तियों का उपयोग करती है; जब पूरी सूची फ़िट न हो तो इसे ब्राउज़ करने के लिए j/k या Page Up/Page Down का उपयोग करें। Execution Details के लिए 2 दबाएँ, Execution summary और Quality gate result के लिए 3, Execution Details by Result Reason के लिए 4, Paths included के लिए 5, या Response Time के अनुसार क्रमबद्ध किए गए निष्पादित परीक्षणों के लिए 6 दबाएँ। Result Reason और Path पंक्तियाँ Enter के साथ उनके मिलते-जुलते परीक्षण खोलती हैं।
किसी परीक्षण का चयन करने के लिए तीर कुंजियों या j/k का उपयोग करें, और उसके request, response, result, trace, और replay command को पूर्ण-स्क्रीन विस्तृत दृश्य में निरीक्षण करने के लिए Enter दबाएँ। परीक्षण सूची में test IDs, fuzzers, paths, scenarios, result reasons, methods, results, और response codes खोजने के लिए / दबाएँ। a, e, w, s, और i क्रमशः all, error, warning, successful, और skipped परिणामों को फ़िल्टर करते हैं। Esc पहले एक सक्रिय खोज को साफ़ करता है और अन्यथा पिछली स्क्रीन पर लौटता है; 1 अवलोकन खोलता है।
इंटरफ़ेस छोड़ने के लिए q दबाएँ। किसी सक्रिय रन के दौरान यह रद्दीकरण का अनुरोध करता है, जहाँ संभव हो वर्तमान परीक्षण पूरा करता है, पहले से लिखे गए परिणामों को सुरक्षित रखता है, और स्थिति 130 के साथ बाहर निकलता है। निष्पादन समाप्त होने के बाद, q सामान्य रूप से बाहर निकलता है।
TUI के लिए कम से कम 80 कॉलम गुणा 24 पंक्तियों का एक इंटरैक्टिव टर्मिनल आवश्यक है और इसे --dryRun के साथ संयोजित नहीं किया जा सकता। यह OpenAPI-समर्थित fuzzing कमांड के लिए उपलब्ध है; स्टैंडअलोन template कमांड सामान्य CLI आउटपुट का उपयोग करना जारी रखता है। TUI डिफ़ॉल्ट रूप से सबसे हाल के 10,000 परीक्षण विवरण रखता है; भिन्न सकारात्मक सीमा चुनने के लिए --tuiMaxResults का उपयोग करें। पुराने विवरण हटाए जाने पर भी समग्र आँकड़े पूरे रन को कवर करना जारी रखते हैं।
यह CATS का उपयोग कैसे करें पर चरण-दर-चरण मार्गदर्शिकाओं वाले लेखों की एक सूची है: