Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

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

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

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

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

আপনি যদি ইতিমধ্যে না থাকেন তবে আপনার অ্যান্ড্রয়েড প্রকল্পে ফায়ারবেস যুক্ত করুন

পদক্ষেপ 1. গ্লকউড সিএলআই সেট আপ করুন

  1. গুগল ক্লাউড এসডিকে ডাউনলোড করুন
  2. এর মধ্যে গ্লকাউড সিএলআই সরঞ্জাম অন্তর্ভুক্ত রয়েছে।

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

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

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

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

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

    gcloud firebase test android models list
    

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

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

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

    gcloud firebase test android models list output

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

    gcloud firebase test android models describe MODEL_ID
    

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

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

    gcloud firebase test android versions list
    

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

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

    gcloud android versions list

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

    gcloud firebase test android versions list
    

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

চলছে পরীক্ষা

এখন যেহেতু আপনি ডিভাইস মডেল, লোকেল, এবং আপনার অ্যাপ্লিকেশন পরীক্ষার জন্য উপলব্ধ অপারেটিং সিস্টেম সংস্করণ পরিসীমা জানি, আপনি ব্যবহার ডিভাইসের নির্দিষ্ট করতে পারেন 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- বিন্যাসিত আর্গুমেন্ট ফাইলে আপনার যুক্তিগুলি optionচ্ছিকভাবে নির্দিষ্ট করতে পারেন। এই বৈশিষ্ট্যটি কীভাবে ব্যবহার করবেন তা শিখতে gcloud topic arg-files চালান।

রোবো পরীক্ষা থেকে পরীক্ষার ফলাফলগুলি কীভাবে তদন্ত করতে হয় তা শিখতে আপনার পরীক্ষা ফলাফল বিশ্লেষণ বিভাগটি দেখুন।

আপনার উপকরণ পরীক্ষা চালাচ্ছে

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

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

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

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

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

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

টেস্ট ল্যাব কোড কভারেজ রিপোর্টিং সরঞ্জামগুলি EMMA এবং জ্যাকোসকে সমর্থন করে। যদি আপনার অ্যাপ্লিকেশনটির জন্য বিল্ডে কোনও সরঞ্জাম সংহত করে থাকে, আপনি নিম্নলিখিত আর্গুমেন্টের সাহায্যে 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/coverage.ec" \
  --directories-to-pull /sdcard

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

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

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

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

Command test results

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

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

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

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

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

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

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

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

  • অ্যান্ড্রয়েড টেস্ট Orchestrator পতাকা : একটি পতাকা সক্ষম করতে Orchestrator, একটি টুল যে আপনি নিজস্ব আবাহন আপনার অ্যাপ্লিকেশনের পরীক্ষার প্রতিটি চালাতে সক্ষম Instrumentation । টেস্ট ল্যাব সর্বদা অর্কেস্টেটরের সর্বশেষতম সংস্করণটি চালায়।

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

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

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

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

স্ক্রিপ্টিং টেস্ট ল্যাব দিয়ে 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 সমস্ত পরীক্ষার ফাঁসি কার্যকর হয়েছে।
একটি সাধারণ ব্যর্থতা দেখা দিয়েছে। সম্ভাব্য কারণগুলির মধ্যে রয়েছে: একটি ফাইল নাম যা বিদ্যমান নেই বা একটি HTTP / নেটওয়ার্ক ত্রুটি।
অজানা আদেশ বা আর্গুমেন্ট সরবরাহ করা হয়েছিল কারণ পরীক্ষা নিরীক্ষা।
10 একটি পরীক্ষার প্রয়োগের মধ্যে এক বা একাধিক পরীক্ষার কেস (পরীক্ষিত শ্রেণি বা শ্রেণি পদ্ধতি) পাস হয় নি।
15 অপ্রত্যাশিত ত্রুটির কারণে ফায়ারবেস টেস্ট ল্যাব পরীক্ষা ম্যাট্রিক্স পাস করেছে বা ব্যর্থ হয়েছে কিনা তা নির্ধারণ করতে পারেনি।
18 এই পরীক্ষার প্রয়োগের জন্য পরীক্ষার পরিবেশটি বেমানান পরীক্ষার মাত্রার কারণে সমর্থিত নয়। এই ত্রুটিটি ঘটতে পারে যদি নির্বাচিত অ্যান্ড্রয়েড এপিআই স্তরটি নির্বাচিত ডিভাইসের ধরণের দ্বারা সমর্থিত না হয়।
19 পরীক্ষার ম্যাট্রিক্সটি ব্যবহারকারী বাতিল করেছিলেন।
20 একটি পরীক্ষার অবকাঠামো ত্রুটি ঘটেছে।