आज हमें Chrome for Testing की जानकारी देते हुए खुशी हो रही है. यह Chrome का एक नया वर्शन है, जो खास तौर पर वेब ऐप्लिकेशन टेस्टिंग और ऑटोमेशन इस्तेमाल के उदाहरणों को टारगेट करता है. यह लेख बताता है कि Chrome टीम को इसकी ज़रूरत क्यों लगी. साथ ही, ऐसे ठोस उदाहरणों के बारे में बताया गया है जहां Chrome for Testing को डेवलपर के तौर पर आपको फ़ायदा मिल सकता है.
बैकग्राउंड
ब्राउज़र की जांच करने की सुविधा, अच्छी क्वालिटी का वेब अनुभव देने के लिए बेहद ज़रूरी है. भले ही, यह अनुभव मैन्युअल तरीके से किया जाए या अपने-आप. साथ ही, ब्राउज़र के लिए सही टेस्टिंग एनवायरमेंट सेट अप करना बहुत मुश्किल काम है. इसकी वजह यह है कि इसकी बार-बार रिपोर्ट, मुख्य वेब डेवलपर की समस्या के तौर पर की जाती है. आज हम एक बदलाव के बारे में एलान कर रहे हैं. उम्मीद है कि इससे यह दर्द कम हो जाएगा.
अपने-आप अपडेट: उपयोगकर्ताओं के लिए बढ़िया और डेवलपर के लिए मुश्किल
Chrome की सबसे खास सुविधाओं में से एक है, अपने-आप अपडेट होने की सुविधा. उपयोगकर्ताओं को यह जानकर खुशी होती है कि वे ब्राउज़र का अप-टू-डेट और सुरक्षित वर्शन चला रहे हैं. इसमें, वेब प्लैटफ़ॉर्म की आधुनिक सुविधाएं, ब्राउज़र की सुविधाएं, और गड़बड़ियों को हमेशा ठीक करना शामिल है.
हालांकि, एंड-टू-एंड टेस्ट का सुइट चलाने वाले डेवलपर के तौर पर, आपका नज़रिया पूरी तरह से अलग हो सकता है:
- आपको बार-बार की जाने वाली जांच में एक जैसे और फिर से बनाए जा सकने वाले नतीजे चाहिए. हालांकि, अगर ब्राउज़र की एक्ज़ीक्यूटेबल या बाइनरी फ़ाइल दो बार चलने के दौरान खुद को अपडेट करने का फ़ैसला ले लेती है, तो ऐसा नहीं हो सकता.
- आपको ब्राउज़र के किसी खास वर्शन को पिन करना हो और उस वर्शन नंबर को अपने सोर्स कोड रिपॉज़िटरी में जांचना हो. इससे आपको पुराने कोड और ब्रांच देखने की सुविधा मिलती है. साथ ही, उस समय से ब्राउज़र बाइनरी के लिए फिर से जांच की जा सकती है.
अपने-आप अपडेट होने वाली ब्राउज़र बाइनरी की मदद से, ऐसा नहीं किया जा सकता. इस वजह से, हो सकता है कि आप अपने-आप होने वाली जांच के लिए Chrome के सामान्य इंस्टॉलेशन का इस्तेमाल न करना चाहें. यह एक बुनियादी अंतर है. पहले की तुलना में, अपने-आप टेस्ट होने की सुविधा देने वाले डेवलपर और सामान्य ब्राउज़र इस्तेमाल करने वाले लोगों के लिए क्या अच्छा होता है.
वर्शन-युक्त ब्राउज़र बाइनरी
अपने-आप अपडेट होने की सुविधा के अलावा, हो सकता है कि आपको किसी खास वर्शन वाली Chrome बाइनरी ढूंढना भी मुश्किल हो. Google जान-बूझकर, Chrome के वर्शन वाले डाउनलोड उपलब्ध नहीं कराता, क्योंकि उपयोगकर्ताओं को वर्शन नंबर की चिंता नहीं करनी चाहिए. उन्हें हमेशा सबसे नए वर्शन पर, जल्द से जल्द अपडेट कर लेना चाहिए. यह उपयोगकर्ताओं के लिए बहुत बढ़िया है, लेकिन उन डेवलपर के लिए परेशानी भरा है जिन्हें Chrome के पुराने वर्शन में गड़बड़ी की रिपोर्ट फिर से चाहिए होती है.
इस तरह की समस्या का एक खास उदाहरण यह है कि आपको ब्राउज़र ऑटोमेशन के लिए, ChromeDriver इस्तेमाल करना है. आपको न सिर्फ़ Chrome बाइनरी डाउनलोड करनी होगी, बल्कि आपको उसके वर्शन वाली ChromeDriver बाइनरी की भी ज़रूरत पड़ेगी. इससे यह पक्का किया जा सकेगा कि दोनों बाइनरी एक साथ काम करती हैं.
इन समस्याओं को ठीक करने का कोई अच्छा तरीका न होने की वजह से, हम जानते हैं कि कई डेवलपर इसके बजाय Chromium (Chrome नहीं) बाइनरी डाउनलोड करते हैं. हालांकि, इस तरीके में कुछ खामियां हैं. पहली बात, 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 बाइनरी को ढूंढने में आने वाली मुश्किलों को Chrome for Testing इन्फ़्रास्ट्रक्चर के साथ ChromeDriver रिलीज़ करने की प्रोसेस के साथ इंटिग्रेट करके, पूरी तरह खत्म किया जा सकता है. उपयोगकर्ता को दी जाने वाली इस समस्या को ठीक करने के अलावा, यह 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 की उपलब्धता का डैशबोर्ड देखें.