Google ক্লাউড CLI দিয়ে পরীক্ষা করুন

এই নির্দেশিকায় gcloud CLI ব্যবহার করে কীভাবে একটি XCTest বা Game Loop টেস্ট চালানো যায় তা বর্ণনা করা হয়েছে।

ধাপ ১ : আপনার স্থানীয় গুগল ক্লাউড এসডিকে পরিবেশ কনফিগার করুন

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

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

ধাপ ২ : আপনার পরীক্ষাটি চালান

একটি XCTest চালান

  1. নিম্নলিখিত কমান্ডটি চালিয়ে আপনার টেস্টের .zip ফাইলটি আপলোড করুন (যদি আপনি এখনও আপনার অ্যাপটি প্যাকেজ না করে থাকেন, তাহলে “আপনার XCTest প্যাকেজিং ” দেখুন):

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
  2. আপনার পরীক্ষার মাত্রা নির্বাচন করুন।

    Test Lab আপনাকে বিভিন্ন iOS সংস্করণ, ডিভাইস, স্ক্রিন ওরিয়েন্টেশন এবং লোকেলে টেস্ট চালানোর সুযোগ দেয়। এই কনফিগারেশনগুলো টেস্টের ' টেস্ট ডাইমেনশন ' নামে পরিচিত। প্রতিটি ডাইমেনশনের অপশনগুলো দেখতে (যেমন, ডিভাইসের iOS সংস্করণের জন্য সমর্থিত Xcode সংস্করণ), নিচের কমান্ডে dimension এর জায়গায় models , versions ' বা locales বসান:

    gcloud firebase test ios dimension list

    স্ক্রিন ওরিয়েন্টেশন কিছুটা সহজ, কারণ এর একমাত্র অপশন হলো portrait এবং landscape

    টেস্ট ডাইমেনশনের তালিকাটি দেখুন এবং কয়েকটি কম্বিনেশন বেছে নিন যেগুলোর ওপর আপনি আপনার টেস্টটি চালাতে চান। প্রতিদিন আপনি সর্বোচ্চ কতগুলো কম্বিনেশন চালাতে পারবেন তা দেখতে প্রাইসিং প্ল্যানস-এ যান।

  3. একবার আপনি পরীক্ষার জন্য ডাইমেনশনের একটি সেট বেছে নিলে, ` firebase test ios run কমান্ডটি ব্যবহার করে Test Lab আপনার পরীক্ষাগুলো চালাতে দিতে পারেন। আপনি পরীক্ষার জন্য ডাইমেনশনের প্রতিটি সংমিশ্রণের জন্য একটি পৃথক --device ফ্ল্যাগ অন্তর্ভুক্ত করুন:

    gcloud firebase test ios run --test PATH/TO/MyTests.zip \
     --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
     --device model=MODEL_ID_2,version=VERSION_ID_2,locale=LOCALE_2,orientation=ORIENTATION_2 \
     etc...

    যে Xcode সংস্করণ দিয়ে আপনার টেস্টটি তৈরি করা হয়েছে এবং Test Lab দ্বারা ব্যবহৃত ডিফল্ট Xcode সংস্করণের মধ্যে অসামঞ্জস্যতার কারণে আপনার টেস্টটি ব্যর্থ হতে পারে। আপনার টেস্টের জন্য একটি সমর্থিত Xcode সংস্করণ নির্দিষ্ট করতে, --xcode-version ফ্ল্যাগটি ব্যবহার করুন:

    gcloud firebase test ios run --test PATH/TO/MyTests.zip \
     --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
     --xcode-version=15

    Firebase কনসোলে আপনার টেস্ট ম্যাট্রিক্সগুলি শনাক্ত করতে ও খুঁজে পেতে সাহায্য করার জন্য, আপনি ঐচ্ছিকভাবে নিম্নলিখিত উদাহরণের মতো --client-details matrixLabel="<label>" ফ্ল্যাগটি ব্যবহার করে আপনার টেস্ট ম্যাট্রিক্সকে লেবেল করতে পারেন:

    gcloud beta firebase test ios run --test PATH/TO/MyTests.zip \
      --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
      --client-details matrixLabel="my label"

পরীক্ষার বিশেষ অধিকার

যেসব এনটাইটেলমেন্টের জন্য একটি সুস্পষ্ট অ্যাপ আইডি প্রয়োজন, সেগুলো পরীক্ষা করার জন্য আপনি --test-special-entitlements ফ্ল্যাগটি সেট করতে পারেন। বিশেষ এনটাইটেলমেন্ট সমর্থন করার জন্য Test Lab একটি নতুন বান্ডেল-আইডেন্টিফায়ার দিয়ে অ্যাপ্লিকেশনটিকে পুনরায় সাইন করে, তাই নিশ্চিত করুন যে আপনার জিপ ফাইলে এমন কোনো রিসোর্স নেই যাতে অ্যাপটির বান্ডেল আইডেন্টিফায়ারের সরাসরি উল্লেখ রয়েছে।

সমর্থিত অধিকারসমূহ:
  1. পুশ নোটিফিকেশন apns-environment
  2. ব্যক্তিগত ভিপিএন com.apple.developer.networking.vpn.api
পুশ বিজ্ঞপ্তি

পুশ নোটিফিকেশন অনুরোধ অনুমোদন করার জন্য, ব্যবহারকারীরা প্রাইভেট সাইনিং কী-এর সাথে কী আইডি - C7FD9DJAA8 এবং টিম আইডি - 9CKCGNNUQN ব্যবহার করে JSON ওয়েব টোকেন তৈরি করতে পারেন। তৈরি করা টোকেনগুলো এক ঘণ্টার জন্য বৈধ থাকবে এবং প্রতি ৬০ মিনিট পর পর রিফ্রেশ করতে হবে। APNs-এর সাথে টোকেন-ভিত্তিক সংযোগ স্থাপন সম্পর্কে আরও পড়ুন।

অ্যাপ গ্রুপ

অ্যাপ গ্রুপ আইডিগুলো সর্বজনীনভাবে অনন্য। এর মানে হলো, যখন আমরা ব্যবহারকারীর অ্যাপগুলোকে পুনরায় সাইন করি, তখন আমরা শুধুমাত্র সেই অ্যাপ গ্রুপ আইডিটিই ব্যবহার করতে পারি যা Test Lab ডেভেলপার অ্যাকাউন্টের সাথে যুক্ত। যদি আপনার টেস্ট অ্যাপ গ্রুপের উপর নির্ভর করে, তাহলে আপনার টেস্টটি ব্যর্থ হবে।

একটি গেম লুপ পরীক্ষা চালান

gcloud beta firebase test ios run কমান্ডটি চালান এবং রানটি কনফিগার করতে নিম্নলিখিত ফ্ল্যাগগুলি ব্যবহার করুন:

গেম লুপ পরীক্ষার জন্য ফ্ল্যাগ
--type

আবশ্যক : আপনি কোন ধরনের iOS টেস্ট চালাতে চান তা নির্দিষ্ট করুন। আপনি টেস্ট টাইপ হিসেবে xctest (ডিফল্ট) অথবা game-loop লিখতে পারেন।

--app

আবশ্যক : আপনার অ্যাপের IPA ফাইলের অ্যাবসোলিউট পাথ (GCS বা ফাইলসিস্টেম)। এই ফ্ল্যাগটি শুধুমাত্র গেম লুপ টেস্ট চালানোর সময় বৈধ।

--scenario-numbers

আপনার অ্যাপে আপনি যে লুপগুলো (বা সিনারিও) চালাতে চান। আপনি একটি লুপ, লুপের একটি তালিকা, অথবা লুপের একটি পরিসর প্রবেশ করাতে পারেন। ডিফল্ট লুপ হলো ১।

উদাহরণস্বরূপ, --scenario-numbers=1-3,5 কমান্ডটি ১, ২, ৩ এবং ৫ নম্বর লুপগুলো চালায়।

--device-model

যে ভৌত ডিভাইসটিতে আপনি আপনার পরীক্ষাটি চালাতে চান (খুঁজে বের করুন কোন কোন উপলব্ধ ডিভাইস আপনি ব্যবহার করতে পারবেন)।

--timeout

আপনার পরীক্ষাটি চালানোর সর্বোচ্চ সময়কাল। আপনি সেকেন্ডে সময়কাল বোঝানোর জন্য একটি পূর্ণসংখ্যা, অথবা দীর্ঘতর সময়ের একক হিসাবে সময়কাল বোঝানোর জন্য একটি পূর্ণসংখ্যা এবং এনুমারেশন লিখতে পারেন।

উদাহরণস্বরূপ:

  • --timeout=200 বিকল্পটি আপনার টেস্টকে ২০০ সেকেন্ড পর্যন্ত চলার পর বন্ধ করে দেয়।
  • --timeout=1h বিকল্পটি আপনার টেস্টকে এক ঘণ্টা পর্যন্ত চলার পর বন্ধ করে দেয়।

উদাহরণস্বরূপ, নিম্নলিখিত কমান্ডটি একটি iPhone 8 Plus-এ একটি গেম লুপ টেস্ট চালায় যা লুপ ১, ৪, ৬, ৭, এবং ৮ কার্যকর করে:

gcloud beta firebase test ios run
 --type game-loop --app path/to/my/App.ipa --scenario-numbers 1,4,6-8
 --device-model=iphone8plus

gcloud CLI সম্পর্কে আরও তথ্যের জন্য, রেফারেন্স ডকুমেন্টেশন দেখুন।

ধাপ ৩ (ঐচ্ছিক) : ভবিষ্যতে আপনার তৈরি করা টেস্টগুলো স্বয়ংক্রিয় করুন

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

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

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

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

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

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

ধাপ ৪ : পরীক্ষার ফলাফল তদন্ত করুন

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

পরবর্তী পদক্ষেপ

সাধারণভাবে উপলব্ধ বা বিটা পর্যায়ে থাকা টেস্টিং অপশনগুলো সম্পর্কে জানতে গুগল ক্লাউড এসডিকে ডকুমেন্টেশন পড়ুন।