टेस्टिंग करना ज़रूरी है. उपयोगकर्ताओं को अपनी बनाई गई साइट, ऐप्लिकेशन या नई सुविधा डिलीवर करने से पहले, यह जांच करना ज़रूरी है कि वह ठीक से काम कर रही है या नहीं. हालांकि, अब भी बहुत सारी जांच मैन्युअल तरीके से की जाती है. इसके लिए, सहकर्मियों या टेस्ट इंजीनियर से नई सुविधा की जांच करने और समस्याओं की शिकायत करने के लिए कहा जाता है.
मैन्युअल तरीके से की जाने वाली इस जांच से, कुछ तरह की समस्याएं पता चल सकती हैं. हालांकि, इससे कई और समस्याएं पता नहीं चल सकतीं. जांच करने वाले लोग, ऐप्लिकेशन के किसी खास तरीके से इस्तेमाल करने के उदाहरणों को देखना भूल सकते हैं या ऐप्लिकेशन के किसी खास तरीके से इस्तेमाल करने की जांच पूरी तरह से नहीं कर पाते. साथ ही, उनके पास वह पूरी जानकारी नहीं होती जो कोड लिखते समय आपके पास थी. उन्हें उन खास समस्याओं के बारे में पता नहीं होता जिनसे बचने के लिए आपने कोड शामिल किया था. साथ ही, समय बीतने और नई सुविधाओं के जोड़े जाने के बाद, क्या वे वापस जाकर उन सभी चीज़ों की फिर से जांच करेंगे जो पहले काम कर रही थीं, ताकि यह पक्का किया जा सके कि बदलावों की वजह से उनमें कोई गड़बड़ी तो नहीं हुई है?
इसलिए, Chrome की टीम ऑटोमेटेड टेस्टिंग की अहमियत को समझती है. किसी ऐसे टेस्ट सुइट का इस्तेमाल करके, जो आपके फ़ीचर के काम न करने की समस्या का बार-बार और भरोसेमंद तरीके से पता लगाता है, आपको यह पक्का करने में मदद मिलती है कि फ़िलहाल और आने वाले समय में डेवलपमेंट के बाद, हर छोटी-छोटी जानकारी की जांच की गई है. किसी सुविधा के डेवलपर के तौर पर आपकी जानकारी को एक जांच में शामिल किया जाता है.
हालांकि, हम जानते हैं कि अपने-आप होने वाली टेस्टिंग मुश्किल हो सकती है. इसलिए, Chrome टीम यहां दिए गए टूल और दिशा-निर्देश उपलब्ध कराती है, ताकि आपके लिए यह प्रोसेस आसान हो सके.
Puppeteer
Puppeteer एक Node.js लाइब्रेरी है. इसकी मदद से, Chrome, Chromium, और Firefox को आसानी से इस्तेमाल किए जा सकने वाले हाई-लेवल एपीआई की मदद से ऑटोमेट किया जा सकता है.
यह एपीआई मूल रूप से Chrome DevTools प्रोटोकॉल पर आधारित था. हालांकि, इस साल के आखिर तक, नए और बेहतर WebDriver BiDi प्रोटोकॉल को Puppeteer का आधार बनाने का मकसद है. WebDriver BiDi को सभी बड़े ब्राउज़र वेंडर ने मिलकर बनाया है. इससे ऑटोमेशन के कई इस्तेमाल के उदाहरणों को आसान बनाया जा सकता है. साथ ही, कई नए उदाहरणों को भी इस्तेमाल किया जा सकता है. यह सभी ब्राउज़र के साथ काम करता है.
में, WebDriver BiDi के बारे में ज़्यादा जानें.हालांकि, आपको इंतज़ार करने की ज़रूरत नहीं है. Puppeteer का एपीआई, ऑटोमेशन के कई उदाहरणों के लिए पहले से ही काम कर रहा है. WebDriver BiDi की मदद से, इन उदाहरणों को और बेहतर बनाया जा सकता है. पेज इंटरैक्शन, अनुरोध को इंटरसेप्ट करना, और स्क्रीनशॉट जैसी सुविधाओं की मदद से, जांच करने से लेकर विज़ुअल क्रॉल करने और प्रोसेस को ऑटोमेट करने तक, बहुत कुछ किया जा सकता है. इसका इस्तेमाल, WebGPU और WebGL का इस्तेमाल करके, क्लाउड में अपने वेब एआई मॉडल की जांच करने के लिए भी किया जा सकता है.
Puppeteer का इस्तेमाल, WebdriverIO जैसे टूल भी करते हैं. यह एक ब्राउज़र टेस्टिंग फ़्रेमवर्क है. साथ ही, Privacy Sandbox विश्लेषण टूल भी Puppeteer का इस्तेमाल करता है. इससे आपको अपनी साइट पर कुकी और उपयोगकर्ता के डेटा के इस्तेमाल को बेहतर तरीके से समझने में मदद मिलती है.
Chrome Headless
अगर आपने कभी Puppeteer का इस्तेमाल करके Chrome को ऑटोमेट किया है, तो हो सकता है कि आपको पता चला हो कि जांच के दौरान कोई ब्राउज़र विंडो नहीं दिखती. Puppeteer, डिफ़ॉल्ट रूप से Chrome को Headless मोड में शुरू करता है. इसका मतलब है कि ऑटोमेशन चलने के दौरान, कोई असल ब्राउज़र विंडो नहीं होती.
क्या आपको पता है कि Chrome का हेडलेस मोड, सिर्फ़ विंडो के बिना Chrome नहीं है, बल्कि यह Chrome का एक अलग वर्शन है? इस वजह से, लंबे समय तक भ्रम की स्थिति बनी रही और गड़बड़ियों और समस्याओं को ट्रैक करना मुश्किल हो गया.
हमने Chrome 112 में, हेडलेस मोड की नई सुविधा जोड़ी है. यह सुविधा, अब सामान्य Chrome के कोडबेस पर आधारित है. इससे, पहले की उलझन कम होने के साथ-साथ, पहले से उपलब्ध सुविधाओं के साथ-साथ नई सुविधाएं भी मिलती हैं. जैसे, ऑटोमेशन के दौरान एक्सटेंशन का इस्तेमाल करना.
Puppeteer, 22वें वर्शन से इस नए हेडलेस मोड का इस्तेमाल डिफ़ॉल्ट तौर पर कर रहा है. अगर ऑटोमेशन के अन्य तरीकों से Chrome हेडलेस का इस्तेमाल किया जा रहा है, तो --headless=new
कमांड-लाइन स्विच की मदद से, नए हेडलेस मोड को फ़ोर्स किया जा सकता है.
Chrome का नया हेडलेस मोड ज़्यादा बेहतर है, लेकिन यह पुराने हेडलेस मोड जितना हल्का नहीं है. अगर आपके पास संसाधनों की कमी है या आपको Chrome की सभी सुविधाओं की ज़रूरत नहीं है, तो chrome-headless-shell
के तौर पर, बिना ग्राफ़िक यूज़र इंटरफ़ेस वाले पुराने Chrome का इस्तेमाल करें.
Chrome for Testing
जांच करते समय, आपको टेस्टिंग एनवायरमेंट पर बेहतर कंट्रोल की ज़रूरत होती है: ऑपरेटिंग सिस्टम, ब्राउज़र, और ब्राउज़र वर्शन. Chrome के अपने-आप अपडेट होने की सुविधा की वजह से, ऐसा करना मुश्किल हो सकता है.
इसलिए, हमने टेस्टिंग के लिए Chrome बनाया है. यह Chrome का ऐसा वर्शन है जो अपने-आप अपडेट नहीं होता. इसे Chrome के हर वर्शन के साथ, हर मुख्य ऑपरेटिंग सिस्टम के लिए रिलीज़ किया जाता है. साथ ही, इसे वर्शन वाले संग्रह से ऐक्सेस किया जा सकता है. इससे, Chrome के किसी खास वर्शन के लिए, ऑटोमेशन वर्कफ़्लो को बिना किसी परेशानी के चलाया जा सकता है.
Chrome for Testing की उपलब्धता वाले डैशबोर्ड, JSON API या Puppeteer कमांड-लाइन यूटिलिटी से, Chrome for Testing के बाइनरी ऐक्सेस किए जा सकते हैं.
Puppeteer, Chrome का अपडेट किया गया हेडलेस मोड, और Chrome for Testing, हमारी टीम के मौजूदा काम का सिर्फ़ एक हिस्सा है. हमारी टीम, ब्राउज़र ऑटोमेशन और टेस्ट को आपके लिए आसान बनाने के लिए काम कर रही है. साथ ही, DevTools Recorder जैसे मिलते-जुलते टूल, जांच बनाने में आपकी मदद करते हैं: Chrome में उपयोगकर्ता फ़्लो रिकॉर्ड करें और उसे Puppeteer में फिर से चलाएं.
web.dev पर टेस्टिंग के बारे में जानें
इस पोस्ट में बताए गए टूल से, आपको ऑटोमेटेड टेस्टिंग को बेहतर बनाने में मदद मिलेगी. हालांकि, अगर आपने हाल ही में इसकी शुरुआत की है, तो आपको इसे समझने और सीखने में काफ़ी समय लग सकता है. इसलिए, हमने 10 मॉड्यूल वाला एक नया कोर्स बनाया है—web.dev पर टेस्टिंग के बारे में जानें. इस कोर्स में, टेस्टिंग के बुनियादी कॉन्सेप्ट, टेस्ट कहां और कैसे चलाए जाते हैं, टेस्ट के टाइप, और असल में किस चीज़ की जांच करनी है, इस बारे में पूरी जानकारी दी गई है. यह टेस्टिंग की शुरुआत करने के लिए एक बेहतरीन जगह है. ज़रूरी जानकारी हासिल करने के बाद, हमारे टेस्ट ऑटोमेशन कलेक्शन पर जाएं. इसमें, टेस्टिंग से जुड़े खास सवालों के बारे में ज़्यादा जानकारी और काम के सुझाव मिलेंगे.