आसान और ऑटोमेटेड टेस्टिंग के लिए, Chrome के टूल

टेस्टिंग ज़रूरी है. आपने जो कुछ भी बनाया है उसे लोगों तक पहुंचाने से पहले, यह एक अहम चरण होता है. फिर चाहे वह पूरी साइट या ऐप्लिकेशन हो या कोई नई सुविधा हो, ताकि यह पता चल सके कि वह उम्मीद के मुताबिक काम कर रहा है या नहीं. हालांकि, कई तरह की टेस्टिंग अब भी मैन्युअल तरीके से होती है. साथ ही, सहकर्मियों या टेस्ट इंजीनियर ने नई सुविधा की जांच करने और समस्याओं की शिकायत करने के लिए कहा होता है.

Matthias Rohmer
Matthias Rohmer

मैन्युअल तौर पर की गई इस जांच में कुछ समस्याओं का पता चल सकता है, लेकिन कई और समस्याओं का पता लग सकता है. जांच करने वाले लोग, शायद ऐप्लिकेशन में कभी-कभी कुछ खास समस्याओं का सामना न कर पाएं. यह भी हो सकता है कि वे ऐप्लिकेशन का इस्तेमाल कर न पाएं. उनके पास वह जानकारी भी नहीं होती जो कोड लिखते समय आपने उसे दी थी. उन्हें उन खास समस्याओं के बारे में नहीं पता जिनसे बचने के लिए आपने कोड का इस्तेमाल किया था. जैसे-जैसे समय बीतता है और नई सुविधाएं जोड़ी जाती हैं, क्या वे पुरानी काम करने वाली सभी चीज़ों को फिर से आज़माते हैं, ताकि वे यह पक्का कर सकें कि इन बदलावों की वजह से वे ठीक से काम न कर रहे हों?

इसलिए, Chrome टीम ऑटोमेटेड टेस्टिंग की अहमियत में भरोसा करती है. सुविधा के लिए भरोसेमंद और बार-बार जांच करने वाले टेस्ट सुइट का इस्तेमाल करके, यह पक्का किया जा सकता है कि हर छोटी से छोटी जानकारी को अभी और आने वाले समय में डेवलप किए जाने वाले डेवलपमेंट के बाद टेस्ट किया जा रहा है. किसी सुविधा के डेवलपर के तौर पर आपकी जानकारी को जांच में शामिल किया जाता है.

हालांकि, हम जानते हैं कि ऑटोमेटेड टेस्टिंग थोड़ा मुश्किल हो सकती है. इसलिए, Chrome की टीम आपको नीचे दिए गए टूल और दिशा-निर्देश उपलब्ध कराती है, ताकि आपको बिना किसी रुकावट के काम करने में आसानी हो.

पपीटीयर

Puppeteer एक Node.js लाइब्रेरी है. यह आपको Chrome, Chromium, और Firefox को इस्तेमाल में आसान और हाई-लेवल एपीआई से ऑटोमेट करने देता है.

वैसे तो यह एपीआई मूल रूप से Chrome DevTools प्रोटोकॉल पर आधारित था. हालांकि, इसका मकसद साल के आखिर तक नए और बेहतर WebDriver BiDi प्रोटोकॉल को Puppeteer की बुनियाद बनाना है. WebDriver BiDi को सभी बड़े ब्राउज़र वेंडर ने मिलकर बनाया है. यह ऑटोमेशन से इस्तेमाल के कई उदाहरणों को आसान बनाता है और कई नए उदाहरणों को चालू करता है. साथ ही, यह क्रॉस-ब्राउज़र के साथ काम करता है.

हालांकि, आपको इंतज़ार करने की ज़रूरत नहीं है. Puppeteer का API पहले से ही, ऑटोमेशन के कई इस्तेमाल को चालू करता है. इनमें सिर्फ़ WebDriver BiDi की मदद से सुधार होता है. पेज इंटरैक्शन, इंटरसेप्ट करने का अनुरोध, और स्क्रीनशॉट जैसी सुविधाओं की मदद से, टेस्टिंग, विज़ुअल क्रॉलिंग, और प्रोसेस ऑटोमेशन तक बहुत कुछ किया जा सकता है. यहां तक कि इसका इस्तेमाल WebGPU और WebGL का इस्तेमाल करके, क्लाउड में अपने वेब एआई (AI) मॉडल की जांच करने के लिए भी किया जा सकता है.

Puppeteer का इस्तेमाल WebdriverIO, पूरे ब्राउज़र के लिए टेस्ट फ़्रेमवर्क, और प्राइवसी सैंडबॉक्स विश्लेषण टूल जैसे टूल भी करते हैं. इनकी मदद से, अपनी साइट पर कुकी और उपयोगकर्ता के डेटा के इस्तेमाल को बेहतर तरीके से समझा जा सकता है.

Chrome हेडलेस

अगर आपने कभी भी Puppeteer का इस्तेमाल करके Chrome को ऑटोमेट किया है, तो आपको पता चला होगा कि टेस्ट के दौरान कोई ब्राउज़र विंडो नहीं दिखती. डिफ़ॉल्ट रूप से Puppeteer, Chrome को हेडलेस मोड में शुरू करता है. इसका मतलब है कि ऑटोमेशन के चलने के दौरान, कोई असल ब्राउज़र विंडो नहीं दिखती.

क्या आपको पता है कि Chrome का बिना ग्राफ़िक यूज़र इंटरफ़ेस (यूआई) मोड, सिर्फ़ Chrome की विंडो के बिना नहीं, बल्कि Chrome का ऐसा वर्शन है जिसे अलग से मैनेज किया जाता है? लंबे समय तक भ्रम की स्थिति पैदा होती है और बग और समस्याओं को ट्रैक करना मुश्किल होता है.

Chrome 112 से हमने एक नया हेडलेस मोड लॉन्च किया है, जो अब सामान्य Chrome के कोडबेस पर आधारित है. इससे न सिर्फ़ पिछली उलझनें कम होती हैं, बल्कि ऐसी सुविधाएं भी मिलती हैं जो पहले मुमकिन नहीं थीं, जैसे कि ऑटोमेशन के दौरान एक्सटेंशन का इस्तेमाल करना.

Puppeteer (Puppeteer) इस नए हेडलेस मोड का इस्तेमाल वर्शन 22 से डिफ़ॉल्ट रूप से कर रहा है. अगर अन्य ऑटोमेशन सलूशन के ज़रिए Chrome हेडलेस का इस्तेमाल किया जा रहा है, तो --headless=new कमांड लाइन स्विच की मदद से, बिना ग्राफ़िक यूज़र इंटरफ़ेस वाले नए मोड का इस्तेमाल किया जा सकता है.

Chrome का नया हेडलेस मोड ज़्यादा दमदार है, लेकिन यह पुराने हेडलेस मोड जितना हल्का नहीं है. अगर आपके पास सीमित संसाधनों का ऐक्सेस है या आपको Chrome की सभी सुविधाओं की ज़रूरत नहीं है, तो बिना ग्राफ़िक यूज़र इंटरफ़ेस वाले पुराने मोड को chrome-headless-shell के तौर पर इस्तेमाल करें.

Chrome for Testing

टेस्ट करते समय, आपको अपने टेस्टिंग एनवायरमेंट पर बेहतर कंट्रोल की ज़रूरत होती है: ऑपरेटिंग सिस्टम, ब्राउज़र, और ब्राउज़र वर्शन. Chrome के अपने-आप अपडेट होने पर यह काम करना मुश्किल हो सकता है.

इसलिए, हमने Chrome for Testing बनाया है. यह Chrome का ऐसा वर्शन है जो अपने-आप अपडेट नहीं होता. यह Chrome के हर वर्शन के साथ-साथ, हर बड़े ऑपरेटिंग सिस्टम के लिए रिलीज़ किया गया है, जिसे वर्शन वाले संग्रह से ऐक्सेस किया जा सकता है. इससे आपको Chrome के किसी खास वर्शन पर अपने ऑटोमेशन वर्कफ़्लो चलाने में मदद मिलती है.

Chrome for Testing की उपलब्धता डैशबोर्ड, JSON एपीआई या Puppeteer कमांड-लाइन यूटिलिटी से Chrome for Testing बाइनरी को ऐक्सेस करें.


Puppeteer, Chrome का अपडेट किया हुआ हेडलेस मोड और Chrome for Testing उन कामों का ही हिस्सा हैं जो हमारी टीम इस समय ब्राउज़र ऑटोमेशन बनाने और आपके लिए टेस्ट चलाने को आसान बनाने के लिए कर रही है. साथ ही, DevTool Recorder जैसे मिलते-जुलते टूल, टेस्ट बनाने में आपकी मदद करते हैं: Chrome में यूज़र फ़्लो रिकॉर्ड करें और उसे Puppeteer में फिर से चलाएं.

web.dev पर टेस्ट करना सीखें

इस पोस्ट में बताए गए टूल, ऑटोमेटेड टेस्टिंग को बेहतर बनाने में आपकी मदद करेंगे. हालांकि, अगर आपने अभी शुरुआत की है, तो आपको काफ़ी चीज़ें समझने और सीखने में काफ़ी मदद मिल सकती है. इसलिए, हमने 10 मॉड्यूल कोर्स बनाया है—web.dev पर टेस्टिंग सीखें. इस कोर्स में कई विषयों के बारे में जानकारी दी गई है: टेस्टिंग के मुख्य सिद्धांत, टेस्ट कहां और कैसे चलाए जाते हैं, टेस्ट टाइप, और असल में क्या टेस्ट करना है. यह आपकी टेस्टिंग के सफ़र की शुरुआत का एक बेहतरीन पॉइंट है. जब आपके पास ज़रूरी टूल हों, तब हमारे टेस्ट ऑटोमेशन कलेक्शन पर जाएं. इसमें आपको बारीकी से जानकारी देने और टेस्टिंग से जुड़े खास सवालों के बारे में सलाह दी जाएगी.