ओपन सोर्स / क्रेट.

ब्राउज़र-परीक्षक

"ब्राउज़र-टेस्टर" एक ऐसा उपकरण है जो ब्राउज़र की तरह काम करता है और जिसका उपयोग परीक्षण के लिए किया जाता है। यह पूरी तरह से रस्ट (Rust) प्रोग्रामिंग भाषा में बनाया गया है। यह वास्तविक ब्राउज़र को खोले बिना, डोम (DOM) और इवेंट के व्यवहार की जांच करता है।

जंग। निश्चित रनटाइम। डीओएम परीक्षण।

यह पैकेज किस चीज़ में बेहतर है।

"ब्राउज़र-टेस्टर" का ध्यान पूर्ण ब्राउज़र रेंडरिंग अनुकूलता की बजाय, पूर्वानुमानित फॉर्म/यूआई व्यवहार परीक्षणों पर केंद्रित होता है।

केवल रस्ट भाषा के लिए डिज़ाइन किया गया रनटाइम।

यह एक ही रस्ट (Rust) प्रक्रिया के भीतर चलता है। इसमें किसी बाहरी ब्राउज़र, वेबड्राइवर (WebDriver) या नोड.जेएस (Node.js) की आवश्यकता नहीं होती है।

निश्चित निष्पादन।

यह उपकरण विशेष रूप से बार-बार किए जाने वाले परीक्षणों के लिए डिज़ाइन किया गया है: इसमें एक कृत्रिम घड़ी, पूर्वनिर्धारित यादृच्छिक संख्या जनरेटर, और स्पष्ट टाइमर नियंत्रण एपीआई शामिल हैं।

डीओएम (DOM) और इवेंट टेस्टिंग।

यह उपकरण व्यावहारिक ब्राउज़र जैसे कार्यक्षमता का समर्थन करता है: इसमें सेलेक्टर (चयनकर्ता), इनलाइन स्क्रिप्ट निष्पादन, इवेंट प्रसार और डोम अपडेट शामिल हैं।

तेज़ और स्थानीय प्रतिक्रिया।

फॉर्म-आधारित यूआई परीक्षणों के लिए त्वरित प्रतिक्रिया चक्र, साथ ही त्रुटि संदेशों को केवल सेलेक्टर्स और अपेक्षित/वास्तविक मूल्यों पर केंद्रित रखना।

शुरुआत कैसे करें।

एचटीएमएल का उपयोग करके एक परीक्षण ढांचा (हॉर्नेस) बनाएं, उसमें इंटरैक्शन चलाएं, और डोम (DOM) परिणामों की जांच करें। एक छोटे से परीक्षण ढांचे से शुरुआत करें और फिर टाइमर/नकली एपीआई (timer/mock APIs) के साथ इसे विस्तारित करें।

इंस्टॉल करें।

कार्गो में "browser_tester" जोड़ें।

बुनियादी उदाहरण।

मुख्य एपीआई इंटरफेस।

"हarness" क्रियाओं और कथनों को संयोजित करें।

मुख्य डोम परीक्षण क्रियाएं: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit`, और टेक्स्ट/वैल्यू/चेक्ड/अस्तित्व की जांच के लिए सहायक उपकरण।

निश्चित समय-निर्धारण वाले टाइमर।

असिंक्रोनस (असंगत) व्यवहार को एक कृत्रिम घड़ी के माध्यम से नियंत्रित करें। `advance_time`, `advance_time_to`, `flush` और टाइमर निरीक्षण एपीआई का उपयोग करके समय को निश्चित रूप से आगे बढ़ाएं।

अंतर्निहित मॉक (सिमुलेशन)।

परीक्षणों को अलग-अलग रखने के लिए, `set_fetch_mock`, `enqueue_confirm_response`, और `enqueue_prompt_response` का उपयोग करके फ़ेच प्रतिक्रियाओं और संवाद परिणामों को नियंत्रित करें।

ट्रेस और डायग्नोस्टिक्स (ट्रैकिंग और निदान)।

जब कोई परीक्षण विफल होता है, तो ट्रेस लॉग सक्षम करें और इवेंट/टाइमर प्रवाह को निकालें। यह इवेंट के क्रम और डिफ़ॉल्ट क्रियाओं के व्यवहार को डीबग करने के लिए उपयोगी है।

रनटाइम नीति।

  • "eval" फ़ंक्शन को जानबूझकर समर्थित नहीं किया गया है, ताकि सुरक्षा और पूर्वानुमानितता बनाए रखी जा सके।
  • यह रनटाइम वास्तविक ब्राउज़र के साथ 100% अनुकूलता सुनिश्चित करने के बजाय, व्यावहारिक परीक्षण परिदृश्यों को ध्यान में रखकर बनाया गया है।
  • बाहरी नेटवर्क से होने वाला इनपुट/आउटपुट इस दायरे में शामिल नहीं है; परीक्षण कवरेज के लिए "फेच" मॉक का उपयोग करें।

यदि आपको अपने परीक्षण सेट के लिए अतिरिक्त ब्राउज़र एपीआई की आवश्यकता है, तो कृपया एक मुद्दा (इश्यू) दर्ज करें और उसमें एक सरल उदाहरण (फिक्स्चर) शामिल करें ताकि हम दायरे और प्राथमिकता पर चर्चा कर सकें।