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

आज हमें टेस्टिंग के लिए Chrome की सुविधा के बारे में बताते हुए खुशी हो रही है. यह 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 एपीआई एंडपॉइंट ऑफ़र करते हैं (स्टेबल, बीटा, डेव, कैनरी). नई स्थिति की खास जानकारी तुरंत पाने के लिए, Chrome for Testing की उपलब्धता का डैशबोर्ड देखें.