Chrome for Testing: ब्राउज़र ऑटोमेशन के लिए भरोसेमंद डाउनलोड

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

बैकग्राउंड

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

अपने-आप अपडेट होने की सुविधा: उपयोगकर्ताओं के लिए अच्छी, डेवलपर के लिए मुश्किल

Chrome की सबसे अहम सुविधाओं में से एक, अपने-आप अपडेट होने की सुविधा है. उपयोगकर्ताओं को यह जानकर खुशी होती है कि वे हमेशा ब्राउज़र के अप-टू-डेट और सुरक्षित वर्शन का इस्तेमाल कर रहे हैं. इसमें मॉडर्न वेब प्लैटफ़ॉर्म की सुविधाएं, ब्राउज़र की सुविधाएं, और गड़बड़ियों को ठीक करने से जुड़े अपडेट शामिल हैं.

हालांकि, शुरू से आखिर तक टेस्ट करने वाले सुइट को चलाने वाले डेवलपर के तौर पर, आपकी राय अलग हो सकती है:

  • आपको बार-बार टेस्ट चलाने पर एक जैसे नतीजे चाहिए. हालांकि, ऐसा तब नहीं हो सकता, जब ब्राउज़र एक्ज़ीक्यूटेबल या बाइनरी, दो रन के बीच खुद को अपडेट करने का फ़ैसला करती है.
  • आपको किसी ब्राउज़र के वर्शन को पिन करना है और उस वर्शन नंबर को अपने सोर्स कोड रिपॉज़िटरी में देखना है, ताकि पुरानी कमिट और ब्रांच देखी जा सकें. साथ ही, उस समय के ब्राउज़र बाइनरी के ख़िलाफ़ टेस्ट फिर से चलाए जा सकें.

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

वर्शन वाली ब्राउज़र बाइनरी

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

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

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

समाधान: Chrome for Testing

इन समस्याओं को हल करने के लिए, Chrome for Testing को डिज़ाइन किया गया है. यह Chrome का एक खास वर्शन है, जिसे टेस्टिंग के लिए बनाया गया है. इसमें अपने-आप अपडेट होने की सुविधा नहीं होती है. इसे Chrome के रिलीज़ प्रोसेस में इंटिग्रेट किया गया है और यह Chrome के हर रिलीज़ के लिए उपलब्ध होता है. वर्शन वाली बाइनरी, जो टेस्टिंग के इस्तेमाल के उदाहरण पर बुरा असर डाले बिना, सामान्य Chrome के जितना हो सके उतना करीब हो.

Chrome for Testing बनाने के लिए, हमने Chromium और Chrome के कोडबेस में बदलाव किए हैं. साथ ही, हमने इंफ़्रास्ट्रक्चर सेट अप किया है, ताकि इन बाइनरी को बनाया और अपलोड किया जा सके. ये बाइनरी, सभी चैनलों (स्टेबल, बीटा, डेव, और कैनरी) पर Chrome की रिलीज़ प्रोसेस के साथ-साथ, सार्वजनिक तौर पर उपलब्ध बकेट में अपलोड की जाती हैं.

Chrome for Testing के आस-पास मौजूद इन्फ़्रास्ट्रक्चर, Chrome के अलावा अन्य प्लैटफ़ॉर्म पर भी दिलचस्प अवसर उपलब्ध कराता है. उदाहरण के लिए, हमने पहले Chrome और ChromeDriver के मैचिंग बाइनरी को ढूंढने में आने वाली समस्याओं के बारे में बताया था. ChromeDriver की रिलीज़ प्रोसेस को Chrome for Testing के इन्फ़्रास्ट्रक्चर में इंटिग्रेट करके, इन समस्याओं को पूरी तरह से खत्म किया जा सकता है. इससे उपयोगकर्ताओं को होने वाली इस समस्या को हल करने के साथ-साथ, ChromeDriver के रिलीज़ होने की प्रोसेस को Chrome के रिलीज़ होने की प्रोसेस के साथ अलाइन किया जा सकेगा. साथ ही, ChromeDriver को मैन्युअल तरीके से रिलीज़ करने की प्रोसेस को खत्म किया जा सकेगा.

मुझे Chrome for Testing के बाइनरी कैसे मिलेंगे?

अपने प्लैटफ़ॉर्म के लिए Chrome for Testing के बाइनरी डाउनलोड करने का सबसे आसान तरीका, हमारी @puppeteer/browsers कमांड-लाइन यूटिलिटी का इस्तेमाल करना है. यह npm के ज़रिए उपलब्ध है. यहां कुछ उदाहरण दिए गए हैं:

# Download the latest available Chrome for Testing binary corresponding to the Stable channel.
npx @puppeteer/browsers install chrome@stable

# Download a specific Chrome for Testing version.
npx @puppeteer/browsers install chrome@116.0.5793.0

# Download the latest available ChromeDriver version corresponding to the Canary channel.
npx @puppeteer/browsers install chromedriver@canary

# Download a specific ChromeDriver version.
npx @puppeteer/browsers install chromedriver@116.0.5793.0

अगर आपको इन बाइनरी को डाउनलोड करने के लिए, अपने-आप काम करने वाली स्क्रिप्ट बनानी हैं, तो हम आपकी मदद करेंगे. हम Chrome के हर रिलीज़ चैनल (स्टेबल, बीटा, डेवलपर, कैनरी) के लिए, JSON API एंडपॉइंट के सबसे नए वर्शन उपलब्ध कराते हैं. नवीनतम स्थिति के बारे में खास जानकारी पाने के लिए, Chrome for Testing की उपलब्धता से जुड़ा डैशबोर्ड देखें.