Chrome की मदद से ऑटोमेशन और टेस्टिंग करना

मज़बूत और अच्छी क्वालिटी वाले वेब ऐप्लिकेशन बनाने के लिए, ब्राउज़र की ऑटोमेटेड टेस्टिंग ज़रूरी है. चाहे आप एंड-टू-एंड सुइट के लिए, लगातार इंटिग्रेशन (सीआई) कर रहे हों, ब्राउज़र के वर्शन रिलीज़ होने पर रिग्रेशन टेस्टिंग कर रहे हों या ब्राउज़र के इंटरैक्शन को ऑटोमेट कर रहे हों, Chrome, टूल और एक्ज़ीक्यूशन मोड का एक खास सुइट उपलब्ध कराता है. इसे डेवलपर और टेस्ट ऑटोमेशन इंजीनियरों के लिए डिज़ाइन किया गया है.

इस खास जानकारी में, Chrome के ऑटोमेशन और टेस्टिंग इकोसिस्टम में मौजूद मुख्य प्रॉडक्ट के बारे में बताया गया है. ये प्रॉडक्ट हैं: Chrome for Testing, ChromeDriver, Puppeteer, और Chrome Headless mode. इसमें यह भी बताया गया है कि भरोसेमंद और दोहराए जा सकने वाले टेस्टिंग वर्कफ़्लो के लिए, इनका एक साथ इस्तेमाल कैसे किया जा सकता है.


Chrome for Testing

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

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

मुख्य सुविधाएं

  • वर्शन के हिसाब से डाउनलोड करने की सुविधा: Chrome के खास वर्शन वाले बाइनरी ऐक्सेस करें, ताकि हमेशा चुने गए वर्शन के हिसाब से टेस्ट किया जा सके.
  • सभी चैनलों के लिए, जोड़े गए बाइनरी: Chrome for Testing, सभी चैनलों (स्टेबल , बीटा , डेव , और कैनरी ) पर Chrome के हर वर्शन के लिए, Chrome के मैचिंग बाइनरी उपलब्ध कराता है. इनके साथ, ChromeDriver के काम के बाइनरी भी उपलब्ध कराए जाते हैं. इसके अलावा, ऑटोमेटेड टेस्ट में अब भी Chrome Headless के पुराने शेल (chrome-headless-shell) का इस्तेमाल करने वाले लोगों के लिए, यह शेल भी उपलब्ध कराया जाता है.
  • आसानी से डाउनलोड करने के लिए ऑटोमेशन: @puppeteer/browsers कमांड-लाइन यूटिलिटी का इस्तेमाल करके, बाइनरी आसानी से डाउनलोड किए जा सकते हैं. इसके अलावा, उपलब्धता डैशबोर्ड के ज़रिए भी क्वेरी की जा सकती है.

ज़्यादा जानें


ChromeDriver

ChromeDriver, ओपन-सोर्स स्टैंडअलोन सर्वर है. यह W3C WebDriver स्टैंडर्ड और WebDriver BiDi के दोतरफ़ा प्रोटोकॉल को लागू करता है. यह WebDriver पर आधारित टेस्ट फ़्रेमवर्क (जैसे, Selenium, WebDriverIO, और Nightwatch) और Chrome ब्राउज़र के बीच पुल का काम करता है.

मुख्य सुविधाएं

  • W3C WebDriver और WebDriver BiDi के लिए सहायता: यह क्लासिक WebDriver ऑटोमेशन कमांड और WebDriver BiDi के ज़रिए रीयल-टाइम दोतरफ़ा कम्यूनिकेशन, दोनों के लिए सहायता उपलब्ध कराता है. इससे इवेंट को तेज़ी से सुना जा सकता है, नेटवर्क की निगरानी की जा सकती है, और लॉग को इंटरसेप्ट किया जा सकता है.
  • Chrome for Testing के साथ रिलीज़ किया जाता है: ChromeDriver के वर्शन, Chrome for Testing के इंफ़्रास्ट्रक्चर में सीधे इंटिग्रेट किए जाते हैं. Chrome for Testing के हर वर्शन के लिए, ChromeDriver का मैचिंग वर्शन एक साथ रिलीज़ किया जाता है. इससे वर्शन के मिसमैच की समस्या नहीं होती.

ज़्यादा जानें


Puppeteer

Puppeteer, Google की बनाई गई JavaScript लाइब्रेरी है. यह Chrome DevTools Protocol (सीडीपी) या WebDriver BiDi के ज़रिए Chrome को कंट्रोल करने के लिए, हाई-लेवल एपीआई उपलब्ध कराती है.

मुख्य सुविधाएं

  • बिना सेटअप के ऑटोमेशन: Puppeteer, डिफ़ॉल्ट रूप से Chrome for Testing का ऐसा बाइनरी डाउनलोड करता है जो इसके साथ काम कर सकता है. इससे ब्राउज़र के ऑटोमेशन की सुविधा तुरंत चालू हो जाती है.
  • Chrome पर पूरा कंट्रोल: आसानी से स्क्रीनशॉट कैप्चर करें, पीडीएफ़ जनरेट करें, फ़ॉर्म सबमिट करने की प्रोसेस को ऑटोमेट करें, नेटवर्क के अनुरोधों को इंटरसेप्ट करें, और हेडफ़ुल या Headless मोड में यूज़र इंटरफ़ेस (यूआई) टेस्ट करें.

ज़्यादा जानें


Chrome Headless mode

Chrome Headless mode की मदद से, Chrome को ऐसे एनवायरमेंट में चलाया जा सकता है जहां कोई मौजूद न हो. इसमें यूज़र इंटरफ़ेस (यूआई) नहीं दिखता. कमांड लाइन पर --headless फ़्लैग पास करके, Chrome को सर्वर एनवायरमेंट, कंटेनर, और सीआई/सीडी पाइपलाइन में आसानी से चलाया जा सकता है.

मुख्य सुविधाएं

  • यूनिफ़ाइड ब्राउज़र इंजन: मॉडर्न Headless mode (--headless), हेडफ़ुल Chrome की तरह ही ब्राउज़र के एक ही वर्शन पर काम करता है.
  • ऑटोमेशन और डीबग करने की बेहतर सुविधाएं: यह स्क्रीनशॉट कैप्चर करने, पीडीएफ़ जनरेट करने, रिमोट डीबगिंग, और वर्चुअल स्क्रीन कॉन्फ़िगरेशन की सुविधा उपलब्ध कराता है.

ज़्यादा जानें


उदाहरण: इन प्रॉडक्ट का एक साथ इस्तेमाल करना

ऑटोमेटेड टेस्टिंग या लगातार इंटिग्रेशन (सीआई) के सामान्य वर्कफ़्लो में, ये प्रॉडक्ट एक साथ काम करते हैं, ताकि बिना किसी की मदद के, दोहराए जा सकने वाले टेस्टिंग एनवायरमेंट उपलब्ध कराया जा सके:

  1. ब्राउज़र बाइनरी (Chrome for Testing): Chrome for Testing के किसी खास वर्शन वाले बाइनरी का इस्तेमाल करें, ताकि टेस्ट के नतीजे हर बार एक जैसे हों.
  2. एक्ज़ीक्यूशन मोड (Chrome Headless mode): उस बाइनरी को Headless mode (--headless) में चलाएं, ताकि टेस्ट को सर्वर, कंटेनर या सीआई पाइपलाइन में बिना ग्राफ़िकल डिसप्ले के आसानी से चलाया जा सके.
  3. ऑटोमेशन ड्राइवर (Puppeteer या ChromeDriver): ब्राउज़र को Puppeteer जैसी ऑटोमेशन लाइब्रेरी या WebDriver BiDi से कनेक्ट किए गए किसी अन्य टेस्टिंग फ़्रेमवर्क का इस्तेमाल करके चलाएं.

Puppeteer, इन सभी को अपने-आप कनेक्ट करता है. इंस्टॉल होने पर, यह Chrome for Testing का ऐसा बाइनरी डाउनलोड करता है जो इसके साथ काम कर सकता है. साथ ही, यह डिफ़ॉल्ट रूप से Headless mode में लॉन्च होता है.

W3C WebDriver फ़्रेमवर्क (जैसे, Selenium या WebdriverIO) का इस्तेमाल करते समय, Chrome for Testing और ChromeDriver के मैचिंग बाइनरी अपने-आप डाउनलोड किए जा सकते हैं. साथ ही, यूज़र इंटरफ़ेस (यूआई) के बिना चलाने के लिए, --headless फ़्लैग पास किया जा सकता है.


Enterprise और रिलीज़ चैनल के लिए दिशा-निर्देश