Check out what’s new from Firebase at Google I/O 2022. Learn more

রোবো পরীক্ষা দিয়ে শুরু করুন

রোবো টেস্ট হল একটি টেস্টিং টুল যা ফায়ারবেস টেস্ট ল্যাবের সাথে একত্রিত। রোবো পরীক্ষা আপনার অ্যাপের UI এর গঠন বিশ্লেষণ করে এবং তারপরে এটিকে পদ্ধতিগতভাবে অন্বেষণ করে, স্বয়ংক্রিয়ভাবে ব্যবহারকারীর কার্যকলাপের অনুকরণ করে। UI/Application Exerciser Monkey test এর বিপরীতে, Robo test সর্বদা একই ব্যবহারকারীর ক্রিয়াকলাপ একই ক্রমে অনুকরণ করে যখন আপনি একই সেটিংস সহ একটি নির্দিষ্ট ডিভাইস কনফিগারেশনে একটি অ্যাপ পরীক্ষা করতে এটি ব্যবহার করেন। UI/Application Exerciser Monkey টেস্টের সাথে পরীক্ষা করার সময় এটি আপনাকে বাগ ফিক্সগুলি যাচাই করতে এবং রিগ্রেশনের জন্য এমনভাবে পরীক্ষা করতে Robo পরীক্ষা ব্যবহার করতে দেয়।

রোবো পরীক্ষা লগ ফাইলগুলি ক্যাপচার করে, টীকাযুক্ত স্ক্রিনশটগুলির একটি সিরিজ সংরক্ষণ করে এবং তারপরে সেই স্ক্রিনশটগুলি থেকে একটি ভিডিও তৈরি করে যাতে এটি সঞ্চালিত ব্যবহারকারীর ক্রিয়াকলাপগুলি আপনাকে দেখায়৷ এই লগ, স্ক্রিনশট এবং ভিডিওগুলি আপনার অ্যাপ ক্র্যাশ হলে মূল কারণ নির্ধারণ করতে আপনাকে সাহায্য করতে পারে এবং আপনার অ্যাপের UI এর সমস্যাগুলি খুঁজে পেতেও সাহায্য করতে পারে৷

রোবো টেস্ট ক্রল পরিসংখ্যান

আপনার রোবো পরীক্ষার ফলাফল ব্যাখ্যা করতে সাহায্য করার জন্য, রোবো প্রতিটি পরীক্ষা ক্রল করার সময় পরিসংখ্যান রেকর্ড করে। টেস্ট ল্যাব আপনার পরীক্ষার ফলাফলের পৃষ্ঠায় রোবো ট্যাবের শীর্ষে পরিসংখ্যান প্রদর্শন করে:

  • অ্যাকশন: রোবো স্ক্রিপ্ট অ্যাকশন, বানর অ্যাকশন এবং রোবো নির্দেশাবলী সহ ক্রল চলাকালীন সম্পাদিত অ্যাকশনের মোট সংখ্যা।
  • কার্যক্রম: ক্রল চলাকালীন কভার করা স্বতন্ত্র কার্যকলাপের সংখ্যা।
  • স্ক্রিন: ক্রল করার সময় পরিদর্শন করা স্বতন্ত্র স্ক্রীনের সংখ্যা।

টেস্ট ল্যাব একটি ক্রল গ্রাফ আকারে রোবো ক্রলের একটি ভিজ্যুয়াল উপস্থাপনা তৈরি করতে পরিসংখ্যান ব্যবহার করে। গ্রাফটির নোড হিসেবে স্ক্রিন এবং প্রান্ত হিসেবে ক্রিয়া রয়েছে। স্ক্রিনের মধ্যবর্তী প্রান্তগুলি অনুসরণ করে, আপনি একটি ধারণা পেতে পারেন যে কীভাবে রোবো আপনার অ্যাপটি ক্রল জুড়ে অতিক্রম করেছে৷

রোবো পরীক্ষার সময়সীমা

আপনার অ্যাপের UI এর জটিলতার উপর নির্ভর করে, UI ইন্টারঅ্যাকশনের একটি পুঙ্খানুপুঙ্খ সেট সম্পূর্ণ করতে Robo পরীক্ষায় পাঁচ মিনিট বা তার বেশি সময় লাগতে পারে। আমরা বেশিরভাগ অ্যাপের জন্য পরীক্ষার সময়সীমা কমপক্ষে 120 সেকেন্ড (2 মিনিট) এবং মাঝারি জটিল অ্যাপগুলির জন্য 300 সেকেন্ড (5 মিনিট) সেট করার পরামর্শ দিই। অ্যান্ড্রয়েড স্টুডিও এবং ফায়ারবেস কনসোল থেকে চালানো পরীক্ষার জন্য টাইমআউটের ডিফল্ট মান হল 300 সেকেন্ড (5 মিনিট) এবং gcloud কমান্ড লাইন থেকে চালানো পরীক্ষার জন্য 900 সেকেন্ড (15 মিনিট)।

অ্যাপ স্টার্ট-আপ টাইমআউট ত্রুটি৷

যদি আপনার অ্যাপ শুরু হতে অনেক সময় নেয়, তাহলে Robo একটি ত্রুটি ছুঁড়তে পারে এবং আপনার অ্যাপ ক্রল করতে পারবে না। এটি শুধুমাত্র অত্যন্ত দীর্ঘ স্টার্ট-আপ সময়ের ক্ষেত্রেই ঘটে এবং এটিকে দ্রুত শুরু করার জন্য শুধুমাত্র আপনার অ্যাপটি সংশোধন করে সমাধান করা যেতে পারে।

Robo স্ক্রিপ্টের সাথে আরও নিয়ন্ত্রণ

কখনও কখনও আপনার পরীক্ষার উপর আরো নিয়ন্ত্রণ প্রয়োজন। উদাহরণস্বরূপ, আপনি একটি সাধারণ ব্যবহারকারীর যাত্রা পরীক্ষা করতে বা ব্যবহারকারীর নাম এবং পাসওয়ার্ডের মতো নির্দিষ্ট UI ইনপুট প্রদান করতে চাইতে পারেন। রোবো স্ক্রিপ্ট সাহায্য করতে পারে.

Robo স্ক্রিপ্টের সাহায্যে, আপনি আপনার অ্যাপে একটি ওয়ার্কফ্লো দিয়ে চলার কথা রেকর্ড করেন, তারপর সেই রেকর্ডিংটি Firebase কনসোলে আপলোড করুন যাতে Robo পরীক্ষা চালানো যায়। আপনি যখন একটি স্ক্রিপ্ট সংযুক্ত করে একটি রোবো পরীক্ষা চালান, তখন রোবো প্রথমে আপনার প্রি-স্ক্রিপ্ট করা অ্যাকশনগুলির মাধ্যমে পদক্ষেপ নেয় তারপর যথারীতি অ্যাপটি অন্বেষণ করতে এগিয়ে যায়।

অ্যান্ড্রয়েড স্টুডিওতে ফায়ারবেস টুলের মাধ্যমে রোবো স্ক্রিপ্টিং শুরু করুন:

  1. অ্যান্ড্রয়েড স্টুডিও খুলুন।
  2. প্রধান মেনুতে, টুলস > ফায়ারবেস নির্বাচন করুন।
  3. টেস্ট ল্যাব নির্বাচন করুন এবং রেকর্ড রোবো স্ক্রিপ্ট ক্লিক করুন এবং রোবো টেস্ট গাইড করতে এটি ব্যবহার করুন
  4. আপনার রোবো স্ক্রিপ্ট রেকর্ড করতে টুলের বাকি ধাপগুলি অনুসরণ করুন।
  5. সেই রোবো স্ক্রিপ্টটি টেস্ট ল্যাবে আপলোড করুন এবং আপনার পরীক্ষা শুরু করুন।

রোবো স্ক্রিপ্ট ত্রুটি

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

রোবো পরীক্ষা এবং নন-অ্যান্ড্রয়েড UI উইজেট

রোবো পরীক্ষাগুলি সরাসরি Android UI উইজেটগুলিতে ক্রিয়া সম্পাদন করতে Android API ব্যবহার করে। এটি পরীক্ষাগুলিকে আপনার UI স্বয়ংক্রিয়ভাবে অন্বেষণ করতে সহায়তা করে, তবে এর অর্থ হল যে এটিতে পরীক্ষা চালানোর জন্য তাদের একটি স্ক্রীনের জন্য একটি Android UI শ্রেণিবিন্যাস বের করতে সক্ষম হতে হবে।

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

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

Google Play এর সাথে ইন্টিগ্রেশন

আপনি যখন আলফা বা বিটা চ্যানেল ব্যবহার করে আপনার অ্যাপের APK ফাইল আপলোড এবং প্রকাশ করেন তখন আপনি Google Play Console-এ Robo টেস্ট ব্যবহার করতে পারেন। রোবো টেস্ট বিভিন্ন ভৌগলিক অবস্থান থেকে জনপ্রিয় ফিজিক্যাল ডিভাইসের সেটে চলে, বিভিন্ন ফর্ম ফ্যাক্টর এবং হার্ডওয়্যার কনফিগারেশন জুড়ে টেস্ট কভারেজ প্রদান করে। আরও জানতে, সমস্যা চিহ্নিত করতে প্রাক-লঞ্চ রিপোর্ট ব্যবহার করুন দেখুন।

অ্যাকাউন্ট সাইন-ইন এবং পূর্বনির্ধারিত পাঠ্য ইনপুট পরীক্ষা করুন

রোবো টেস্ট টেস্ট অ্যাকাউন্ট সাইন-ইন সমর্থন করে, এবং এছাড়াও আপনাকে আপনার অ্যাপের ক্ষেত্রগুলিতে পূর্বনির্ধারিত পাঠ্য প্রবেশ করার অনুমতি দেয়। কাস্টম সাইন-ইন এবং অন্যান্য পূর্বনির্ধারিত টেক্সট ইনপুটের জন্য, রোবো টেস্ট আপনার অ্যাপের EditText ক্ষেত্রে টেক্সট লিখতে পারে। প্রতিটি স্ট্রিংয়ের জন্য, আপনাকে একটি Android রিসোর্স নাম ব্যবহার করে EditText ক্ষেত্র সনাক্ত করতে হবে। আরও জানতে, সম্পদ অ্যাক্সেস করা দেখুন।

সাইন ইন করুন

সাইন-ইন সমর্থন করার জন্য Robo পরীক্ষার দুটি পারস্পরিক-একচেটিয়া পদ্ধতি রয়েছে:

  • কাস্টম সাইন-ইন: আপনি যদি টেস্ট অ্যাকাউন্টের শংসাপত্রগুলি প্রদান করেন, তাহলে আপনাকে সেগুলি কোথায় প্রবেশ করতে হবে তা Robo পরীক্ষাকে জানাতে হবে এবং সেই শংসাপত্রগুলিও প্রদান করতে হবে৷
  • স্বয়ংক্রিয় সাইন-ইন: যদি আপনার অ্যাপে একটি সাইন-ইন স্ক্রীন থাকে যা প্রমাণীকরণের জন্য একটি Google অ্যাকাউন্ট ব্যবহার করে, তাহলে রোবো টেস্ট একটি Google পরীক্ষা অ্যাকাউন্ট ব্যবহার করে, যদি না আপনি কাস্টম সাইন-ইন করার জন্য পরীক্ষার অ্যাকাউন্টের শংসাপত্র প্রদান করেন।

কাস্টম সাইন-ইন করার জন্য পরীক্ষার অ্যাকাউন্টের শংসাপত্র প্রদান করতে, নিম্নলিখিতগুলি করুন:

  1. মাত্রা নির্বাচন করুন পৃষ্ঠায়, অতিরিক্ত বিকল্পগুলি নির্বাচন করুন।
  2. টেস্ট অ্যাকাউন্ট শংসাপত্রের অধীনে (ঐচ্ছিক) , ব্যবহারকারীর নাম এবং পাসওয়ার্ড সম্পদের নাম এবং পরীক্ষার অ্যাকাউন্টের জন্য ব্যবহারকারীর নাম এবং পাসওয়ার্ড লিখুন।

পূর্বনির্ধারিত পাঠ্য ইনপুট

আপনি আপনার অ্যাপ দ্বারা ব্যবহৃত অন্যান্য পাঠ্য ক্ষেত্রের জন্য কাস্টম ইনপুট পাঠ্য প্রদান করতে পারেন। অতিরিক্ত ক্ষেত্রের জন্য পাঠ্য ইনপুট প্রদান করতে, নিম্নলিখিতগুলি করুন:

  1. মাত্রা নির্বাচন করুন পৃষ্ঠায়, অতিরিক্ত বিকল্পগুলি নির্বাচন করুন।
  2. অতিরিক্ত ক্ষেত্র (ঐচ্ছিক) এর অধীনে, এক বা একাধিক সম্পদের নাম লিখুন এবং সংশ্লিষ্ট পাঠ্য ক্ষেত্রে প্রবেশ করার জন্য স্ট্রিংগুলি লিখুন।

পূর্বনির্ধারিত টেক্সট ইনপুট ত্রুটি

Robo একটি সরবরাহকৃত রেগুলার এক্সপ্রেশনের সাথে মেলে এমন একটি Android রিসোর্স নাম সহ EditText ক্ষেত্রগুলির জন্য অনুসন্ধান করে৷ যদি রোবো একটি মিলিত ক্ষেত্র খুঁজে না পায় তবে এটি আপনার পাঠ্য ইনপুট করে না, তবে অন্যথায় স্বাভাবিকের মতো ক্রল চালিয়ে যায়।

আপনি পরীক্ষার জন্য আপনার অ্যাপ দ্বারা সমর্থিত তিনটি পর্যন্ত গভীর লিঙ্ক প্রদান করতে পারেন। Android ACTION_VIEW অভিপ্রায় হিসাবে আপনার অ্যাপে ডিপ লিঙ্কগুলি জারি করা হয়েছে৷ অতএব, প্রতিটি লিঙ্ক অবশ্যই আপনার অ্যাপের একটি অভিপ্রায় ফিল্টারের সাথে মিলবে।

যদি এক বা একাধিক গভীর লিঙ্ক সরবরাহ করা হয়, অ্যাপটি প্রথমে সাধারণত চালু হয় ( ACTION_MAIN উদ্দেশ্য ব্যবহার করে) এবং নির্দিষ্ট সময়সীমা পর্যন্ত ক্রল করা হয়। প্রধান ক্রল করার পরে, প্রতিটি গভীর লিঙ্ক প্রতিটি অতিরিক্ত 30 সেকেন্ডের জন্য ক্রল করা হয়।

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

অ্যাপ লাইসেন্সিং সমর্থন

টেস্ট ল্যাব এমন অ্যাপগুলিকে সমর্থন করে যেগুলি Google Play দ্বারা প্রদত্ত অ্যাপ লাইসেন্সিং পরিষেবা ব্যবহার করে৷ টেস্ট ল্যাবের মাধ্যমে আপনার অ্যাপ পরীক্ষা করার সময় সফলভাবে লাইসেন্সিং পরীক্ষা করতে, আপনাকে অবশ্যই আপনার অ্যাপটি প্লে স্টোরে প্রোডাকশন চ্যানেলে প্রকাশ করতে হবে। টেস্ট ল্যাব ব্যবহার করে আপনার অ্যাপটি আলফা বা বিটা চ্যানেলে পরীক্ষা করতে, টেস্ট ল্যাবে আপনার অ্যাপ আপলোড করার আগে লাইসেন্সিং চেকটি সরিয়ে ফেলুন।

জ্ঞাত সমস্যা

রোবো পরীক্ষার বর্তমানে নিম্নলিখিত পরিচিত সীমাবদ্ধতা রয়েছে:

  • UI ফ্রেমওয়ার্ক সমর্থন । রোবো টেস্ট শুধুমাত্র সেই অ্যাপগুলির সাথে সামঞ্জস্যপূর্ণ যেগুলি Android UI ফ্রেমওয়ার্ক থেকে UI উপাদানগুলি ব্যবহার করে ( View এবং ViewGroup অবজেক্ট সহ, কিন্তু WebView অবজেক্টগুলি বাদ দিয়ে)। ইউনিটি গেম ইঞ্জিন ব্যবহার করে এমন অ্যাপগুলি সহ অন্যান্য UI ফ্রেমওয়ার্ক ব্যবহার করে এমন অ্যাপগুলি অনুশীলন করার জন্য আপনি যদি রোবো টেস্ট ব্যবহার করেন তবে প্রথম স্ক্রীনের বাইরে অন্বেষণ না করেই পরীক্ষাটি প্রস্থান করতে পারে।
  • সাইন-ইন ক্যাপচা । Robo পরীক্ষা সাইন-ইন স্ক্রীনগুলিকে বাইপাস করতে পারে না যেগুলিতে সাইন ইন করার জন্য শংসাপত্রগুলি প্রবেশের বাইরে অতিরিক্ত ব্যবহারকারীর পদক্ষেপের প্রয়োজন হয় (যেমন একটি ক্যাপচা সম্পূর্ণ করা)।