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

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

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

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

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

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

একটি XCTest চালান

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

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

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

    gcloud firebase test ios dimension list

    স্ক্রীন অভিযোজন কিছুটা সহজ, কারণ এর একমাত্র বিকল্পগুলি হল portrait এবং landscape

    পরীক্ষার মাত্রাগুলির তালিকাটি দেখুন, এবং আপনি আপনার পরীক্ষা চালাতে চান এমন কয়েকটি সংমিশ্রণ নির্বাচন করুন৷ আপনি প্রতিদিন চালাতে পারেন এমন সর্বাধিক সংখ্যক সংমিশ্রণ দেখতে মূল্য নির্ধারণের পরিকল্পনাগুলিতে যান৷

  3. একবার আপনি পরীক্ষার মাত্রার একটি সেট বেছে নিলে, আপনি firebase test ios run কমান্ড ব্যবহার করে টেস্ট ল্যাব আপনার পরীক্ষা চালাতে পারেন। পরীক্ষার মাত্রার প্রতিটি সংমিশ্রণের জন্য আপনি পরীক্ষা করতে চান, একটি পৃথক --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 সংস্করণের সাথে পরীক্ষাটি তৈরি করা হয়েছিল এবং টেস্ট ল্যাব দ্বারা ব্যবহৃত ডিফল্ট 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 পতাকা সেট করে তা করতে পারেন। পরীক্ষা ল্যাব বিশেষ এনটাইটেলমেন্ট সমর্থন করার জন্য একটি নতুন বান্ডেল-আইডেন্টিফায়ার দিয়ে অ্যাপ্লিকেশনটিতে পুনরায় স্বাক্ষর করে, তাই নিশ্চিত করুন যে আপনার জিপ ফাইলে অ্যাপের বান্ডেল শনাক্তকারীর সরাসরি উল্লেখ রয়েছে এমন কোনো সংস্থান নেই।

সমর্থিত এনটাইটেলমেন্ট:
  1. পুশ বিজ্ঞপ্তি apns-environment
  2. ব্যক্তিগত VPN com.apple.developer.networking.vpn.api
পুশ বিজ্ঞপ্তি

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

অ্যাপ গ্রুপ

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

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

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 সম্পর্কে আরও তথ্যের জন্য, রেফারেন্স ডকুমেন্টেশন দেখুন।

ধাপ 3 (ঐচ্ছিক) : আপনার তৈরি ভবিষ্যত পরীক্ষা স্বয়ংক্রিয় করুন

টেস্ট ল্যাবের সাথে 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

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

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

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

ধাপ 4 : পরীক্ষার ফলাফলগুলি তদন্ত করুন

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

পরবর্তী পর্ব

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