This page provides troubleshooting help and answers to frequently asked questions about running tests with Firebase Test Lab . Known issues are also documented. If you can't find what you're looking for or need additional help, join the #test-lab channel on Firebase Slack or contact Firebase support .
সমস্যা সমাধান
When you select a device with a high capacity level in the Test Lab catalog, tests may start faster. When a device has low capacity, tests might take longer to run. If the number of tests invoked is much larger than the capacity of the selected devices, tests can take longer to finish.
নিম্নলিখিত কারণগুলির জন্য যেকোনো ডিভাইস ধারণক্ষমতা স্তরে পরীক্ষা চালাতে বেশি সময় লাগতে পারে:
- ট্র্যাফিক, যা ডিভাইসের প্রাপ্যতা এবং পরীক্ষার গতিকে প্রভাবিত করে।
- ডিভাইস বা পরিকাঠামোগত ত্রুটি, যা যেকোনো সময় ঘটতে পারে। Test Lab জন্য কোনো পরিকাঠামোগত ত্রুটি রিপোর্ট করা হয়েছে কিনা তা পরীক্ষা করতে, ফায়ারবেস স্ট্যাটাস ড্যাশবোর্ড দেখুন।
Test Lab ডিভাইসের ধারণক্ষমতা সম্পর্কে আরও জানতে, অ্যান্ড্রয়েড এবং আইওএস-এর জন্য ডিভাইসের ধারণক্ষমতার তথ্য দেখুন।
সাধারণত টেস্ট রান বাতিল হওয়া অথবা অবকাঠামোগত ত্রুটির কারণে পরীক্ষার ফলাফল অস্পষ্ট হয়।
Infrastructure errors are caused by internal Test Lab issues, like network errors or unexpected device behaviors. Test Lab internally retires test runs that produce infrastructure errors multiple times before reporting an inconclusive outcome; however, you can disable these retries using failFast .
ত্রুটির কারণ নির্ণয় করতে এই ধাপগুলো অনুসরণ করুন:
- ফায়ারবেস স্ট্যাটাস ড্যাশবোর্ডে জ্ঞাত বিভ্রাটগুলো পরীক্ষা করুন।
পরীক্ষাটি পুনরাবৃত্তিযোগ্য কিনা তা যাচাই করতে Test Lab পুনরায় চেষ্টা করুন।
প্রযোজ্য হলে, পরীক্ষাটি অন্য কোনো ডিভাইস বা ডিভাইসের ধরনে চালানোর চেষ্টা করুন।
যদি সমস্যাটি অব্যাহত থাকে, তাহলে Firebase Slack-এর #test-lab চ্যানেলে Test Lab টিমের সাথে যোগাযোগ করুন।
Sharding can cause your tests to run longer when the number of shards you specified exceeds the number of devices available for use in Test Lab . To avoid this situation, try switching to a different device. For more information about choosing a different device, seeডিভাইসের ধারণক্ষমতা ।
When you submit a test request, your app is first validated, re-signed, etc. in preparation for running tests on a device. Normally, this process completes in less than a few seconds, but it can be affected by factors like the size of your app.
After your app is prepared, test executions are scheduled and remain in a queue until a device is ready to run it. Until all test executions finish running, the matrix status will be "Pending" (regardless of whether test executions are in the queue or actively running).
After the test execution is finished, test artifacts are downloaded from the device, processed, and uploaded to Cloud Storage . The duration of this step can be affected by the amount and size of the artifacts.
অ্যান্ড্রয়েড-নির্দিষ্ট সমস্যা সমাধান
টেস্ট এক্সিকিউশনের আর্টিফ্যাক্ট (যেমন স্ক্রিনশট এবং লগ ফাইল) Google Cloud Storage সংরক্ষিত থাকে এবং সরাসরি Firebase কনসোলে রেন্ডার করা হয়। যদি আপনার টেস্ট এক্সিকিউশন গত ৯০ দিনের মধ্যে করা হয়ে থাকে, তবে নিশ্চিত করুন যে আপনি প্রজেক্ট লেভেলের রোল (প্রজেক্ট ওনার, প্রজেক্ট এডিটর, বা প্রজেক্ট ভিউয়ার) অ্যাসাইন করেছেন। অনুগ্রহ করে আরও নিশ্চিত করুন যে আপনার প্রজেক্ট বা আপনার অর্গানাইজেশনের জন্য ক্লাউড অডিট লগিং এনাবল করা নেই।
If the execution was performed more than 90 days ago, most likely the test artifacts have been automatically deleted. You can check the result bucket configuration by clicking the Test results tab in the Test Lab dashboard. The default result bucket is configured to retain objects for 90 days.
To retain your test artifacts longer, run the command gcloud firebase test android run with the flag --results-bucket and pass in the name of the result bucket. For more information, visit the gcloud firebase test android run reference documentation .
When you run instrumentation tests, you might see test errors indicating partial results that contain messaging like Test run failed to complete. Expected x tests, received y (where y is less than x ). This error means that Test Lab could not parse the logcat for test case start or end markers that are usually generated by AndroidJUnitRunner .
এই সমস্যার সাধারণ কারণগুলো হলো:
| সমস্যার বিবরণ | সম্ভাব্য সমাধান |
|---|---|
| Test case did not run because of a timeout. If the total duration of the tests is longer than a timeout you specified or longer than a max timeout , Test Lab cancels the rest of the test cases. |
|
| The test case failed to complete because it exited prematurely or got stuck. The test case may exit prematurely because of an uncaught exception or assertion error. Test cases can get stuck in an infinite loop or might be unable to proceed, for example, if the app does not show the correct view and the test case can't perform the action on the 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 ডিভাইসগুলো সম্পর্কে আরও জানতে, ‘উপলব্ধ ডিভাইসগুলোতে পরীক্ষা করুন ’ দেখুন।
Yes! Test Lab supports the Google Pixel Tablet and Google Pixel Fold. You can run your tests on your standalone physical devices. To learn more about Test Lab devices, see Test on available devices .
আপনি যদি Firebase-এ আপনার অ্যাপ পরীক্ষা করেন অথবা প্লে কনসোলে কোনো প্রি-লঞ্চ রিপোর্টের জন্য টেস্ট চালান, তাহলে আপনার MainActivity ফাইলে firebase.test.lab সিস্টেম প্রপার্টিটি পরীক্ষা করে দেখতে পারেন যে টেস্টটি কোনো Firebase-হোস্টেড ডিভাইসে চালানো হচ্ছে কি না। এরপর আপনি testLabSetting এর বুলিয়ান মানের উপর ভিত্তি করে অতিরিক্ত স্টেটমেন্ট এক্সিকিউট করতে পারেন। আরও তথ্যের জন্য, Modified test behaviors দেখুন।
While some of these items are on our roadmap, we're currently unable to provide commitment to supporting these testing and app development platforms. However, if you built your app with a framework that supports Espresso (for example, Flutter), you can write an instrumentation test using Espresso and then run the test in Test Lab .
Test Lab স্পষ্টভাবে অবফাসকেশন বা ডিওবফাসকেশন সমর্থন করে না। যদিও অ্যাপটি সম্ভবত চলবে, স্ট্যাক ট্রেসের মতো যেকোনো অবফাসকেটেড অ্যাপ ডেটা লগগুলিতে অবফাসকেটেড হিসেবেই প্রদর্শিত হবে।
হ্যাঁ! আপনি আপনার ফোল্ডেবল ডিভাইসটি বিভিন্ন ভাঁজ করা অবস্থায় ও ভঙ্গিতে পরীক্ষা করতে পারেন।
ফোল্ডেবল ডিভাইসগুলো বিভিন্ন ভাঁজ করা অবস্থায় থাকতে পারে, যেমন FLAT (সম্পূর্ণ খোলা) বা HALF_OPENED (সম্পূর্ণ খোলা এবং পুরোপুরি বন্ধের মাঝামাঝি)।
Postures, on the other hand, consist of specific device orientation and foldable state. For example, tabletop posture, which is a HALF_OPENED state in horizontal orientation, or book posture, which is a HALF_OPENED state in vertical orientation.
আপনি যদি ইন্সট্রুমেন্টেশন টেস্ট চালান, তাহলে বিভিন্ন স্টেট ও পোসচারে পরীক্ষা করার জন্য 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+ (বিটা)-এর রোবো টেস্টে গুগল অ্যাকাউন্ট দিয়ে স্বয়ংক্রিয়ভাবে সাইন ইন করার সুবিধাটি সমর্থিত নয়।
অ্যান্ড্রয়েড-নির্দিষ্ট পরিচিত সমস্যা
Robo test works best with apps that use UI elements from the Android UI framework (including View , ViewGroup , and WebView objects). If you use Robo test to exercise apps that use other UI frameworks, including apps that use the Unity game engine, the test may exit without exploring beyond the first screen.