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

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

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

তুমি শুরু করার আগে

যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে আপনার Android প্রকল্পে Firebase যোগ করুন

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

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

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

ধাপ 2. উপলব্ধ পরীক্ষা ডিভাইস পরীক্ষা করুন

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

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

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

    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
    

    আউটপুটে ডিভাইস মডেলের ব্র্যান্ড, প্রস্তুতকারক, OS সংস্করণ, সমর্থিত API স্তর, প্রকাশের তারিখ এবং ডিভাইসটি শারীরিক বা ভার্চুয়াল কিনা তা রয়েছে৷

  • 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

--type robo পরামিতি অন্তর্নিহিত যদি কোনো --type মান নির্দিষ্ট করা না থাকে। আপনি টাইপ করে পরীক্ষা চালানোর জন্য কমান্ড লাইন বিকল্পগুলির সম্পূর্ণ সেট দেখতে পারেন: 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

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

জিক্লাউড সিএলআই অ্যান্ড্রয়েড টেস্ট অর্কেস্ট্রেটর সমর্থন করে। অর্কেস্ট্রেটরের AndroidJUnitRunner v1.1 বা উচ্চতর প্রয়োজন। এটি সক্ষম করতে, ব্যবহার gcloud firebase test android run
--use-orchestrator পতাকা। এটি নিষ্ক্রিয় করতে --no-use-orchestrator পতাকা ব্যবহার করুন।

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

ইন্সট্রুমেন্টেশন পরীক্ষার জন্য কোড কভারেজ রিপোর্ট

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

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

যখন টেস্ট ল্যাব আপনার পরীক্ষাগুলি চালানো শেষ করে, তখন Google ক্লাউড স্টোরেজে আপনার কোড কভারেজ রিপোর্টগুলি খুঁজুন:

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

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

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

Command test results

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

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

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

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

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

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

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

টেস্ট ল্যাব জিক্লাউড সিএলআই-তে বেশ কয়েকটি কমান্ড এবং পতাকা উপলব্ধ রয়েছে যা আপনাকে বিভিন্ন নির্দিষ্টকরণের সাথে পরীক্ষা চালাতে দেয়:

টেস্ট ল্যাবের সাথে জিক্লাউড কমান্ড স্ক্রিপ্ট করা

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

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

স্ক্রিপ্ট প্রস্থান কোড

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

টেস্ট ল্যাবের জন্য স্ক্রিপ্টিং প্রস্থান কোড

প্রস্থান কোড মন্তব্য
0 সমস্ত পরীক্ষা মৃত্যুদন্ড পাস.
1 একটি সাধারণ ব্যর্থতা ঘটেছে. সম্ভাব্য কারণগুলির মধ্যে রয়েছে: একটি ফাইলের নাম যা বিদ্যমান নেই বা একটি HTTP/নেটওয়ার্ক ত্রুটি৷
2 অজানা কমান্ড বা আর্গুমেন্ট প্রদান করা হয়েছে বলে পরীক্ষা প্রস্থান করা হয়েছে।
10 একটি পরীক্ষা সম্পাদনের মধ্যে এক বা একাধিক পরীক্ষার ক্ষেত্রে (পরীক্ষিত ক্লাস বা ক্লাস পদ্ধতি) পাস হয়নি।
15 ফায়ারবেস টেস্ট ল্যাব একটি অপ্রত্যাশিত ত্রুটির কারণে পরীক্ষা ম্যাট্রিক্স পাস বা ব্যর্থ হয়েছে কিনা তা নির্ধারণ করতে পারেনি।
18 বেমানান পরীক্ষার মাত্রার কারণে এই পরীক্ষা সম্পাদনের জন্য পরীক্ষার পরিবেশ সমর্থিত নয়। নির্বাচিত Android API স্তর নির্বাচিত ডিভাইস প্রকার দ্বারা সমর্থিত না হলে এই ত্রুটি ঘটতে পারে৷
19 পরীক্ষা ম্যাট্রিক্স ব্যবহারকারী দ্বারা বাতিল করা হয়েছে.
20 একটি পরীক্ষা পরিকাঠামো ত্রুটি ঘটেছে.