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

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

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

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

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

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

একটি XCTest চালান

  1. নিম্নলিখিত কমান্ডটি চালিয়ে আপনার পরীক্ষার .zip ফাইলটি আপলোড করুন (যদি আপনি এখনও আপনার অ্যাপটি প্যাকেজ আপ না করে থাকেন, তাহলে Packaging your 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 ওয়েব টোকেন তৈরি করতে পারেন। জেনারেট করা টোকেনগুলি এক ঘন্টার জন্য বৈধ থাকবে এবং প্রতি 60 মিনিটে রিফ্রেশ করতে হবে। APN-তে টোকেন-ভিত্তিক সংযোগ স্থাপন সম্পর্কে আরও পড়ুন।

অ্যাপ গ্রুপ

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

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

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

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

প্রয়োজনীয় : আপনি যে ধরণের iOS পরীক্ষা চালাতে চান তা নির্দিষ্ট করে। আপনি পরীক্ষার ধরণ xctest (ডিফল্ট) অথবা game-loop লিখতে পারেন।

--app

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

--scenario-numbers

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

উদাহরণস্বরূপ, --scenario-numbers=1-3,5 লুপ 1, 2, 3, এবং 5 রান করে।

--device-model

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

--timeout

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

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

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

উদাহরণস্বরূপ, নিম্নলিখিত কমান্ডটি একটি গেম লুপ পরীক্ষা চালায় যা একটি আইফোন 8 প্লাসে লুপ 1, 4, 6, 7 এবং 8 কার্যকর করে:

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 বেশ কিছু এক্সিট কোড প্রদান করে যা আপনি স্ক্রিপ্ট বা ব্যাচ ফাইল ব্যবহার করে চালানো পরীক্ষার ফলাফল আরও ভালভাবে বুঝতে ব্যবহার করতে পারেন।

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

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

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

পরবর্তী ধাপ

সাধারণত উপলব্ধ বা বিটাতে থাকা পরীক্ষার বিকল্পগুলি অন্বেষণ করতে Google Cloud SDK ডকুমেন্টেশনটি পড়ুন।