জিক্লাউড সিএলআই দিয়ে পরীক্ষা শুরু করুন

এই নির্দেশিকাটি বর্ণনা করে কিভাবে gcloud CLI ব্যবহার করে একটি যন্ত্র, রোবো, অথবা গেম লুপ পরীক্ষা চালানো যায়।

Test Lab আপনার অ্যান্ড্রয়েড অ্যাপের সাথে ব্যবহার করতে পারেন এমন gcloud কমান্ডের সম্পূর্ণ তালিকার জন্য, gcloud firebase test android এর রেফারেন্স ডকুমেন্টেশনটি দেখুন।

শুরু করার আগে

যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে আপনার অ্যান্ড্রয়েড প্রজেক্টে Firebase যোগ করুন

ধাপ ১. gcloud CLI সেট আপ করুন

  1. গুগল ক্লাউড এসডিকে ডাউনলোড করুন
  2. এর মধ্যে রয়েছে gcloud CLI টুল।

  3. আপনার ইনস্টলেশনটি আপ-টু-ডেট আছে কিনা তা নিশ্চিত করুন:
    gcloud components update
    
  4. আপনার গুগল অ্যাকাউন্ট ব্যবহার করে gcloud CLI তে সাইন ইন করুন:
    gcloud auth login
    
  5. আপনার Firebase প্রকল্পটি gcloud এ সেট করুন, যেখানে PROJECT_ID হল আপনার Firebase প্রকল্পের আইডি:
    gcloud config set project PROJECT_ID
    

ধাপ ২. উপলব্ধ পরীক্ষামূলক ডিভাইসগুলি পরীক্ষা করুন।

আপনার পরীক্ষার জন্য উপলব্ধ পরীক্ষা ডিভাইস এবং লোকেলগুলি দেখতে নিম্নলিখিত gcloud কমান্ডগুলি ব্যবহার করুন।

বিকল্প হিসেবে, আপনি কমান্ডগুলি তাৎক্ষণিকভাবে চালানো শুরু করার জন্য নমুনা নোটপ্যাড অ্যাপটিও ডাউনলোড করতে পারেন। NotePad/app/build/outputs/apk/ এ অবস্থিত বাইনারি ফাইল app-debug-unaligned.apk এবং ইন্সট্রুমেন্টেশন টেস্ট ফাইল app-debug-test-unaligned.apk ব্যবহার করুন।

  • models list : আপনার পরীক্ষা করার জন্য উপলব্ধ অ্যান্ড্রয়েড ডিভাইসগুলির একটি বর্তমান তালিকা পান।

    gcloud firebase test android models list

    কমান্ড আউটপুটে:

    • MODEL_ID কলামে সেই শনাক্তকারী রয়েছে যা আপনি পরে ডিভাইস মডেলের পরীক্ষা চালানোর জন্য ব্যবহার করতে পারেন।
    • OS_VERSION_ID কলামে ডিভাইসটি দ্বারা সমর্থিত অপারেটিং সিস্টেমের সংস্করণগুলি রয়েছে।

    উদাহরণ আউটপুট

    gcloud firebase test android models list output

  • models describe : একটি নির্দিষ্ট Android MODEL_ID সম্পর্কে আরও তথ্য পান।

    gcloud firebase test android models describe MODEL_ID

    আউটপুটে ডিভাইস মডেলের ব্র্যান্ড, প্রস্তুতকারক, ওএস সংস্করণ, সমর্থিত API স্তর, সমর্থিত অ্যাপ্লিকেশন বাইনারি ইন্টারফেস (ABI), প্রকাশের তারিখ এবং ডিভাইসটি ভৌত ​​নাকি ভার্চুয়াল তা অন্তর্ভুক্ত থাকে।

  • versions list : পরীক্ষা করার জন্য বর্তমানে উপলব্ধ OS সংস্করণগুলির একটি তালিকা পান।

    gcloud firebase test android versions list

    আপনি কমান্ড আউটপুটের প্রথম দুটি কলামের ( OS_VERSION_ID এবং VERSION ) যেকোনো একটি শনাক্তকারী ব্যবহার করতে পারেন, পরবর্তীতে একটি Android OS সংস্করণের বিরুদ্ধে পরীক্ষা চালানোর জন্য। যদি আপনি পরীক্ষা করার জন্য Android OS সংস্করণগুলি নির্দিষ্ট না করেন, তাহলে TAGS কলামের অধীনে উল্লেখিত ডিফল্টটি ব্যবহার করা হবে।

    উদাহরণ আউটপুট

    gcloud android versions list

  • locales list : পরীক্ষার জন্য উপলব্ধ লোকেলের বর্তমান তালিকা পান।

    gcloud firebase test android versions list

    কমান্ড আউটপুটের প্রথম কলামে, LOCALE , একটি শনাক্তকারী থাকে যা আপনি পরে কোনও লোকেলের বিরুদ্ধে পরীক্ষা চালানোর জন্য ব্যবহার করতে পারেন। যদি আপনি পরীক্ষা করার জন্য লোকেলগুলি নির্দিষ্ট না করেন, তাহলে ডিফল্ট লোকেল হিসেবে ইংরেজি ব্যবহার করা হয়।

ধাপ ৩. আপনার পরীক্ষা চালান।

এখন যেহেতু আপনি আপনার অ্যাপটি পরীক্ষা করার জন্য উপলব্ধ ডিভাইস মডেল, লোকেল এবং OS সংস্করণের পরিসর জানেন, আপনি gcloud firebase test android run কমান্ড এবং --device ফ্ল্যাগ ব্যবহার করে Robo বা ইন্সট্রুমেন্টেশন পরীক্ষা চালানোর জন্য ডিভাইসগুলি নির্দিষ্ট করতে পারেন।

একটি রোবো পরীক্ষা চালান

আপনার যদি কোনও ইন্সট্রুমেন্টেশন পরীক্ষা নাও থাকে, তবুও আপনি আপনার অ্যাপে বাগ খুঁজে পেতে পারেন। আপনার অ্যাপের ইউজার ইন্টারফেসের স্বয়ংক্রিয় পর্যালোচনা করতে রোবো টেস্ট ব্যবহার করুন। রোবো টেস্ট অ্যাপের ইউজার ইন্টারফেসের মাধ্যমে বিভিন্ন পাথের স্ট্যাটিক বিশ্লেষণ করে অ্যাপটিকে অনুশীলন করে এবং তারপর ক্র্যাশ এবং অন্যান্য সম্ভাব্য সমস্যাগুলি খুঁজে পেতে অ্যাপের মধ্য দিয়ে ক্রল করে।

একটি রোবো পরীক্ষা চালানোর জন্য, নিম্নলিখিত উদাহরণ কমান্ডটি চালান:

gcloud firebase test android run \
  --type robo \
  --app app-debug-unaligned.apk \
  --device model=Nexus6,version=21,locale=en,orientation=portrait  \
  --device model=Nexus7,version=19,locale=fr,orientation=landscape \
  --timeout 90s \
  --client-details matrixLabel="Example matrix label"
  • যদি কোন --type মান নির্দিষ্ট না করা থাকে, তাহলে --type robo প্যারামিটারটি অন্তর্নিহিত।
  • Firebase কনসোলে আপনার পরীক্ষার ম্যাট্রিক্স সনাক্ত এবং সনাক্ত করতে সাহায্য করার জন্য, আপনি ঐচ্ছিক --client-details matrixLabel="Example matrix label" পতাকা ব্যবহার করে আপনার পরীক্ষার ম্যাট্রিক্স লেবেল করতে পারেন।
  • পরীক্ষা চালানোর জন্য কমান্ড লাইন বিকল্পগুলির সম্পূর্ণ সেট আপনি টাইপ করে দেখতে পারেন: gcloud help firebase test android run

কমান্ড লাইনে এই আর্গুমেন্টগুলি নির্দিষ্ট করার বিকল্প হিসেবে, আপনি ঐচ্ছিকভাবে YAML-ফরম্যাটেড আর্গুমেন্ট ফাইলে আপনার আর্গুমেন্টগুলি নির্দিষ্ট করতে পারেন। এই বৈশিষ্ট্যটি কীভাবে ব্যবহার করবেন তা শিখতে gcloud topic arg-files চালান।

রোবো পরীক্ষা থেকে পরীক্ষার ফলাফল কীভাবে তদন্ত করবেন তা জানতে, আপনার পরীক্ষার ফলাফল বিশ্লেষণ করুন দেখুন।

একটি যন্ত্র পরীক্ষা চালান

এখন আপনার নির্দিষ্ট অ্যান্ড্রয়েড ডিভাইস কনফিগারেশনে নোটপ্যাড অ্যাপের এসপ্রেসো পরীক্ষা চালানোর জন্য gcloud কমান্ড লাইন টুলটি ব্যবহার করুন। app-debug-test-unaligned.apk এ পরীক্ষা চালানোর জন্য instrumentation টেস্ট টাইপটি নিম্নরূপ ব্যবহার করুন:

gcloud firebase test android run \
  --type instrumentation \
  --app app-debug-unaligned.apk \
  --test app-debug-test-unaligned.apk \
  --device model=Nexus6,version=21,locale=en,orientation=portrait  \
  --device model=Nexus7,version=19,locale=fr,orientation=landscape
  --client-details matrixLabel="Example matrix label"
  • যদি একটি পরীক্ষামূলক APK --test দিয়ে নির্দিষ্ট করা থাকে, তাহলে --type ইন্সট্রুমেন্টেশন প্যারামিটারটি অন্তর্নিহিত।
  • Firebase কনসোলে আপনার পরীক্ষার ম্যাট্রিক্স সনাক্ত এবং সনাক্ত করতে সাহায্য করার জন্য, আপনি ঐচ্ছিক --client-details matrixLabel="Example matrix label" পতাকা ব্যবহার করে আপনার পরীক্ষার ম্যাট্রিক্স লেবেল করতে পারেন।
  • আপনি gcloud help firebase test android run টাইপ করে পরীক্ষা চালানোর জন্য কমান্ড লাইন বিকল্পগুলির সম্পূর্ণ সেট দেখতে পারেন।

কমান্ড লাইনে এই আর্গুমেন্টগুলি নির্দিষ্ট করার বিকল্প হিসেবে, আপনি ঐচ্ছিকভাবে YAML-ফরম্যাটেড আর্গুমেন্ট ফাইলে আপনার আর্গুমেন্টগুলি নির্দিষ্ট করতে পারেন। এই বৈশিষ্ট্যটি কীভাবে ব্যবহার করবেন তা শিখতে gcloud topic arg-files চালান।

gcloud CLI Android Test Orchestrator সমর্থন করে। Orchestrator এর জন্য AndroidJUnitRunner সংস্করণ 1.1 বা উচ্চতর সংস্করণ প্রয়োজন। এটি সক্ষম করতে, gcloud firebase test android run ব্যবহার করুন
--use-orchestrator পতাকা। এটি নিষ্ক্রিয় করতে --no-use-orchestrator পতাকা ব্যবহার করুন।

উপরে দেখানো হয়নি এমন অতিরিক্ত ফ্ল্যাগ ব্যবহার করে আপনি Test Lab আপনার ইন্সট্রুমেন্টেশন পরীক্ষাগুলি কীভাবে চালায় তা নিয়ন্ত্রণ করতে পারেন। উদাহরণস্বরূপ, আপনি আপনার টেস্ট APK দ্বারা ব্যবহৃত একটি একক ক্লাস বা একটি ক্লাস পদ্ধতি পরীক্ষা করার জন্য --test-targets ফ্ল্যাগ ব্যবহার করতে পারেন। আপনি --num-flaky-test-attempts ফ্ল্যাগ ব্যবহার করে আপনার ব্যর্থ পরীক্ষাটি আসলে ফ্ল্যাকি ছিল কিনা তাও জানতে পারেন, যা কোনও কারণে যদি কোনও পরীক্ষার ক্ষেত্রে এক বা একাধিক ব্যর্থ হয় তবে কতবার পরীক্ষা সম্পাদন পুনরায় চেষ্টা করা উচিত তা নির্দিষ্ট করে। আরও জানতে, gcloud firebase test android run দেখুন।

যন্ত্র পরীক্ষার জন্য কোড কভারেজ রিপোর্ট

Test Lab কোড কভারেজ রিপোর্টিং টুল EMMA এবং JaCoCo সমর্থন করে। যদি আপনার অ্যাপের বিল্ডে এই দুটি টুল ইন্টিগ্রেটেড থাকে, তাহলে আপনি কিছু অতিরিক্ত আর্গুমেন্ট সহ gcloud firebase test android run চালিয়ে Test Lab পরীক্ষার জন্য একটি কোড কভারেজ রিপোর্ট পেতে পারেন। যদি অ্যান্ড্রয়েড টেস্ট অর্কেস্ট্রেটর সক্রিয় না থাকে, তাহলে নিম্নলিখিতগুলি ব্যবহার করুন:

gcloud firebase test android run \
  --type instrumentation \
  --app your-app.apk \
  --test your-app-test.apk \
  --device model=TestDevice,version=AndroidVersion  \
  --environment-variables coverage=true,coverageFile="/sdcard/Download/coverage.ec" \
  --directories-to-pull /sdcard/Download

যদি আপনি অ্যান্ড্রয়েড টেস্ট অর্কেস্ট্রেটর ব্যবহার করার সময় কোড কভারেজ রিপোর্ট তৈরি করেন, তাহলে আপনার পরিবেশের ভেরিয়েবলগুলি নিম্নরূপ পরিবর্তন করুন:

gcloud firebase test android run \
  --type instrumentation \
  --app your-app.apk \
  --test your-app-test.apk \
  --device model=TestDevice,version=AndroidVersion  \
  --environment-variables clearPackageData=true,coverage=true,coverageFilePath="/sdcard/Download/" \
  --directories-to-pull /sdcard/Download

Test Lab আপনার পরীক্ষাগুলি চালানো শেষ করলে, Google Cloud Storage আপনার কোড কভারেজ রিপোর্টগুলি খুঁজুন:

  1. আপনার টার্মিনালে পরীক্ষার ফলাফল টেবিলের উপরে gcloud টুলটি প্রিন্ট করা Firebase কনসোল লিঙ্কটি খুলুন।
  2. সেই লিঙ্কের তালিকা থেকে একটি পরীক্ষামূলক সম্পাদনায় ক্লিক করে সেই সম্পাদনার বিবরণ পৃষ্ঠাটি খুলুন।
  3. পরীক্ষার ফলাফলে ক্লিক করে Cloud Storage বাকেটে যান এবং সেই এক্সিকিউশনের পরীক্ষার ফলাফল দেখুন।
  4. আপনার কোড কভারেজ রিপোর্ট দেখতে artifacts/coverage.ec খুলুন।

আপনার পরীক্ষার ফলাফল বিশ্লেষণ করুন

কয়েক মিনিট পরে, আপনার পরীক্ষার ফলাফলের একটি মৌলিক সারাংশ gcloud টুল দ্বারা মুদ্রিত হবে:

Command test results

আপনার কমান্ড লাইন টেস্ট রানের আউটপুটে পরীক্ষার ফলাফল দেখার জন্য একটি লিঙ্কও থাকে। এই ফলাফলগুলি কীভাবে ব্যাখ্যা করবেন সে সম্পর্কে আরও জানতে, Android ফলাফলের জন্য Firebase Test Lab বিশ্লেষণ দেখুন।

রোবো পরীক্ষার মাধ্যমে কাস্টম লগইন এবং টেক্সট ইনপুট

Robo test স্বয়ংক্রিয়ভাবে সাইন-ইন স্ক্রিনগুলি সম্পূর্ণ করে যা প্রমাণীকরণের জন্য একটি Google অ্যাকাউন্ট ব্যবহার করে, যদি না আপনি --no-auto-google-login প্যারামিটার ব্যবহার করেন। এটি আপনার প্রদত্ত টেস্ট অ্যাকাউন্ট শংসাপত্র ব্যবহার করে কাস্টম লগইন স্ক্রিনগুলিও সম্পূর্ণ করতে পারে। আপনি আপনার অ্যাপ দ্বারা ব্যবহৃত অন্যান্য টেক্সট ফিল্ডের জন্য কাস্টম ইনপুট টেক্সট প্রদান করতেও এই প্যারামিটারটি ব্যবহার করতে পারেন।

আপনার অ্যাপে টেক্সট ফিল্ডগুলি সম্পূর্ণ করতে, --robo-directives প্যারামিটার ব্যবহার করুন এবং key-value জোড়ার একটি কমা-বিভাজিত তালিকা প্রদান করুন, যেখানে key লক্ষ্য UI উপাদানের Android রিসোর্স নাম এবং value টেক্সট স্ট্রিং। আপনি এই পতাকাটি ব্যবহার করে Robo কে নির্দিষ্ট UI উপাদানগুলি উপেক্ষা করতে বলতে পারেন (যেমন, "লগআউট" বোতাম)। WebView UI উপাদানগুলিতে EditText ক্ষেত্রগুলি সমর্থিত কিন্তু টেক্সট ফিল্ডগুলি সমর্থিত নয়।

উদাহরণস্বরূপ, আপনি কাস্টম লগইনের জন্য নিম্নলিখিত প্যারামিটারটি ব্যবহার করতে পারেন:

--robo-directives username_resource=username,password_resource=password

উপলব্ধ কমান্ড এবং পতাকা

Test Lab gcloud CLI-তে বেশ কিছু কমান্ড এবং ফ্ল্যাগ রয়েছে যা আপনাকে বিভিন্ন স্পেসিফিকেশন সহ পরীক্ষা চালাতে দেয়:

  • অ্যান্ড্রয়েড টেস্ট অর্কেস্ট্রেটর ফ্ল্যাগ : অর্কেস্ট্রেটর সক্ষম করার জন্য একটি ফ্ল্যাগ, একটি টুল যা আপনাকে আপনার অ্যাপের প্রতিটি পরীক্ষা তার নিজস্ব ইনভোকেশন অফ Instrumentation চালাতে দেয়। Test Lab সর্বদা অর্কেস্ট্রেটরের সর্বশেষ সংস্করণ চালায়।

  • গেম লুপ টেস্ট ফ্ল্যাগ : কনফিগার ফ্ল্যাগের একটি সেট যা গেম অ্যাপে প্লেয়ার অ্যাকশন সিমুলেট করার জন্য একটি "ডেমো মোড" সক্ষম এবং নিয়ন্ত্রণ করে। Test Lab দিয়ে গেম লুপ টেস্ট চালানো সম্পর্কে আরও জানুন।

  • ইউনিফর্ম শার্ডিং ফ্ল্যাগ (বিটাতে) : একটি ফ্ল্যাগ যা কতগুলি শার্ডে সমানভাবে টেস্ট কেস বিতরণ করতে চান তা নির্দিষ্ট করে। শার্ডগুলি পৃথক ডিভাইসে সমান্তরালভাবে চালানো হয়।

  • ম্যানুয়াল শেয়ারিং ফ্ল্যাগ (বিটাতে) : একটি ফ্ল্যাগ যা একটি শার্ডে (টেস্ট কেসের একটি গ্রুপ) চালানোর জন্য প্যাকেজ, ক্লাস এবং/অথবা টেস্ট কেসের একটি গ্রুপ নির্দিষ্ট করে। শার্ডগুলি পৃথক ডিভাইসে সমান্তরালভাবে চালানো হয়।

  • নেটওয়ার্ক ট্র্যাফিক প্রোফাইল ফ্ল্যাগ (বিটাতে) : একটি ফ্ল্যাগ যা নির্দিষ্ট করে যে আপনার পরীক্ষাগুলি ভৌত ​​ডিভাইসগুলির সাথে কোন নেটওয়ার্ক প্রোফাইল ব্যবহার করে। নেটওয়ার্ক প্রোফাইলগুলি বিভিন্ন নেটওয়ার্ক শর্ত অনুকরণ করে, যা আপনাকে অবিশ্বাস্য বা অপ্রত্যাশিত নেটওয়ার্কগুলিতে আপনার অ্যাপের কর্মক্ষমতা পরীক্ষা করার অনুমতি দেয়।

Test Lab সাহায্যে gcloud কমান্ড স্ক্রিপ্ট করা

আপনি শেল স্ক্রিপ্ট বা ব্যাচ ফাইল ব্যবহার করে মোবাইল অ্যাপ টেস্টিং কমান্ডগুলি স্বয়ংক্রিয় করতে পারেন যা আপনি অন্যথায় gcloud কমান্ড লাইন ব্যবহার করে চালাতেন। নিম্নলিখিত উদাহরণে bash স্ক্রিপ্ট দুই মিনিটের টাইমআউট সহ একটি ইন্সট্রুমেন্টেশন পরীক্ষা চালায় এবং পরীক্ষাটি সফলভাবে সম্পন্ন হয়েছে কিনা তা রিপোর্ট করে:

if gcloud firebase test android run --app my-app.apk --test my-test.apk --timeout 2m
then
    echo "Test matrix successfully finished"
else
    echo "Test matrix exited abnormally with non-zero exit code: " $?
fi

স্ক্রিপ্ট এক্সিট কোড

Test Lab বেশ কিছু এক্সিট কোড প্রদান করে যা আপনি স্ক্রিপ্ট বা ব্যাচ ফাইল ব্যবহার করে চালানো পরীক্ষার ফলাফল আরও ভালভাবে বুঝতে ব্যবহার করতে পারেন।

Test Lab জন্য স্ক্রিপ্টিং এক্সিট কোড

প্রস্থান কোড মন্তব্য
0 সমস্ত পরীক্ষামূলক মৃত্যুদণ্ড উত্তীর্ণ হয়েছে।
একটি সাধারণ ব্যর্থতা ঘটেছে। সম্ভাব্য কারণগুলির মধ্যে রয়েছে: একটি ফাইলের নাম যা বিদ্যমান নেই অথবা একটি HTTP/নেটওয়ার্ক ত্রুটি।
অজানা কমান্ড বা আর্গুমেন্ট প্রদান করা হয়েছিল বলে পরীক্ষা বন্ধ করা হয়েছে।
১০ একটি পরীক্ষা সম্পাদনের মধ্যে এক বা একাধিক পরীক্ষার কেস (পরীক্ষিত ক্লাস বা ক্লাস পদ্ধতি) পাস করেনি।
১৫ একটি অপ্রত্যাশিত ত্রুটির কারণে, Firebase Test Lab পরীক্ষা ম্যাট্রিক্সটি পাস করেছে নাকি ব্যর্থ হয়েছে তা নির্ধারণ করতে পারেনি।
১৮ এই পরীক্ষা সম্পাদনের জন্য পরীক্ষামূলক পরিবেশ সমর্থিত নয় কারণ পরীক্ষার মাত্রাগুলি অসঙ্গত। নির্বাচিত ডিভাইসের ধরণ দ্বারা নির্বাচিত Android API স্তর সমর্থিত না হলে এই ত্রুটি ঘটতে পারে।
১৯ ব্যবহারকারী পরীক্ষার ম্যাট্রিক্স বাতিল করেছেন।
২০ একটি পরীক্ষার পরিকাঠামোগত ত্রুটি ঘটেছে।