Skip to main content

स्क्रीनशॉट कैप्चर के साथ विज़ुअल रिग्रेशन टेस्टिंग

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

सभी बटन पहले से कॉन्फ़िगर किए गए कैप्चर फ़ॉर्म को खोलते हैं। पेज लोड होने के बाद आप प्रारूप और व्यूपोर्ट बदल सकते हैं।

इसके लिए Webshot क्यों

पिक्सेल-सटीक कैप्चर

PNG मोड टेक्स्ट और किनारों को स्पष्ट बनाए रखता है - जो पिक्सेल-डिफिंग टूल (`pixelmatch`, ImageMagick `compare`) के लिए आदर्श है, जहाँ JPG कम्प्रेशन का शोर गलत पॉजिटिव परिणाम दे सकता है।

हर बार समान व्यूपोर्ट

Webshot हर रन पर बिल्कुल समान व्यूपोर्ट, स्क्रॉल स्थिति और फ़ॉन्ट-लोडिंग प्रतीक्षा समय पर कैप्चर करता है - जिससे अंतर के परिणाम विश्वसनीय होते हैं।

API-अनुकूल

मुफ्त Webshot API को अपने CI से जोड़ें: प्री-डिप्लॉय और पोस्ट-डिप्लॉय कैप्चर करें, `pixelmatch` के साथ अंतर निकालें, और यदि बदले हुए पिक्सेल थ्रेसहोल्ड से अधिक हैं तो बिल्ड को विफल करें।

कोई हेडलेस-Chrome बॉयलरप्लेट नहीं

Puppeteer सेटअप, फ़ॉन्ट इंस्टॉलेशन, सैंडबॉक्स फ़्लैग्स को छोड़ दें। Webshot ने यह सब हमारे इंफ्रा पर चालू कर रखा है। आपका CI बस एक HTTP कॉल करता है।

विज़ुअल रिग्रेशन टेस्टिंग कैसे कैप्चर करें

  1. उन पेजों को चुनें जिनकी आप निगरानी करना चाहते हैं - होमपेज, मुख्य लैंडिंग पेज, चेकआउट फ्लो, या कहीं भी जहाँ एक रिग्रेशन नुकसान पहुँचा सकता है।
  2. अपने वर्तमान प्रोडक्शन लुक को बेसलाइन करने के लिए प्रत्येक को PNG + डेस्कटॉप_फुल + मोबाइल_फुल पर कैप्चर करें।
  3. अपने अगले डिप्लॉय के बाद, उन्हीं URLs को फिर से कैप्चर करें। `pixelmatch` या ImageMagick के साथ पुराने बनाम नए का अंतर निकालें - 1% से अधिक पिक्सेल परिवर्तन पर मानवीय समीक्षा की आवश्यकता होती है।
  4. इसे CI में जोड़ें: एक प्री-डिप्लॉय हुक स्टेजिंग को कैप्चर करता है, एक पोस्ट-डिप्लॉय हुक प्रोडक्शन को कैप्चर करता है, और यदि अंतर आपके थ्रेसहोल्ड से अधिक हो जाता है तो बिल्ड विफल हो जाता है।

अक्सर पूछे जाने वाले प्रश्न

CI में हेडलेस Chrome का मतलब है Chromium, फ़ॉन्ट, सैंडबॉक्स कर्नल-फ्लैग इंस्टॉल करना, और उन सभी को अपडेट रखना। Webshot के साथ आप इंस्टॉलेशन को पूरी तरह से छोड़ देते हैं - आपका CI हमारे API पर एक HTTP कॉल करता है और एक PNG वापस प्राप्त करता है। हम Chrome अपडेट, फ़ॉन्ट कैशिंग और SSRF सुरक्षा को संभालते हैं।

हाँ, जब आप PNG + समान व्यूपोर्ट + समान प्रतीक्षा रणनीति का उपयोग करते हैं। Webshot व्यूपोर्ट आकार को पिन करता है और `prefers-reduced-motion` क्वेरी के माध्यम से घोषित किसी भी एनिमेशन के साथ-साथ fonts.ready + network-idle की प्रतीक्षा करता है। रैंडम एनिमेशन (जैसे लॉटी लूप्स, Date.now() बैकग्राउंड) हर रन में अलग-अलग अंतर दिखाएंगे; उन्हें अपने परीक्षण वातावरण में फ्रीज कर दें।

एक कॉल में नहीं - आप प्रत्येक URL को अलग-अलग कैप्चर करते हैं, फिर उन्हें एक अलग लाइब्रेरी से अंतर करते हैं। हम API को कैप्चर पर केंद्रित रख रहे हैं; डिफिंग एक 30-लाइन की स्क्रिप्ट है। उदाहरण कोड के लिए `/developers` देखें।

हाँ। Webshot कैप्चर करने से पहले network-idle (500ms तक कोई अनुरोध नहीं) और fonts.ready की प्रतीक्षा करता है, इसलिए React, Vue, Svelte, और Next.js ऐप्स स्क्रीनशॉट से पहले पूरी तरह से रेंडर हो जाते हैं। उन साइटों के लिए जो कभी भी network-idle तक नहीं पहुँचती हैं (जैसे लॉन्ग पोलिंग, वेबसॉकेट), आप API के माध्यम से एक `maxWait` पैरामीटर पास कर सकते हैं।

मुफ्त सार्वजनिक फ़ॉर्म प्रति IP 5/15-मिनट है - जो CI के लिए बहुत कम है। मुफ्त API टियर अधिक उदार है; `/developers` देखें। उच्च-मात्रा वाले रिग्रेशन परीक्षण (प्रति बिल्ड 50+ कैप्चर) के लिए, वाणिज्यिक API प्लान प्रति-IP कैप हटा देता है।

Webshot स्वयं केवल कैप्चर करता है - आप डिफिंग लेयर प्रदान करते हैं। दो-लाइन का समाधान: `npx pixelmatch baseline.png new.png diff.png`। या एक प्रबंधित विज़ुअल-डिफ़ सेवा (Percy, Chromatic, BackstopJS) का उपयोग करें और उनमें Webshot के PNG फ़ीड करें।

कैप्चर करने के लिए तैयार हैं?

मुफ़्त, कोई साइनअप नहीं, कोई वॉटरमार्क नहीं। बस एक URL पेस्ट करें।

📸 कैप्चर फ़ॉर्म खोलें

अन्य उपयोग के मामले: Google Maps स्क्रीनशॉट · WordPress स्क्रीनशॉट · लैंडिंग पेज QA · कानूनी साक्ष्य स्क्रीनशॉट · सोशल मीडिया स्क्रीनशॉट · डेवलपर वर्कफ़्लो स्क्रीनशॉट · सभी देखें →

Share: 𝕏 Twitter Facebook LinkedIn