Catch up on everthing we announced at this year's Firebase Summit. Learn more

উপকরণ পরীক্ষা দিয়ে শুরু করুন

এই নির্দেশিকাটি ফায়ারবেস টেস্ট ল্যাব ব্যবহার করে কীভাবে একটি ইন্সট্রুমেন্টেশন টেস্ট প্রস্তুত এবং পরিচালনা করতে হয় তা বর্ণনা করে। এই সহায়িকার ব্যবহার করতে, আপনাকে একটি প্রয়োজন হবে যন্ত্রানুষঙ্গের পরীক্ষা (আপনি বা আপনার দল দ্বারা লিখিত) ব্যবহার করে এসপ্রেসো বা UI 'তে Automator 2.0 অ্যান্ড্রয়েড পরীক্ষা অবকাঠামো। যন্ত্রানুষঙ্গের পরীক্ষা শারীরিক ডিভাইসের 45 মিনিট এবং 60 মিনিট পর্যন্ত সময় আপ চালাতে পারেন ভার্চুয়াল ডিভাইস

পরবর্তী ধাপে, আপনি আপনার অ্যাপের APK এবং আপনার পরীক্ষার APK APK Firebase এ আপলোড করবেন।

(Alচ্ছিক) আপনার অ্যাপে স্ক্রিনশট লাইব্রেরি যোগ করুন

Firebase টেস্ট ল্যাব একটি লাইব্রেরী (testlab-instr-liberal এর সংক্ষিপ্ত রূপ) যে আপনি কোনো স্ক্রিনশট আপনি AndroidX এর সঙ্গে নিয়ে প্রক্রিয়া করতে ব্যবহার করতে পারেন অন্তর্ভুক্ত ScreenCapture যেমন ব্যবহার করে লেখা পরীক্ষা যখন যন্ত্রানুষঙ্গের পরীক্ষা চলমান এসপ্রেসো পরীক্ষা ফ্রেমওয়ার্ক । এই বিভাগে তৈরি করার পদ্ধতি বর্ণনা করে ScreenCapture AndroidX গ্রন্থাগার এবং কিভাবে testlab-instr-liberal এর সংক্ষিপ্ত রূপ ব্যবহার করে সেগুলি প্রক্রিয়া অবজেক্টের।

আপনার যন্ত্র পরীক্ষা শেষ হওয়ার পরে, আপনি ফায়ারবেস কনসোলে ধরা পড়া স্ক্রিনশট দেখতে পারেন।

একটি নমুনা অ্যাপ ব্যবহার করে দেখুন

ডাউনলোড যাদের NotePad নমুনা অ্যাপ্লিকেশন এই কার্যকারিতা ব্যবহার করে দেখতে। স্ক্রিনশট নেওয়ার ক্ষমতা ইতিমধ্যে নোটপ্যাড প্রকল্পে অন্তর্ভুক্ত করা হয়েছে।

ধাপ 1. আপনার প্রকল্পে স্ক্রিনশট লাইব্রেরি যুক্ত করুন

  1. আপনার পরীক্ষার প্রকল্পের রুট-লেভেল (প্রকল্পের স্তরের) Gradle ফাইল (ইন build.gradle ), যে ভান্ডার বিভাগে গুগলের ম্যাভেন সংগ্রহস্থলের যোগ করুন:

    buildscript {
    
      repositories {
        // Add the following line:
        google()  // Google's Maven repository
      }
    
      dependencies {
        // ...
    
        // Check that you have the following line (if not, add it):
        classpath 'com.google.gms:google-services:4.3.8'  // Google Services plugin
      }
    }
    
    allprojects {
      // ...
    
      repositories {
        // Add the following line:
        google()  // Google's Maven repository
        // ...
      }
    }
  2. আপনার মডিউল (অ্যাপ্লিকেশান-স্তর) Gradle ফাইল (সাধারণত app/build.gradle ), টেস্ট ল্যাব স্ক্রিনশট লাইব্রেরির জন্য নির্ভরশীলতার যোগ করুন।

    dependencies {
      // ...
      // Add Test Lab's instrumentation test screenshot library:
      androidTestCompile `com.google.firebase:testlab-instr-lib:02`
      // ...
    }
  3. আপনার পরীক্ষার এর AndroidManifest.xml ফাইলে সালে, রেজিস্টার FirebaseScreenCaptureProcessor মধ্যে একটি মেটা-ডেটা ট্যাগে <instrumentation> উপাদান। এছাড়াও আপনি পরিবর্তে AndroidJUnitRunner একটি আর্গুমেন্ট হিসাবে প্রসেসর নির্দিষ্ট করতে পারেন (দেখুন AndroidJUnitRunner রেফারেন্স ডকুমেন্টেশন কীভাবে নির্দেশাবলীর জন্য)।

    <instrumentation
      // Check that you have the following line (if not, add it):
      android:name="androidx.test.runner.AndroidJUnitRunner" // Specifies AndroidJUnitRunner as the test runner
      android:targetPackage="com.your.package.name">
    
    // Add the following:
    <meta-data
      android:name="screenCaptureProcessors"
      android:value="com.google.firebase.testlab.screenshot.FirebaseScreenCaptureProcessor" />
    </instrumentation>
    ...
    
  4. আপনার অ্যাপ্লিকেশনের AndroidManifest.xml ফাইলে সালে মধ্যে নিম্নলিখিত পংক্তিগুলি যোগ <manifest> উপাদান:

     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    
  5. আপনার AndroidManifest.xml ফাইল, মধ্যে নিম্নলিখিত পংক্তিগুলি যোগ করে আপনার অ্যাপ্লিকেশনের জন্য সিস্টেম অনুমতি উল্লেখ <manifest> ট্যাগ। আপনি যদি অ্যান্ড্রয়েড 10 (এপিআই স্তর 29) বা উচ্চতর আছি টেস্টিং, বাদ WRITE_EXTERNAL_STORAGE অনুমতি (আপনার অ্যাপ অর্ডার পড়তে ও লিখতে ডিভাইসে স্ক্রিনশট মধ্যে এই অনুমতি প্রয়োজন হয় না)।

    <manifest ... >
        <!-- WRITE_EXTERNAL_STORAGE is not needed on Android 10 (API level 29) or higher. -->
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.INTERNET"/>
        ...
    </manifest>

ধাপ 2. আপনার পরীক্ষার সময় স্ক্রিনশট নিন

আপনার পরীক্ষার যে কোন বিন্দু যেখানে আপনি একটি স্ক্রিনশট নিতে চান এ কল Screenshot.capture() AndroidX লাইব্রেরি থেকে পদ্ধতি। এই উৎপন্ন ScreenCapture বস্তুর । আপনি কল যখন process() উপর ScreenCapture বস্তু, এটি ব্যবহার প্রক্রিয়া পরার ScreenCaptureProcessor আপনার নিবন্ধিত এর AndroidManifest.xml । মনে রাখবেন যে, BasicScreenCaptureProcessor কোন প্রসেসর নিবন্ধিত ব্যবহার করা হয়। যেহেতু আপনি নিবন্ধিত FirebaseScreenCaptureProcessor , আপনার স্ক্রিনশট মাধ্যমে প্রক্রিয়া করা হবে FirebaseScreenCaptureProcessor এবং আপনি Firebase টেস্ট ল্যাব সঙ্গে আপনার পরীক্ষা চালানো আপনার ফলাফল আপনার জন্য উপলব্ধ করা হবে।

একটি তৈরি করার জন্য উদাহরণ ব্যবহারের ক্ষেত্রে ScreenCapture :

  • একটি API Build.VERSION_CODES.JELLY_BEAN_MR2 এবং তার উপরে একটি সম্পূর্ণ ScreenCapture নিন:

    Screenshot.capture()
    
  • একটি নিন ScreenCapture কোন এপিআই স্তরের উপর কার্যকলাপের। মনে রাখবেন বিল্ডের নিচে থাকা ডিভাইসগুলির জন্য এটিই একমাত্র বিকল্প। VERSION_CODES.JELLY_BEAN_MR2।

    @Rule
      public ActivityTestRule<MainActivity> activityRule = new ActivityTestRule<>(MainActivity.class);
    ...
    Screenshot.capture(activityRule.getActivity());
    ...
    

স্ক্রিনক্যাপচার প্রক্রিয়াকরণের ক্ষেত্রে উদাহরণ ব্যবহারের ক্ষেত্রে

  • একটি প্রক্রিয়া ScreenCapture মাধ্যমে FirebaseScreenCaptureProcessor :

    Screenshot.capture().process();
    
  • প্রক্রিয়া একটি ScreenCapture একটি নির্দিষ্ট মাধ্যমে ScreenCaptureProcessor (এই আপনি প্রসেসর নিবন্ধনের লাফালাফি করতে পারবেন):

    Set<ScreenCaptureProcessor> processors = new HashSet<>();
    processors.add(new FirebaseScreenCaptureProcessor());
    Screenshot.capture().process(processors);
    
  • নাম এবং বিন্যাস নির্ধারণ করুন ScreenCapture এবং এটি নিবন্ধিত প্রসেসর ব্যবহার প্রক্রিয়া:

    Screenshot.capture().setName("myscreenshot").setFormat(CompressFormat.JPEG).process();
    

ধাপ 3. আপনার পরীক্ষা তৈরি করুন এবং চালান

  1. আপনার অ্যাপ্লিকেশন এবং পরীক্ষা APK গুলি তৈরি করুন (দেখুন আপনার অ্যাপ্লিকেশন নির্দেশাবলী জন্য)।

  2. তে APK ফাইল আপলোড করুন টেস্ট ল্যাব ড্যাশবোর্ড Firebase কনসোলের।

  3. অবশেষে, আপনার পরীক্ষা চালান।

ধাপ 4. আপনার পরীক্ষার স্ক্রিনশট দেখুন

আপনার পরীক্ষা শেষ হওয়ার পরে, আপনি Firebase কনসোলে নেওয়া যেকোন স্ক্রিনশট দেখতে পারেন।

  1. টেস্ট ট্যাবে, আপনার সম্পূর্ণ পরীক্ষা নির্বাচন করুন, তারপর ফলাফল ট্যাবটি ক্লিক করুন।

  2. আপনার পরীক্ষার আবার নির্বাচন করুন, তারপর স্ক্রীনশট ট্যাব দেখা যাচ্ছে যে এ ক্লিক করুন।

(Alচ্ছিক) অতিরিক্ত পরীক্ষার বৈশিষ্ট্যগুলি সক্ষম করুন

আপনি টেস্ট ল্যাব দিয়ে এটি চালানোর আগে আপনার পরীক্ষায় নিম্নলিখিত বৈশিষ্ট্যগুলি সক্ষম করতে পারেন:

অর্কেস্ট্রেটর সক্ষম করুন

অ্যান্ড্রয়েড টেস্ট Orchestrator একটি টুল যা আপনার অ্যাপ্লিকেশনের যন্ত্রানুষঙ্গের পরীক্ষা প্রতিটি স্বাধীনভাবে চালনা করে। টেস্ট ল্যাব সবসময় অর্কেস্ট্রেটরের সর্বশেষ সংস্করণ ব্যবহার করে।

টেস্ট ল্যাব জন্য Orchestrator সক্রিয় করার জন্য, এর মধ্যে যন্ত্রানুষঙ্গের পরীক্ষা সেটআপ, অতিরিক্ত বিকল্প ক্লিক করুন> Orchestrator সঙ্গে রান করুন।

সুবিধা এবং অসুবিধা

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

শার্ডিং সক্ষম করুন

টেস্ট শার্ডিং পরীক্ষার একটি সেটকে সাব-গ্রুপে (শার্ড) বিভক্ত করে যা বিচ্ছিন্নভাবে আলাদাভাবে চলে। টেস্ট ল্যাব স্বয়ংক্রিয়ভাবে একাধিক ডিভাইস ব্যবহার করে সমান্তরালভাবে প্রতিটি শার্ড চালায় এবং কম সময়ে পরীক্ষার পুরো সেট সম্পন্ন করে।

টেস্ট শার্ডিং কিভাবে কাজ করে

বলুন আপনি N shards তৈরি করেন। আপনার নির্বাচিত প্রতিটি ডিভাইসের জন্য, টেস্ট ল্যাব এন অভিন্ন ডিভাইসগুলিকে স্পিন করে এবং প্রতিটি ডিভাইসে পরীক্ষার একটি উপসেট চালায়। এর অর্থ এই যে sharded পরীক্ষার বিষয় ডিভাইস প্রতি একাধিক পরীক্ষা হত্যা, অ sharded পরীক্ষার বিষয়, যা সবসময় ডিভাইস প্রতি এক পরীক্ষা সঞ্চালনের ফলে অসদৃশ ঘটাতে পারে (টেস্ট ল্যাব কী ধারণার একটি দ্রুত পরিদর্শনের জন্য, দেখুন কী ধারণা )।

আপনি ফায়ারবেস কনসোলে টেস্ট শার্ডিং সক্ষম করতে পারেন:

  1. ইন যন্ত্রানুষঙ্গের পরীক্ষা সেটআপ, অতিরিক্ত বিকল্প ক্লিক করুন।

  2. Sharding বিভাগে, shards আপনি চালাতে চান নম্বর লিখুন।

পরীক্ষার টুকরোর জন্য বিলিং

টেস্ট ল্যাব উপজীব্য করে আপনার shards প্রয়োগ AndroidJUnitRunner এর বিল্ট-ইন sharding প্রক্রিয়া। খালি শার্ড (নির্ধারিত টেস্ট কেস ছাড়া শার্ড) কাটার জন্য চার্জ করা এড়ানোর জন্য, আপনার তৈরি করা শার্ডের সংখ্যা টেস্ট কেসের মোট সংখ্যার চেয়ে কম হওয়া উচিত। প্রতিটি টেস্ট কেস চালাতে কত সময় লাগে তার উপর নির্ভর করে, সাধারণত প্রতি শার্ডে 2-10 টেস্ট কেস বরাদ্দ করা একটি ভাল ধারণা।

বিলিং আরও তথ্যের জন্য, পঠিত জন্য ব্যবহার, কোটা, এবং বিলিং