Chrome for Testing

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

बैकग्राउंड

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

ऑटो-अपडेट: उपयोगकर्ताओं के लिए फ़ायदेमंद, डेवलपर के लिए मुश्किल

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

हालांकि, डेवलपर के तौर पर, एंड-टू-एंड टेस्ट की सीरीज़ चलाने वाले लोगों का नज़रिया अलग हो सकता है:

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

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

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

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

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

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

समाधान: Chrome for Testing

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

Chrome for Testing का लोगो. यह Chrome का सामान्य लोगो है. इसमें काले रंग के आयत में 'Test' शब्द लिखा है.

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

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