এই পৃষ্ঠাটিতে Firebase Test Lab ব্যবহার করে টেস্ট চালানোর বিষয়ে সমস্যা সমাধানের সাহায্য এবং প্রায়শই জিজ্ঞাসিত প্রশ্নের উত্তর দেওয়া হয়েছে। জ্ঞাত সমস্যাগুলোও এখানে নথিভুক্ত করা আছে। আপনি যা খুঁজছেন তা যদি খুঁজে না পান বা অতিরিক্ত সাহায্যের প্রয়োজন হয়, তাহলে ফায়ারবেস স্ল্যাক-এর #test-lab চ্যানেলে যোগ দিন অথবা ফায়ারবেস সাপোর্টের সাথে যোগাযোগ করুন।
সমস্যা সমাধান
Test Lab ক্যাটালগে উচ্চ ধারণক্ষমতা সম্পন্ন কোনো ডিভাইস নির্বাচন করলে, টেস্টগুলো দ্রুত শুরু হতে পারে। কোনো ডিভাইসের ধারণক্ষমতা কম হলে, টেস্টগুলো চলতে বেশি সময় লাগতে পারে। যদি চালু করা টেস্টের সংখ্যা নির্বাচিত ডিভাইসগুলোর ধারণক্ষমতার চেয়ে অনেক বেশি হয়, তাহলে টেস্টগুলো শেষ হতে বেশি সময় লাগতে পারে।
নিম্নলিখিত কারণগুলির জন্য যেকোনো ডিভাইস ধারণক্ষমতা স্তরে পরীক্ষা চালাতে বেশি সময় লাগতে পারে:
- ট্র্যাফিক, যা ডিভাইসের প্রাপ্যতা এবং পরীক্ষার গতিকে প্রভাবিত করে।
- ডিভাইস বা পরিকাঠামোগত ত্রুটি, যা যেকোনো সময় ঘটতে পারে। Test Lab জন্য কোনো পরিকাঠামোগত ত্রুটি রিপোর্ট করা হয়েছে কিনা তা পরীক্ষা করতে, ফায়ারবেস স্ট্যাটাস ড্যাশবোর্ড দেখুন।
Test Lab ডিভাইসের ধারণক্ষমতা সম্পর্কে আরও জানতে, অ্যান্ড্রয়েড এবং আইওএস-এর জন্য ডিভাইসের ধারণক্ষমতার তথ্য দেখুন।
সাধারণত টেস্ট রান বাতিল হওয়া অথবা অবকাঠামোগত ত্রুটির কারণে পরীক্ষার ফলাফল অস্পষ্ট হয়।
নেটওয়ার্ক ত্রুটি বা ডিভাইসের অপ্রত্যাশিত আচরণের মতো Test Lab অভ্যন্তরীণ সমস্যার কারণে ইনফ্রাস্ট্রাকচার ত্রুটি ঘটে থাকে। একটি অনির্দিষ্ট ফলাফল জানানোর আগে, Test Lab অভ্যন্তরীণভাবে ইনফ্রাস্ট্রাকচার ত্রুটি সৃষ্টিকারী টেস্ট রানগুলোকে একাধিকবার বন্ধ করে দেয়; তবে, আপনি failFast ব্যবহার করে এই পুনঃপ্রচেষ্টাগুলো নিষ্ক্রিয় করতে পারেন।
ত্রুটির কারণ নির্ণয় করতে এই ধাপগুলো অনুসরণ করুন:
- ফায়ারবেস স্ট্যাটাস ড্যাশবোর্ডে জ্ঞাত বিভ্রাটগুলো পরীক্ষা করুন।
পরীক্ষাটি পুনরাবৃত্তিযোগ্য কিনা তা যাচাই করতে Test Lab পুনরায় চেষ্টা করুন।
প্রযোজ্য হলে, পরীক্ষাটি অন্য কোনো ডিভাইস বা ডিভাইসের ধরনে চালানোর চেষ্টা করুন।
যদি সমস্যাটি অব্যাহত থাকে, তাহলে Firebase Slack-এর #test-lab চ্যানেলে Test Lab টিমের সাথে যোগাযোগ করুন।
Test Lab ব্যবহারের জন্য উপলব্ধ ডিভাইসের সংখ্যার চেয়ে আপনার নির্দিষ্ট করা শার্ডের সংখ্যা বেশি হলে, শার্ডিংয়ের কারণে আপনার টেস্টগুলো চলতে বেশি সময় লাগতে পারে। এই পরিস্থিতি এড়াতে, অন্য একটি ডিভাইসে পরিবর্তন করার চেষ্টা করুন। অন্য ডিভাইস নির্বাচন করার বিষয়ে আরও তথ্যের জন্য দেখুনডিভাইসের ধারণক্ষমতা ।
যখন আপনি একটি পরীক্ষার অনুরোধ জমা দেন, তখন ডিভাইসে পরীক্ষা চালানোর প্রস্তুতির জন্য আপনার অ্যাপটিকে প্রথমে যাচাই, পুনরায় স্বাক্ষর ইত্যাদি করা হয়। সাধারণত, এই প্রক্রিয়াটি কয়েক সেকেন্ডেরও কম সময়ে সম্পন্ন হয়, কিন্তু আপনার অ্যাপের আকারের মতো বিষয়গুলির দ্বারা এটি প্রভাবিত হতে পারে।
আপনার অ্যাপ প্রস্তুত হয়ে গেলে, টেস্ট এক্সিকিউশনগুলো শিডিউল করা হয় এবং কোনো ডিভাইস এটি চালানোর জন্য প্রস্তুত না হওয়া পর্যন্ত একটি কিউ-তে থাকে। সমস্ত টেস্ট এক্সিকিউশন শেষ না হওয়া পর্যন্ত, ম্যাট্রিক্স স্ট্যাটাস "পেন্ডিং" থাকবে (টেস্ট এক্সিকিউশনগুলো কিউ-তে থাকুক বা সক্রিয়ভাবে চলুক, তা নির্বিশেষে)।
টেস্ট সম্পাদন শেষ হওয়ার পর, টেস্ট আর্টিফ্যাক্টগুলো ডিভাইস থেকে ডাউনলোড, প্রসেস এবং Cloud Storage আপলোড করা হয়। এই ধাপের সময়কাল আর্টিফ্যাক্টগুলোর পরিমাণ ও আকারের উপর নির্ভর করে।
অ্যান্ড্রয়েড-নির্দিষ্ট সমস্যা সমাধান
টেস্ট এক্সিকিউশনের আর্টিফ্যাক্ট (যেমন স্ক্রিনশট এবং লগ ফাইল) Google Cloud Storage সংরক্ষিত থাকে এবং সরাসরি Firebase কনসোলে রেন্ডার করা হয়। যদি আপনার টেস্ট এক্সিকিউশন গত ৯০ দিনের মধ্যে করা হয়ে থাকে, তবে নিশ্চিত করুন যে আপনি প্রজেক্ট লেভেলের রোল (প্রজেক্ট ওনার, প্রজেক্ট এডিটর, বা প্রজেক্ট ভিউয়ার) অ্যাসাইন করেছেন। অনুগ্রহ করে আরও নিশ্চিত করুন যে আপনার প্রজেক্ট বা আপনার অর্গানাইজেশনের জন্য ক্লাউড অডিট লগিং এনাবল করা নেই।
যদি এক্সিকিউশনটি ৯০ দিনেরও বেশি আগে করা হয়ে থাকে, তাহলে সম্ভবত টেস্ট আর্টিফ্যাক্টগুলো স্বয়ংক্রিয়ভাবে মুছে গেছে। আপনি Test Lab ড্যাশবোর্ডে থাকা 'টেস্ট রেজাল্টস' ট্যাবে ক্লিক করে রেজাল্ট বাকেটের কনফিগারেশন পরীক্ষা করতে পারেন। ডিফল্ট রেজাল্ট বাকেটটি ৯০ দিনের জন্য অবজেক্টগুলো সংরক্ষণ করার জন্য কনফিগার করা থাকে।
আপনার টেস্ট আর্টিফ্যাক্টগুলো দীর্ঘ সময়ের জন্য সংরক্ষণ করতে, --results-bucket ফ্ল্যাগসহ gcloud firebase test android run কমান্ডটি চালান এবং রেজাল্ট বাকেটের নামটি পাস করুন। আরও তথ্যের জন্য, ` gcloud firebase test android run রেফারেন্স ডকুমেন্টেশন দেখুন।
যখন আপনি ইন্সট্রুমেন্টেশন টেস্ট চালান, তখন আপনি আংশিক ফলাফল নির্দেশকারী টেস্ট এরর দেখতে পারেন, যেখানে Test run failed to complete. Expected x tests, received y (যেখানে y x এর চেয়ে কম) এর মতো বার্তা থাকে। এই এররের অর্থ হলো, Test Lab টেস্ট কেসের শুরু বা শেষের মার্কারগুলোর জন্য লগক্যাট পার্স করতে পারেনি, যা সাধারণত AndroidJUnitRunner দ্বারা তৈরি হয়।
এই সমস্যার সাধারণ কারণগুলো হলো:
| সমস্যার বিবরণ | সম্ভাব্য সমাধান |
|---|---|
| টাইমআউটের কারণে টেস্ট কেসটি রান হয়নি। যদি টেস্টগুলোর মোট সময়কাল আপনার নির্দিষ্ট করা টাইমআউট বা সর্বোচ্চ টাইমআউটের চেয়ে বেশি হয়, তাহলে Test Lab বাকি টেস্ট কেসগুলো বাতিল করে দেয়। |
|
| টেস্ট কেসটি অসময়ে বন্ধ হয়ে যাওয়ায় বা আটকে যাওয়ায় সম্পূর্ণ হতে পারেনি। একটি আনক্যাচড এক্সেপশন বা অ্যাসারশন এররের কারণে টেস্ট কেসটি অসময়ে বন্ধ হয়ে যেতে পারে। টেস্ট কেসগুলো একটি ইনফিনিট লুপে আটকে যেতে পারে বা এগোতে অক্ষম হতে পারে, উদাহরণস্বরূপ, যদি অ্যাপটি সঠিক ভিউ না দেখায় এবং টেস্ট কেসটি UI-তে অ্যাকশনটি সম্পাদন করতে না পারে। | পরীক্ষাটি কোথায় থেমেছিল তা খতিয়ে দেখতে ভিডিও এবং logcat পরীক্ষা করুন। |
একটি কাস্টম টেস্ট রানার (AndroidJUnitRunner-এর সম্প্রসারণ সহ) অপ্রত্যাশিতভাবে ক্র্যাশ করেছে অথবা logcat অপ্রত্যাশিত টেস্ট কেস শুরু বা শেষের মার্কার লিখেছে। | আপনার টেস্ট রানার কোড যাচাই করুন। |
logcat এ অতিরিক্ত লগ লেখা হয়েছিল, যার ফলে বাফারটি ওভারলোড হয়ে যায় অথবা logcat প্রসেসটি ক্র্যাশ করে। | logcat লেখা কমান। |
| পরীক্ষাধীন অ্যাপটি ক্র্যাশ করেছে। | আপনার অ্যাপটি ডিবাগ করুন। |
প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী (FAQ)
Firebase Test Lab ডিভাইসে টেস্টিং এবং ক্লাউড এপিআই ব্যবহারের জন্য বিনামূল্যে কোটা প্রদান করে। উল্লেখ্য যে, টেস্টিং কোটা স্ট্যান্ডার্ড ফায়ারবেস প্রাইসিং প্ল্যান ব্যবহার করে, কিন্তু ক্লাউড এপিআই কোটাগুলো তা করে না।
পরীক্ষার কোটা
পরীক্ষা চালানোর জন্য ব্যবহৃত ডিভাইসের সংখ্যার উপর ভিত্তি করে টেস্টিং কোটা নির্ধারণ করা হয়। Firebase Spark প্ল্যানে ব্যবহারকারীদের জন্য কোনো খরচ ছাড়াই একটি নির্দিষ্ট টেস্টিং কোটা রয়েছে। Blaze প্ল্যানের ক্ষেত্রে, সময়ের সাথে সাথে আপনার Google Cloud-এর ব্যবহার বাড়লে আপনার কোটাও বাড়তে পারে। আপনি যদি আপনার টেস্টিং কোটায় পৌঁছে যান, তাহলে পরের দিন পর্যন্ত অপেক্ষা করুন অথবা আপনি যদি বর্তমানে Spark প্ল্যানে থাকেন, তাহলে Blaze প্ল্যানে আপগ্রেড করুন। আপনি যদি ইতিমধ্যেই Blaze প্ল্যানে থাকেন, তাহলে আপনি কোটা বাড়ানোর জন্য অনুরোধ করতে পারেন। আরও তথ্যের জন্য, টেস্টিং কোটা দেখুন।
আপনি Google Cloud কনসোলে আপনার টেস্টিং কোটার ব্যবহার নিরীক্ষণ করতে পারেন।
ক্লাউড টেস্টিং এপিআই কোটা
ক্লাউড টেস্টিং এপিআই-এর দুটি কোটা সীমা রয়েছে: প্রতি প্রজেক্টে প্রতিদিনের জন্য অনুরোধ, এবং প্রতি প্রজেক্টে প্রতি ১০০ সেকেন্ডে অনুরোধ। আপনি Google Cloud কনসোলে আপনার ব্যবহার নিরীক্ষণ করতে পারেন।
ক্লাউড টুল ফলাফল এপিআই কোটা
ক্লাউড টুল রেজাল্টস এপিআই-এর দুটি কোটা সীমা রয়েছে: প্রতি প্রজেক্টে প্রতিদিনের জন্য কোয়েরি, এবং প্রতি প্রজেক্টে প্রতি ১০০ সেকেন্ডে কোয়েরি। আপনি Google Cloud কনসোলে আপনার ব্যবহার নিরীক্ষণ করতে পারেন।
এপিআই সীমা সম্পর্কে আরও তথ্যের জন্য Test Lab ক্লাউড এপিআই কোটা দেখুন। যদি আপনি এপিআই কোটায় পৌঁছে যান:
সরাসরি Google Cloud কনসোলে আপনার কোটা সম্পাদনা করে উচ্চতর কোটার জন্য অনুরোধ জমা দিন (মনে রাখবেন যে বেশিরভাগ সীমা ডিফল্টরূপে সর্বোচ্চতে সেট করা থাকে), অথবা
Google Cloud কনসোলে একটি অনুরোধ ফর্ম পূরণ করে অথবা ফায়ারবেস সাপোর্টের সাথে যোগাযোগ করে উচ্চতর এপিআই কোটার জন্য অনুরোধ করুন।
আপনার ব্যাকএন্ড থেকে, আমাদের আইপি রেঞ্জের সাথে সোর্স আইপি অ্যাড্রেস মিলিয়ে দেখে আপনি নির্ধারণ করতে পারেন যে ট্র্যাফিকটি ফায়ারবেস-হোস্টেড টেস্ট ডিভাইস থেকে আসছে কিনা।
Test Lab VPC-SC-এর সাথে কাজ করে না, যা Test Lab অভ্যন্তরীণ স্টোরেজ এবং ব্যবহারকারীদের রেজাল্ট বাকেটের মধ্যে অ্যাপ ও অন্যান্য টেস্ট আর্টিফ্যাক্ট কপি করাকে ব্লক করে।
আপনার টেস্টের ত্রুটিপূর্ণ আচরণ শনাক্ত করতে, আমরা ব্যবহার করার পরামর্শ দিই--num-flaky-test-attemptsবিকল্প। Deflake রি-রানগুলো সাধারণ টেস্ট এক্সিকিউশনের মতোই আপনার দৈনিক কোটার মধ্যে বিল করা হয় বা গণনা করা হয়।
নিম্নলিখিত বিষয়গুলো মনে রাখবেন:
- কোনো ব্যর্থতা শনাক্ত হলে সম্পূর্ণ টেস্টটি আবার চালানো হয়। শুধুমাত্র ব্যর্থ টেস্ট কেসগুলো পুনরায় চালানোর কোনো ব্যবস্থা নেই।
- Deflake রিট্রাই রানগুলো একই সময়ে চলার জন্য নির্ধারিত থাকে, কিন্তু সেগুলো সমান্তরালভাবে চলবে এমন কোনো নিশ্চয়তা নেই, যেমন—যখন ট্র্যাফিক উপলব্ধ ডিভাইসের সংখ্যা ছাড়িয়ে যায়।
iOS-এর জন্য নির্দিষ্ট প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী
যদিও এই বিষয়গুলোর মধ্যে কয়েকটি আমাদের পরিকল্পনায় রয়েছে, আমরা বর্তমানে এই টেস্টিং এবং অ্যাপ ডেভেলপমেন্ট প্ল্যাটফর্মগুলোকে সমর্থন করার প্রতিশ্রুতি দিতে পারছি না।
ডিভাইসের বিস্তারিত তথ্য API-এর মাধ্যমে পাওয়া যায় এবং gcloud ক্লায়েন্ট থেকে describe কমান্ড ব্যবহার করে তা অ্যাক্সেস করা যায়।
gcloud firebase test ios models describe MODEL
Test Lab for iOS-এর মধ্যে শার্ডিং স্বাভাবিকভাবে সমর্থিত নয়। তবে, আপনি iOS টেস্ট কেস শার্ড করার জন্য Flank ক্লায়েন্ট ব্যবহার করতে পারেন।
এটি .xctestrun ফাইলে OnlyTestIdentifiers কী এবং ভ্যালু সেট করার মাধ্যমে কাজ করে। আরও বিস্তারিত জানতে xcodebuild.xctestrun এর man পেজ দেখুন।
iOS 18 বা তার পরবর্তী সংস্করণগুলোতে আমরা ফলাফলে ভিডিও সমর্থন করতে পারছি না।
অ্যান্ড্রয়েড-সংক্রান্ত প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী
হ্যাঁ! Test Lab গুগল পিক্সেল ওয়াচ সাপোর্ট করে। এখন আপনি আপনার স্বতন্ত্র Wear অ্যাপে গুগল পিক্সেল ওয়াচগুলোতে পরীক্ষা চালাতে পারবেন। Test Lab ডিভাইসগুলো সম্পর্কে আরও জানতে, ‘উপলব্ধ ডিভাইসগুলোতে পরীক্ষা করুন ’ দেখুন।
হ্যাঁ! Test Lab গুগল পিক্সেল ট্যাবলেট এবং গুগল পিক্সেল ফোল্ড সমর্থন করে। আপনি আপনার স্বতন্ত্র ফিজিক্যাল ডিভাইসগুলোতেও পরীক্ষাগুলো চালাতে পারেন। Test Lab ডিভাইসগুলো সম্পর্কে আরও জানতে, ‘উপলব্ধ ডিভাইসগুলোতে পরীক্ষা করুন ’ দেখুন।
আপনি যদি Firebase-এ আপনার অ্যাপ পরীক্ষা করেন অথবা প্লে কনসোলে কোনো প্রি-লঞ্চ রিপোর্টের জন্য টেস্ট চালান, তাহলে আপনার MainActivity ফাইলে firebase.test.lab সিস্টেম প্রপার্টিটি পরীক্ষা করে দেখতে পারেন যে টেস্টটি কোনো Firebase-হোস্টেড ডিভাইসে চালানো হচ্ছে কি না। এরপর আপনি testLabSetting এর বুলিয়ান মানের উপর ভিত্তি করে অতিরিক্ত স্টেটমেন্ট এক্সিকিউট করতে পারেন। আরও তথ্যের জন্য, Modified test behaviors দেখুন।
যদিও এই বিষয়গুলোর মধ্যে কয়েকটি আমাদের রোডম্যাপে রয়েছে, আমরা বর্তমানে এই টেস্টিং এবং অ্যাপ ডেভেলপমেন্ট প্ল্যাটফর্মগুলোকে সমর্থন করার প্রতিশ্রুতি দিতে পারছি না। তবে, আপনি যদি Espresso সমর্থন করে এমন কোনো ফ্রেমওয়ার্ক (যেমন, Flutter) দিয়ে আপনার অ্যাপটি তৈরি করে থাকেন, তাহলে আপনি Espresso ব্যবহার করে একটি ইন্সট্রুমেন্টেশন টেস্ট লিখতে এবং তারপর Test Lab সেই টেস্টটি চালাতে পারবেন।
Test Lab স্পষ্টভাবে অবফাসকেশন বা ডিওবফাসকেশন সমর্থন করে না। যদিও অ্যাপটি সম্ভবত চলবে, স্ট্যাক ট্রেসের মতো যেকোনো অবফাসকেটেড অ্যাপ ডেটা লগগুলিতে অবফাসকেটেড হিসেবেই প্রদর্শিত হবে।
হ্যাঁ! আপনি আপনার ফোল্ডেবল ডিভাইসটি বিভিন্ন ভাঁজ করা অবস্থায় ও ভঙ্গিতে পরীক্ষা করতে পারেন।
ফোল্ডেবল ডিভাইসগুলো বিভিন্ন ভাঁজ করা অবস্থায় থাকতে পারে, যেমন FLAT (সম্পূর্ণ খোলা) বা HALF_OPENED (সম্পূর্ণ খোলা এবং পুরোপুরি বন্ধের মাঝামাঝি)।
অন্যদিকে, পসচার বা ভঙ্গি বলতে ডিভাইসের নির্দিষ্ট অবস্থান এবং ভাঁজযোগ্য অবস্থাকে বোঝায়। উদাহরণস্বরূপ, টেবিলটপ পসচার, যা অনুভূমিক অবস্থানে একটি HALF_OPENED অবস্থা, অথবা বুক পসচার, যা উল্লম্ব অবস্থানে একটি HALF_OPENED অবস্থা।
আপনি যদি ইন্সট্রুমেন্টেশন টেস্ট চালান, তাহলে বিভিন্ন স্টেট ও পোসচারে পরীক্ষা করার জন্য Jetpack WindowManager লাইব্রেরি ব্যবহার করতে পারেন এবং 'testing your app on foldables' ডকুমেন্টেশন অনুসরণ করতে পারেন।
বিকল্পভাবে, উপলব্ধ স্টেটগুলো ডিভাইস-নির্দিষ্ট এবং adb shell command cmd device_state ব্যবহার করে সেগুলোর সাথে ইন্টারঅ্যাক্ট করা যায়।
- বর্তমান অবস্থা জানতে,
adb shell cmd device_state stateচালান। - বর্তমান অবস্থা সেট করতে বা পরিবর্তন করতে,
adb shell cmd device_state state <IDENTIFIER>চালান। - অবস্থা রিসেট করতে,
adb shell cmd device_state state resetচালান। - উপলব্ধ স্টেটগুলো পরীক্ষা করতে, ফোল্ডেবল ডিভাইসটিতে
adb shell cmd device_state print-statesকমান্ডটি চালান।
গুগল পিক্সেল ফোল্ড (মডেল আইডি felix )
$ adb shell cmd device_state print-states Supported states: [ DeviceState{identifier=0, name='CLOSED', app_accessible=true}, DeviceState{identifier=1, name='HALF_OPENED', app_accessible=true}, DeviceState{identifier=2, name='OPENED', app_accessible=true}, DeviceState{identifier=3, name='REAR_DISPLAY_STATE', app_accessible=true}, ]
স্যামসাং গ্যালাক্সি জেড ফোল্ড৪ (মডেল আইডি q4q )
$ adb shell cmd device_state print-states Supported states: [ DeviceState{identifier=0, name='CLOSE', app_accessible=true}, DeviceState{identifier=1, name='TENT', app_accessible=true}, DeviceState{identifier=2, name='HALF_FOLDED', app_accessible=true}, DeviceState{identifier=3, name='OPEN', app_accessible=true}, ]
অন্যান্য Firebase প্রোডাক্টের মতো, Test Lab ব্যবহার করার জন্য আপনাকে কোনো Firebase SDK যোগ করতে হবে না। যদি আপনার আগে থেকে কোনো অ্যাপ না থাকে, তাহলে আপনি অনলাইন থেকে একটি APK ডাউনলোড করতে পারেন অথবা AndroidX GitHub রিপোজিটরিতে থাকা স্যাম্পলগুলো থেকে একটি অ্যাপ এবং একটি টেস্ট APK তৈরি করতে পারেন। মনে রাখবেন যে, একটি রোবো টেস্ট চালানোর জন্য শুধুমাত্র আপনার অ্যাপের APK ফাইলটি প্রয়োজন, যেখানে একটি ইন্সট্রুমেন্টেশন টেস্টের জন্য সোর্স কোড থেকে তৈরি করা একটি অ্যাপ এবং একটি টেস্ট APK উভয়ই প্রয়োজন। আরও তথ্যের জন্য, ইন্সট্রুমেন্টেড টেস্ট সম্পর্কে পড়ুন।
Test Lab বৈশিষ্ট্য সম্পর্কে আরও জানতে, Firebase Test Lab দিয়ে অ্যান্ড্রয়েডের জন্য টেস্টিং শুরু করুন” দেখুন।
স্ক্রিনশট-ডিফ টেস্টিং হলো এমন একটি পদ্ধতি যেখানে কোনো টেস্ট চালানোর সময় প্রাপ্ত স্ক্রিন ইমেজকে প্রত্যাশিত আচরণের প্রতিনিধিত্বকারী গোল্ডেন ইমেজের সাথে তুলনা করে টেস্ট অ্যাসারশন তৈরি করা হয়। এই ধরনের টেস্ট কিছু ডিভাইসে অন্যদের তুলনায় বেশি ভঙ্গুর হতে পারে। আমরা এই ধরনের টেস্টের জন্য Arm ( *.arm ) এমুলেটর ডিভাইস ব্যবহার করার পরামর্শ দিই। Arm এমুলেটর ডিভাইসগুলো এমন ইমেজ ব্যবহার করে যা অ্যান্ড্রয়েড স্টুডিওর 'জেনেরিক' এমুলেটরগুলোর ইমেজের সাথে খুবই সাদৃশ্যপূর্ণ বা অভিন্ন।
আমরা আপনাকে এমন টেস্ট লাইব্রেরিগুলো খতিয়ে দেখারও পরামর্শ দিই, যা প্রত্যাশিত পরিবর্তনের উপস্থিতিতে স্ক্রিনশট টেস্টগুলোকে আরও শক্তিশালী করতে সাহায্য করতে পারে।
হ্যাঁ! নিম্নলিখিত পরিবর্তনগুলি করা হলে ভার্চুয়াল ডিভাইসগুলি আপডেট করা হয়:
- বিদ্যমান ছবিগুলির আপডেট
- পূর্ববর্তী API স্তরগুলির অবনমন
- নতুন অ্যান্ড্রয়েড এপিআই স্তর যুক্ত করা হয়েছে
কভারেজ রিপোর্ট চালু করতে, environmentVariables ফিল্ডে coverage=true যোগ করুন। আপনি যদি Android Test Orchestrator ব্যবহার করেন, তাহলে কভারেজের ফলাফল সংরক্ষণের জন্য আপনাকে একটি ডিরেক্টরি প্রদান করতে হবে:
--environment-variables coverage=true,coverageFilePath=/sdcard/Download/
আপনি যদি Orchestrator ব্যবহার না করেন, তাহলে একটি ফাইল পাথ নির্দিষ্ট করে দিতে পারেন:
--environment-variables coverage=true,coverageFile=/sdcard/Download/coverage.ec
ডিভাইসের বিস্তারিত তথ্য API-এর মাধ্যমে পাওয়া যায় এবং gcloud ক্লায়েন্ট থেকে describe কমান্ড ব্যবহার করে তা অ্যাক্সেস করা যায়।
gcloud firebase test android models describe MODEL
পরিচিত সমস্যা
রোবো টেস্ট এমন সাইন-ইন স্ক্রিনগুলো বাইপাস করতে পারে না, যেগুলোতে সাইন-ইন করার জন্য ক্রেডেনশিয়াল প্রবেশ করানোর পাশাপাশি ব্যবহারকারীকে অতিরিক্ত কোনো পদক্ষেপ নিতে হয়, যেমন—ক্যাপচা (CAPTCHA) পূরণ করা।
iOS-এর জন্য নির্দিষ্ট পরিচিত সমস্যা
iOS+ (বিটা)-এর রোবো টেস্টে গুগল অ্যাকাউন্ট দিয়ে স্বয়ংক্রিয়ভাবে সাইন ইন করার সুবিধাটি সমর্থিত নয়।
অ্যান্ড্রয়েড-নির্দিষ্ট পরিচিত সমস্যা
রোবো টেস্ট সেইসব অ্যাপের সাথে সবচেয়ে ভালোভাবে কাজ করে যেগুলো অ্যান্ড্রয়েড UI ফ্রেমওয়ার্কের UI এলিমেন্ট (যেমন View , ViewGroup , এবং WebView অবজেক্ট) ব্যবহার করে। আপনি যদি রোবো টেস্ট ব্যবহার করে অন্য UI ফ্রেমওয়ার্ক ব্যবহারকারী অ্যাপ, যেমন ইউনিটি গেম ইঞ্জিন ব্যবহারকারী অ্যাপ, পরীক্ষা করেন, তাহলে টেস্টটি প্রথম স্ক্রিনের বাইরে না গিয়েই বন্ধ হয়ে যেতে পারে।