टेस्ट लैब को अपने सीआई/सीडी सिस्टम के साथ इंटिग्रेट करें

1. शुरुआती जानकारी

पिछले अपडेट की तारीख: 07-04-2022

सीआई/सीडी सिस्टम की मदद से मोबाइल टेस्ट चलाने का तरीका

मोबाइल टेस्ट करना मुश्किल हो सकता है: कई ऐप्लिकेशन अलग-अलग प्लैटफ़ॉर्म, डिवाइसों, और एपीआई वर्शन पर काम करते हैं. ऐप्लिकेशन डेवलपर, ज़्यादा से ज़्यादा कॉन्फ़िगरेशन पर टेस्टिंग करना चाहते हैं, ताकि वे उपयोगकर्ताओं को समस्याओं का सामना करने से पहले ही उन्हें ठीक कर सकें. हालांकि, लागत और संसाधनों की कमी की वजह से, डेवलपर के पास टेस्ट डिवाइसों की संख्या सीमित होती है. साथ ही, वे मैन्युअल रखरखाव पर ज़्यादा समय नहीं दे पाते. जब डेवलपमेंट प्रोसेस का दायरा बढ़ता है, तब टेस्टिंग प्रोसेस को ऑटोमेट करना ज़रूरी होता है. ऐसा खास तौर पर, कंटीन्यूअस इंटिग्रेशन/कंटीन्यूअस डेवलपमेंट (सीआई/सीडी) सिस्टम के लिए होता है. साथ ही, रखरखाव की लागत और मेहनत को कम करना भी ज़रूरी होता है.

Firebase Test Lab, हमारे डेटा सेंटर में कई तरह के मोबाइल, फ़िज़िकल, और वर्चुअल डिवाइस होस्ट करता है. इससे आपको यह समझने में मदद मिलती है कि आपके ऐप्लिकेशन, उपयोगकर्ताओं के डिवाइसों पर कैसा परफ़ॉर्म करते हैं. हम Google Cloud CLI भी उपलब्ध कराते हैं. यह प्लैटफ़ॉर्म से अलग, कमांड-लाइन टूल है. यह हमारे डेटा सेंटर में मौजूद डिवाइसों पर टेस्ट चलाने की प्रोसेस को व्यवस्थित करता है. gcloud CLI की मदद से, Test Lab के क्लाउड-आधारित टेस्टिंग सलूशन को मौजूदा CI/CD वर्कफ़्लो में आसानी से इंटिग्रेट किया जा सकता है.

क्रॉस-प्लैटफ़ॉर्म सहायता

Test Lab, Android और iOS ऐप्लिकेशन के लिए टेस्टिंग की सुविधाएं उपलब्ध कराता है. साथ ही, यह Unity जैसे मोबाइल गेम के लिए खास सहायता भी उपलब्ध कराता है. टेस्टिंग के विकल्पों में, Android Espresso, UI Automator, और iOS XCTest जैसे लोकप्रिय टेस्टिंग फ़्रेमवर्क शामिल हैं. हमारे ऑटोमेटेड क्रॉलर, Robo का इस्तेमाल करके, Test Lab बिना किसी टेस्ट कोड के भी टेस्ट चला सकता है.

हार्डवेयर से जुड़ी कोई ज़रूरी शर्तें नहीं हैं

Test Lab, Google के डेटा सेंटर में फ़िज़िकल डिवाइसों को होस्ट करता है. साथ ही, यह Google Cloud में वर्चुअल डिवाइसों को होस्ट करता है. आपको सिर्फ़ अपने टेस्ट, Test Lab को भेजने हैं और नतीजों का इंतज़ार करना है.

तेज़ और भरोसेमंद

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

आपको क्या सीखने को मिलेगा

  • टेस्ट आर्टफ़ैक्ट कैसे बनाएं
  • gcloud CLI का इस्तेमाल करके, मोबाइल टेस्ट चलाने का तरीका
  • Jenkins CI को सेट अप करने का तरीका
  • Jenkins CI का इस्तेमाल करके मोबाइल टेस्ट कैसे चलाएं
  • सीआई सिस्टम के साथ बड़े पैमाने पर टेस्ट करने के लिए, उन्हें कॉन्फ़िगर करने का तरीका

इस कोडलैब में, टेस्ट चलाने पर फ़ोकस किया गया है. इसमें काम के न होने वाले कॉन्सेप्ट और कोड ब्लॉक को शामिल नहीं किया गया है. साथ ही, इन्हें सिर्फ़ कॉपी और चिपकाने के लिए उपलब्ध कराया गया है.

आपको इनकी ज़रूरत होगी

अगर आपको शुरू से ही सब कुछ बनाना है, तो Android टेस्ट चलाने के लिए Android Studio और iOS टेस्ट चलाने के लिए XCode की ज़रूरत होगी. इसके अलावा, आप सिर्फ़ खुद आएं. हम आपको आर्टफ़ैक्ट उपलब्ध कराएंगे.

2. gcloud सीएलआई की मदद से टेस्ट चलाना

Android ऐप्लिकेशन का APK और टेस्टिंग APK बनाना

टेस्ट लैब की मदद से जांच करने के लिए, सबसे पहले Android ऐप्लिकेशन APK और टेस्टिंग APK बनाएं. इसमें हार्डवेयर डिवाइसों या एम्युलेटर पर चलाने के लिए, इंस्ट्रुमेंटेड टेस्ट शामिल होते हैं. अगर आपके पास पहले से ही काम करने वाला कोडबेस है, तो अपने APK बनाए जा सकते हैं. इसके अलावा, Espresso के लिए BasicSample का इस्तेमाल किया जा सकता है.

Gradle कमांड का इस्तेमाल करके APK बनाने के लिए, आपको Android SDK इंस्टॉल करना होगा. अगर आपकी मशीन पर Android Studio इंस्टॉल नहीं है, तो Android Studio और Android SDK इंस्टॉल करें. इसके बाद, Android SDK डायरेक्ट्री के साथ ANDROID_HOME एनवायरमेंट सेट करें. उदाहरण के लिए, अपनी ~/.bash_profile फ़ाइल में यह लाइन जोड़ें:

export ANDROID_HOME=~/Android/Sdk # For linux
export ANDROID_HOME=~/Library/Android/sdk  # For MacOS

इसके बाद, कोड को क्लोन करने और APK बनाने के लिए, यहां दिए गए कमांड चलाएं:

git clone https://github.com/android/testing-samples.git
cd testing-samples/ui/espresso/BasicSample/
./gradlew assembleDebug  # for generating app apk
./gradlew assembleDebugAndroidTest # for generating testing apk

क्लोन और बिल्ड कमांड चलाने के बाद, आपको ऐप्लिकेशन का APK और टेस्टिंग APK यहां मिल सकता है:

app/build/outputs/apk/debug/app-debug.apk
app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk

इसके अलावा, टेस्टिंग और ऐप्लिकेशन के APK पाने के लिए, इन विकल्पों का इस्तेमाल किया जा सकता है:

  • Android Studio में APK बनाने के लिए, Android Studio में टेस्ट करना में दिए गए निर्देशों का पालन करें.
  • सैंपल Notepad ऐप्लिकेशन डाउनलोड करें. बाइनरी फ़ाइल app-debug-unaligned.apk और इंस्ट्रूमेंटेशन टेस्ट फ़ाइल app-debug-test-unaligned.apk का इस्तेमाल करें. ये फ़ाइलें NotePad/app/build/outputs/apk/ में मौजूद हैं.

अगर आपके पास iOS ऐप्लिकेशन के लिए सोर्स कोड है, तो ऐप्लिकेशन और टेस्ट से XCTest लिखा जा सकता है. साथ ही, ज़िप फ़ाइल बनाई जा सकती है.

Test Lab की मदद से टेस्ट चलाने के लिए, gcloud सीएलआई का इस्तेमाल करना

इस सेक्शन में, Firebase प्रोजेक्ट बनाया जाता है. साथ ही, अपने लोकल Google Cloud SDK एनवायरमेंट को कॉन्फ़िगर किया जाता है. ज़्यादा जानने के लिए, gcloud सीएलआई की मदद से टेस्टिंग शुरू करना लेख पढ़ें.

gcloud सीएलआई सेट अप करना

  1. Google Cloud SDK डाउनलोड करें. इसमें gcloud सीएलआई टूल शामिल होता है.
  2. पुष्टि करें कि आपका इंस्टॉलेशन अप-टू-डेट है:
gcloud components update
  1. अपने Google खाते का इस्तेमाल करके, gcloud CLI में साइन इन करें:
gcloud auth login
  1. gcloud CLI में अपना Firebase प्रोजेक्ट सेट करें. यहां PROJECT_ID आपका Firebase प्रोजेक्ट आईडी है. आपको Firebase कंसोल के यूआरएल में प्रोजेक्ट आईडी मिल सकता है. इसका नाम रखने का तरीका यह है: https://console.firebase.google.com/project/[PROJECT_ID]/...
gcloud config set project PROJECT_ID

अगर आपके पास कोई Firebase प्रोजेक्ट नहीं है, तो Firebase कंसोल में जाकर एक प्रोजेक्ट बनाएं.

बनाए गए APK का इस्तेमाल करके टेस्ट चलाना

इस सेक्शन में, Test Lab के डिफ़ॉल्ट डिवाइस पर इंस्ट्रुमेंटेशन टेस्ट चलाया जाता है. यह डिवाइस, Pixel 3 है और इसका एपीआई लेवल 28 है. अगर आपको किसी दूसरे डिवाइस का इस्तेमाल करना है, तो देखें कि कौनसे डिवाइस उपलब्ध हैं.

'Android ऐप्लिकेशन APK और टेस्टिंग APK बनाएं' में बनाए गए ऐप्लिकेशन और टेस्टिंग APK का इस्तेमाल करके, यहां दिए गए कमांड का इस्तेमाल करके Android इंस्ट्रूमेंटेशन टेस्ट चलाएं:

gcloud firebase test android run \
  --type instrumentation \
  --app app/build/outputs/apk/debug/app-debug.apk \
  --test app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk

टेस्ट के नतीजों का विश्लेषण करना

इनमें से किसी भी विकल्प का इस्तेमाल करके, टेस्ट के नतीजों का विश्लेषण किया जा सकता है:

  • gcloud summary - जब आपका टेस्ट पूरा हो जाता है, तब gcloud सीएलआई आपके टेस्ट के नतीजों की बुनियादी जानकारी प्रिंट करता है.
  • gcloud एग्ज़िट कोड - टेस्ट पूरा होने के बाद, अगर टेस्ट पास हो जाता है, तो कमांड 0 के साथ बंद हो जाती है. अगर टेस्ट पूरा नहीं होता है, तो निर्देश, शून्य से अलग एक्ज़िट कोड के साथ बंद हो जाता है.
  • Firebase कंसोल - gcloud CLI, Firebase कंसोल का लिंक प्रिंट करता है. लिंक का नाम रखने का तरीका https://console.firebase.google.com/project/PROJECT_ID/testlab/... है. ज़्यादा जानने के लिए, एक टेस्ट के नतीजों को समझना लेख पढ़ें.
  • JUnit XML फ़ाइल - gcloud सीएलआई, यह प्रिंट करता है:
Raw results will be stored in your Cloud Storage bucket at [https://console.developers.google.com/storage/browser/test-lab-xxxxx/xxxxx/]

test-lab-xxxxx/xxxxx वह Cloud Storage बकेट है जिसमें टेस्ट आर्टफ़ैक्ट और नतीजे सेव किए जाते हैं. जांच के नतीजे वाली JUnit XML फ़ाइल ढूंढने के लिए, लिंक खोलें और blueline-28-en-portrait/test_result_1.xml पर जाएं.

3. Jenkins CI के साथ सेट अप करना

इस सेक्शन में, Test Lab की मदद से टेस्ट चलाने के लिए, Jenkins CI का इस्तेमाल किया जाता है. यह एक लोकप्रिय CI सिस्टम है. अगर आपको किसी दूसरे सीआई सिस्टम का इस्तेमाल करना है, तो बड़ी टेस्ट सुइट चलाने के लिए सबसे सही तरीके देखें. साथ ही, Bitrise और Circle CI जैसे अन्य सीआई सिस्टम के दस्तावेज़ देखें. gcloud सीएलआई के बजाय, Flank का इस्तेमाल किया जा सकता है.

Jenkins के लिए gcloud सीएलआई चालू करना

Jenkins के साथ Test Lab का इस्तेमाल करने से पहले, आपको ज़रूरी एपीआई चालू करने होंगे. साथ ही, एक ऐसा सेवा खाता सेट अप करना होगा जिसका इस्तेमाल करके Jenkins, gcloud CLI के साथ पुष्टि कर सके.

Jenkins के लिए Google Cloud सेवा खाता जोड़ना

सेवा खाते, सीमित खाते होते हैं. इनका इस्तेमाल सेवा इंटिग्रेशन के लिए किया जाता है. इन खातों से, कुछ सेवाओं को बेहतर तरीके से कंट्रोल किया जा सकता है. साथ ही, इन पर स्पैम की जांच नहीं की जाती है और न ही कैप्चा प्रॉम्प्ट दिखते हैं. ऐसा न होने पर, आपकी सीआई बिल्ड ब्लॉक हो सकती हैं.

सेवा खाता बनाने के लिए, यह तरीका अपनाएं:

  1. Google Cloud Console में, सेवा खाते पेज खोलें.
  2. सेवा खाता बनाएं पर क्लिक करें. इसके बाद, नाम और ब्यौरा डालें. फिर, बनाएं और जारी रखें पर क्लिक करें.
  3. कोई भूमिका चुनें ड्रॉपडाउन से, सामान्य को चुनें. इसके बाद, एडिटर को चुनें.
  4. जारी रखें पर क्लिक करें. इसके बाद, हो गया पर क्लिक करें.

इसके बाद, आपको पुष्टि करने की एक कुंजी बनानी और डाउनलोड करनी होगी. इसका इस्तेमाल करके Jenkins, उस सेवा खाते के तौर पर पुष्टि कर सकता है जिसे आपने बनाया है.

सेवा खाते की कुंजी बनाने और उसे डाउनलोड करने के लिए, यह तरीका अपनाएं:

  1. Google Cloud Console में सेवा खाते पेज पर जाकर, उस खाते से जुड़े ईमेल पर क्लिक करें जिसे आपने बनाया है.
  2. कुंजियां चुनें. इसके बाद, कुंजी जोड़ें और नई कुंजी बनाएं पर क्लिक करें.
  3. JSON को चुनें. इसके बाद, बनाएं पर क्लिक करें.
  4. जब फ़ाइल डाउनलोड करने के लिए कहा जाए, तो ठीक है पर क्लिक करें. फ़ाइल को अपने कंप्यूटर पर किसी सुरक्षित जगह पर डाउनलोड करें. Jenkins को कॉन्फ़िगर करते समय, आपको इस फ़ाइल की ज़रूरत होगी.

सेवा खाते बनाने के बारे में ज़्यादा जानने के लिए, सेवा खाता बनाना लेख पढ़ें.

ज़रूरी Google Cloud API चालू करना

Cloud Testing API की मदद से, Google के इंफ़्रास्ट्रक्चर पर टेस्ट चलाए जा सकते हैं. आपने gcloud CLI की मदद से टेस्ट चलाने की प्रोसेस पूरी करते समय, इस एपीआई को चालू किया था. Cloud Tool Results API की मदद से, जांच के नतीजों को प्रोग्राम के हिसाब से ऐक्सेस किया जा सकता है.

  1. Google Developers Console API Library खोलें.
  2. Firebase कंसोल में सबसे ऊपर मौजूद खोज बार में, ज़रूरी हर एपीआई ( Cloud Testing API और Cloud Tool Results API) का नाम डालें. अनुरोध किए गए एपीआई के लिए खास जानकारी वाला पेज दिखता है.
  3. हर एपीआई के खास जानकारी वाले पेज पर, एपीआई चालू करें पर क्लिक करें.

Jenkins को इंस्टॉल और सेट अप करना

Jenkins CI को Linux, macOS, Windows, और कई अन्य एनवायरमेंट पर इंस्टॉल और सेट अप किया जा सकता है. इस कोडलैब की कुछ जानकारी, Linux पर Jenkins CI को इंस्टॉल और चलाने के लिए खास तौर पर दी गई है. इसमें फ़ाइल पाथ में स्लैश (/) का इस्तेमाल करना भी शामिल है.

Linux या Windows पर चलने वाले कंप्यूटर पर Jenkins को डाउनलोड और इंस्टॉल करने के लिए, Jenkins को इंस्टॉल करने से जुड़े निर्देशों का पालन करें. Jenkins इंस्टॉल करने के बाद, सेटअप पूरा करने के लिए Jenkins को इंस्टॉल करने से जुड़े निर्देशों का पालन करें. साथ ही, http://localhost:8080 का इस्तेमाल करके Jenkins डैशबोर्ड को ऐक्सेस करें.

इंस्टॉल किए गए प्लगिन की पुष्टि करना

Jenkins, वर्शन कंट्रोल करने वाले अलग-अलग सिस्टम के साथ काम करता है. इस कोडलैब में, पिछली जांच को चलाने के लिए Git का इस्तेमाल किया जाता है. gcloud सीएलआई को बेहतर तरीके से चलाने के लिए, आपको GCloud SDK प्लगिन इंस्टॉल करना होगा.

  1. Jenkins डैशबोर्ड पर, Jenkins मैनेज करें पर क्लिक करें. इसके बाद, प्लग इन मैनेज करें पर क्लिक करें.
  2. Git और GCloud SDK प्लगिन खोजें और उन्हें इंस्टॉल करें. अगर वे पहले से इंस्टॉल नहीं हैं, तो उन्हें इंस्टॉल करें.

अपने Android और Google Cloud SDK टूल की जगह की जानकारी कॉन्फ़िगर करना

अब Jenkins को यह निर्देश दिया जाता है कि Google Cloud SDK और Android SDK कहां मिलेंगे.

Jenkins के लिए Google Cloud और Android SDK को कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:

  1. Jenkins डैशबोर्ड पर, Manage Jenkins पर क्लिक करें. इसके बाद, Global Tool Configuration पर क्लिक करें.
  2. Google Cloud SDK सेक्शन में जाकर, Google Cloud SDK जोड़ें पर क्लिक करें.
  3. नाम फ़ील्ड में, Google Cloud SDK इंस्टेंस के लिए ऐसा नाम डालें जिसे आसानी से याद रखा जा सके. उदाहरण के लिए, GCloud-SDK.
  4. Google Cloud SDK की होम डायरेक्ट्री डालें. उदाहरण के लिए, /opt/google-cloud-sdk.
  5. सेव करें पर क्लिक करें.
  6. Android और Google Cloud SDK के लिए, सिस्टम-वाइड प्रॉपर्टी कॉन्फ़िगर करें. इसके लिए, डैशबोर्ड > Jenkins मैनेज करें > सिस्टम कॉन्फ़िगर करें खोलें.
  7. Environment variables चेकबॉक्स को चुनें और Add पर क्लिक करें.
  8. नाम फ़ील्ड में, ANDROID_HOME डालें. वैल्यू फ़ील्ड में, अपने Android SDK टूल की जगह डालें. उदाहरण के लिए, /opt/Android/Sdk.
  9. टूल की जगहें चेकबॉक्स पर क्लिक करें. इसके बाद, जोड़ें पर क्लिक करें. नाम ड्रॉपडाउन से, उस Google Cloud SDK इंस्टेंस का नाम चुनें जिसे आपने ग्लोबल टूल कॉन्फ़िगरेशन में जोड़ा है.
  10. होम फ़ील्ड में, Google Cloud SDK की जगह डालें. उदाहरण के लिए, /opt/google-cloud-sdk.
  11. सेव करें पर क्लिक करें.

Jenkins में सेवा खाते के क्रेडेंशियल जोड़ना

अब Jenkins में, gcloud CLI सेवा खाते के क्रेडेंशियल जोड़ें. इससे Jenkins, gcloud CLI कमांड की पुष्टि कर पाएगा और उन्हें सही तरीके से चला पाएगा.

  1. Jenkins डैशबोर्ड पर, Manage Jenkins पर क्लिक करें. इसके बाद, Manage Credentials पर क्लिक करें.
  2. Jenkins के स्कोप वाले स्टोर सेक्शन में, (global) डोमेन लिंक पर क्लिक करें. इसके बाद, क्रेडेंशियल जोड़ें पर क्लिक करें.
  3. Kind ड्रॉपडाउन से, Google Service Account from private key चुनें.
  4. प्रोजेक्ट का नाम फ़ील्ड में, अपने Firebase प्रोजेक्ट का नाम डालें.
  5. JSON कुंजी चुनें. इसके बाद, ब्राउज़ करें पर क्लिक करें और उस जगह पर जाएं जहां आपने सेवा खाते की कुंजी सेव की है.
  6. बनाएं पर क्लिक करें.

अब आपके पास Test Lab के लिए, Jenkins की अपने-आप होने वाली बिल्ड प्रोसेस को कॉन्फ़िगर करने का विकल्प है.

4. Jenkins CI की मदद से, Test Lab के टेस्ट चलाना

अब जब आपने Jenkins सेट अप कर लिया है, तो चलिए सभी चीज़ों को एक साथ रखते हैं और Jenkins का इस्तेमाल करके वही टेस्ट चलाते हैं.

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

Jenkins प्रोजेक्ट बनाना और उसे कॉन्फ़िगर करना

Test Lab की मदद से, अपने ऐप्लिकेशन की लगातार इंटिग्रेशन टेस्टिंग करने के लिए एक प्रोजेक्ट बनाएं.

Jenkins प्रोजेक्ट बनाना

  1. http://localhost:8080 पर जाकर, Jenkins डैशबोर्ड खोलें.
  2. Jenkins डैशबोर्ड पर, New Item पर क्लिक करें.
  3. आइटम का नाम फ़ील्ड में अपने प्रोजेक्ट का नाम डालें. इसके बाद, एक ही बिल्ड कॉन्फ़िगरेशन का इस्तेमाल करने वाला प्रोजेक्ट बनाने के लिए, फ़्रीस्टाइल प्रोजेक्ट पर क्लिक करें.
  4. ठीक है पर क्लिक करें. प्रोजेक्ट कॉन्फ़िगरेशन पूरा करने के लिए, बाकी सेक्शन को क्रम से पूरा करें..

सोर्स कोड मैनेजमेंट को कॉन्फ़िगर करना

  1. सोर्स कोड मैनेजमेंट टैब में जाकर, Git चुनें.
  2. रिपॉज़िटरी यूआरएल फ़ील्ड में, https://github.com/android/testing-samples.git डालें.

बिल्ड एनवायरमेंट को कॉन्फ़िगर करना

'बिल्ड एनवायरमेंट' सेक्शन की मदद से, बिल्ड की विशेषताओं को कॉन्फ़िगर किया जा सकता है. Google Cloud की पुष्टि करने की सुविधा चालू करने के लिए, यह तरीका अपनाएं:

  1. बिल्ड एनवायरमेंट टैब में, GCloud SDK ऑथेंटिकेशन चेकबॉक्स को चुनें. इसके बाद, वह इंस्टॉलेशन नाम चुनें जो आपने Google Cloud इंस्टॉलेशन की जानकारी जोड़ते समय चुना था.
  2. Google क्रेडेंशियल ड्रॉपडाउन से, कॉन्फ़िगर किए गए सेवा खाते के क्रेडेंशियल चुनें.

APK पैकेज को फिर से बनाने के लिए, Gradle बिल्ड के चरण जोड़ना

  1. नीचे की ओर स्क्रोल करके बिल्ड सेक्शन पर जाएं. इसके बाद, बिल्ड का चरण जोड़ें पर क्लिक करें. इसके बाद, शेल को एक्ज़ीक्यूट करें को चुनें.
  2. अपने ऐप्लिकेशन की मुख्य डायरेक्ट्री में, यहां दी गई कमांड चलाने के लिए, बिल्ड स्टेप जोड़ें:
cd ui/espresso/BasicSample/
./gradlew assembleDebug  # for generating app apk
./gradlew assembleDebugAndroidTest # for generating testing apk

Jenkins में gcloud सीएलआई का बिल्ड चरण जोड़ना

अब gcloud सीएलआई कमांड लाइन का इस्तेमाल करके, Jenkins में बिल्ड स्टेप जोड़ा जा सकता है, ताकि Test Lab को चलाया जा सके.

gcloud CLI बिल्ड स्टेप जोड़ने के लिए, नया शेल कमांड चलाएं बिल्ड स्टेप जोड़ें और यह कमांड डालें:

gcloud config set project PROJECT_ID
gcloud firebase test android run \
--app ${WORKSPACE}/ui/espresso/BasicSample/app/build/outputs/apk/debug/app-debug.apk
--test ${WORKSPACE}/ui/espresso/BasicSample/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk

प्रोजेक्ट सेटअप करने के बाद, पेज पर सबसे नीचे की ओर स्क्रोल करें और कॉन्फ़िगरेशन सेव करें. आपको नए प्रोजेक्ट के होम पेज पर रीडायरेक्ट कर दिया जाता है.

Jenkins की मदद से टेस्ट चलाना

अब Jenkins प्रोजेक्ट बनाया जा सकता है. साथ ही, gcloud CLI की मदद से किए गए मैन्युअल टेस्ट की तरह ही टेस्ट चलाया जा सकता है.

Jenkins के साथ टेस्ट चलाने के लिए, यह तरीका अपनाएं:

  1. मैन्युअल तरीके से बिल्ड ट्रिगर करने के लिए, अभी बनाएं पर क्लिक करें.
  2. नई बिल्ड > कंसोल आउटपुट पर क्लिक करके, प्रोग्रेस और नतीजे देखें.

अगर आपको कोई गड़बड़ी नहीं दिखती है, तो बधाई हो! आपने अभी-अभी एक प्रोजेक्ट सेट अप किया है और एक क्लिक में Pixel 2 डिवाइस पर टेस्ट चलाया है. अगर आपको गड़बड़ियां मिलती हैं, तो समस्या हल करना सेक्शन देखें.

5. बड़ी टेस्ट सुइट चलाने के लिए, सबसे सही तरीके

एक साथ कई टेस्ट चलाने के लिए, इन सबसे सही तरीकों को अपनाएं. इससे यह पक्का किया जा सकेगा कि आपके टेस्ट तेज़ी से और भरोसेमंद तरीके से चल रहे हैं.

अलग-अलग डिवाइस कॉन्फ़िगरेशन पर कवरेज बढ़ाना

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

  • पोर्ट्रेट ओरिएंटेशन और अंग्रेज़ी भाषा में एपीआई लेवल 30 वाला वर्चुअल Google Pixel 2
  • लैंडस्केप मोड में, एपीआई लेवल 29 वाला Samsung Galaxy S20 और फ़्रेंच भाषा
gcloud firebase test android run \
  --type instrumentation \
  --app app-debug.apk \
  --test app-debug-test.apk \
  --device model=Pixel2,version=30,locale=en,orientation=portrait  \
  --device model=x1q,version=29,locale=fr,orientation=landscape

gcloud सीएलआई की YAML कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करना

अगर आपको अपने आर्ग्युमेंट को एक ही जगह पर या सोर्स कंट्रोल सिस्टम के साथ मैनेज करना है, तो इन आर्ग्युमेंट को YAML फ़ॉर्मैट वाली आर्ग्युमेंट फ़ाइल में तय किया जा सकता है. इस सुविधा को इस्तेमाल करने का तरीका जानने के लिए, gcloud topic arg-files चलाएं.

एक साथ चलाने के लिए टेस्ट को शार्ड करना

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

शार्डिंग की सुविधा चालू करने के लिए, gcloud beta चैनल का इस्तेमाल करें. साथ ही, gcloud CLI के बिल्ड चरण में –num-uniform-shards या –test-targets-for-shard फ़्लैग जोड़ें. उदाहरण के लिए, अगर आपको अपने टेस्ट को पांच हिस्सों में बांटकर, उन्हें एक साथ चलाना है, तो ये कमांड चलाएं:

gcloud beta firebase test android run \
  --type instrumentation \
  --app app-debug.apk \
  --test app-debug-test.apk \
  --num-uniform-shards 5

जांच के फ़ेल होने की वजह का पता लगाने की सुविधा चालू करना

मोबाइल टेस्ट के नतीजे अक्सर भरोसेमंद नहीं होते. कभी-कभी टेस्ट पास हो जाते हैं और कभी-कभी वे फ़ेल हो सकते हैं. ऐसा एक ही सेटअप के साथ भी हो सकता है. –num-flaky-test-attempts gcloud CLI फ़्लैग का इस्तेमाल करके, यह पता लगाया जा सकता है कि फ़ेल हुआ टेस्ट फ़्लेकी था या नहीं. इस फ़्लैग से यह तय किया जाता है कि अगर किसी वजह से एक या उससे ज़्यादा टेस्ट केस पूरे नहीं होते हैं, तो टेस्ट को कितनी बार फिर से चलाया जाना चाहिए.

उदाहरण के लिए, अगर आपको टेस्ट केस के शुरुआती रन में फ़ेल होने के बाद, उसे तीन बार और चलाना है, तो यह जानकारी दें:

gcloud beta firebase test android run \
  --type instrumentation \
  --app app-debug.apk \
  --test app-debug-test.apk \
  --num-flaky-test-attempts 3

6. बधाई

बधाई हो, आपने सीआई सिस्टम के साथ अपना पहला टेस्ट लैब टेस्ट सफलतापूर्वक पूरा कर लिया है!

आपने ऐप्लिकेशन और टेस्टिंग APK बनाए हैं. साथ ही, gcloud CLI का इस्तेमाल करके, Test Lab की मदद से इंस्ट्रूमेंटेशन टेस्ट किया है. आपने इसी टेस्ट को अपने-आप पूरा करने के लिए, Jenkins प्रोजेक्ट भी सेट अप किया है.

अब आपको CI/CD सिस्टम में Test Lab को इंटिग्रेट करने के मुख्य चरणों के बारे में पता चल गया है.

आगे क्या करना है?

Firebase Emulator Suite का इस्तेमाल करके सीआई को सेट अप करने का तरीका लेख पढ़ें

इस बारे में और पढ़ें

संदर्भ दस्तावेज़