রোবো স্ক্রিপ্ট চালানো (Android)

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

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

রোবো স্ক্রিপ্ট টেস্ট ইঞ্জিন হিসেবে রোবো টেস্ট ব্যবহার করে। সবচেয়ে প্রাথমিক ফর্মে, Robo স্ক্রিপ্টে 'ইউজারনেম' টেক্সট লিখুন এবং তারপর ঠিক আছে বোতামে ট্যাপ করুন-এর মতো UI অ্যাকশনের ক্রম থাকে। এছাড়াও, রোবো স্ক্রিপ্টে কোনও এলিমেন্ট দেখা যাওয়ার জন্য অপেক্ষা করা, এলিমেন্টের মধ্যে নির্দিষ্ট কোনও পয়েন্টে ট্যাপ করা এবং Android ডিবাগ ব্রিজ (adb) শেল কমান্ড এক্সিকিউট করার মতো অ্যাকশন অন্তর্ভুক্ত থাকতে পারে।

প্রথাগত টেস্টিং ফ্রেমওয়ার্কের তুলনায় Robo স্ক্রিপ্টের নিম্নলিখিত সুবিধা রয়েছে:

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

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

  • বিভিন্ন ট্রিগার করার শর্ত, যেমন, কোনও নির্দিষ্ট অ্যাপ প্যাকেজের নাম অ্যাক্টিভ থাকা (বা না থাকা) অথবা স্ক্রিনে কোনও নির্দিষ্ট এলিমেন্ট দেখানো (বা না দেখানো)।
  • এক্সিকিউশন কন্ট্রোল, যেমন, সর্বাধিক সংখ্যক এক্সিকিউশন, অগ্রাধিকার, প্রাসঙ্গিক ক্রল স্টেজ।
  • অপ্রচলিত অ্যাকশনের ধরন (শর্তসাপেক্ষ, এলিমেন্ট-এড়ানো, স্ক্রিন-বন্ধ করা)।

আমরা সাজেস্ট করি যে আপনি যখনই সম্ভব Robo স্ক্রিপ্ট ব্যবহার করুন কারণ সেগুলি সহজেই ম্যানেজ করা যায়। যেমন, আপনি নিম্নলিখিত কাজগুলি করতে Robo স্ক্রিপ্ট ব্যবহার করতে পারেন:

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

নিম্নলিখিত কাজগুলি করতে আরও উন্নত রোবো স্ক্রিপ্ট ফিচার ব্যবহার করুন:

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

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

Android Studio-তে Test Lab ব্যবহার করে Robo স্ক্রিপ্ট রেকর্ড করা

Android Studio-তে Robo স্ক্রিপ্ট রেকর্ডার আপনাকে আপনার ডিভাইসে অ্যাপের সাথে সরাসরি ইন্টার‍্যাক্ট করে Robo স্ক্রিপ্ট রেকর্ড করতে দেয়। Android Studio-তে Firebase টুলের মাধ্যমে Robo স্ক্রিপ্টিং শুরু করতে এই নির্দেশাবলী অনুসরণ করুন:

  1. Android Studio খুলুন এবং টুল -> Firebase বেছে নিন।

  2. Firebase প্যানে, রোবো স্ক্রিপ্ট রেকর্ড করুন এবং রোবো টেস্টকে গাইড করতে এটি ব্যবহার করুন বিকল্পে ক্লিক করুন।

  3. Robo স্ক্রিপ্ট রেকর্ড করুন বিকল্পে ক্লিক করুন। 'ডেপ্লয়মেন্ট টার্গেট বেছে নিন' ডায়ালগ দেখা যায়।

  4. আপনি যে ডিভাইসে Robo স্ক্রিপ্ট রেকর্ড করতে চান সেটি বেছে নিন।

  5. ডিভাইসে Robo স্ক্রিপ্ট রেকর্ড করার পরে, ফাইলটি JSON ফাইল হিসেবে পছন্দসই লোকেশনে সেভ করুন।

  6. Firebase কনসোলে Test Lab পৃষ্ঠা খুলুন এবং JSON স্ক্রিপ্ট ফাইল ও অ্যাপ্লিকেশন APK আপলোড করুন।

  7. চালিয়ে যান বোতামে ক্লিক করুন। আপনাকে ডিভাইস ও API লেভেল বেছে নেওয়ার জন্য প্রম্পট করা হয়। টেস্ট স্ক্রিপ্ট সম্পূর্ণ হওয়ার পরে, Test Lab টেস্ট রিপোর্ট তৈরি করে।

  8. (ঐচ্ছিক) টেস্ট রিপোর্টের লগক্যাট ও ভিডিও কপি বা ডাউনলোড করতে, সোর্স ফাইল দেখুন বিকল্পে ক্লিক করুন।

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

Test Lab-এ Robo স্ক্রিপ্ট রান করুন

Test Lab-এ রোবো স্ক্রিপ্ট রান করতে, এই নির্দেশাবলী অনুসরণ করুন:

  1. Firebase কনসোলে Test Lab পৃষ্ঠা খুলুন।

  2. অ্যাপ APK বা AAB ফিল্ডে অ্যাপের APK বা AAB আপলোড করুন।

  3. আপনার রেকর্ড করা বা ম্যানুয়ালি তৈরি করা রোবো স্ক্রিপ্ট ফাইল রোবো স্ক্রিপ্ট (ঐচ্ছিক) ফিল্ডে আপলোড করুন।

স্থানীয় রোবো টেস্ট রান করার জন্য রোবো স্ক্রিপ্ট প্রদান করা

লোকাল রোবো টেস্ট রানকে রোবো স্ক্রিপ্ট প্রদান করতে, নিম্নলিখিত রোবো টেস্ট বিকল্প ব্যবহার করুন:

--robo-script-file <robo-script-path>

লোকাল ফাইল সিস্টেমে আপনার রোবো স্ক্রিপ্ট ফাইলের পাথ দিয়ে <robo-script-path> প্রতিস্থাপন করুন। লোকাল রোবো টেস্ট রান করার নির্দেশাবলী অনুসরণ করুন।

gcloud CLI টেস্ট ইনভোকেশনে Robo স্ক্রিপ্ট নির্দিষ্ট করা

gcloud CLI টেস্ট ইনভোকেশনে Robo স্ক্রিপ্ট নির্দিষ্ট করতে, নিম্নলিখিত gcloud CLI ফ্ল্যাগ ব্যবহার করুন:

--robo-script = <robo-script-path>

gs:// নোটেশন ব্যবহার করে লোকাল ফাইল সিস্টেম বা Cloud Storage-এ আপনার Robo স্ক্রিপ্ট ফাইলের পাথ দিয়ে <robo-script-path> প্রতিস্থাপন করুন। যেমন:

gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>

পরবর্তী ধাপ