عامل تست اپلیکیشن (اندروید)

عامل تست برنامه، یک عامل تولید، مدیریت و اجرای موارد آزمایشی است که توسط Gemini در Firebase پشتیبانی می‌شود. شما اهداف آزمایشی را به زبان طبیعی تعریف می‌کنید و عامل از هوش مصنوعی برای درک و پیمایش برنامه شما، شبیه‌سازی تعاملات کاربر و ارائه نتایج دقیق آزمایش استفاده می‌کند.

چگونه عامل تست برنامه از داده‌های شما استفاده می‌کند

عامل تست برنامه توسط Gemini در Firebase ارائه می‌شود و تحت همان شرایط اداره می‌شود. برای اطلاعات بیشتر در مورد نحوه استفاده Gemini در Firebase از داده‌های شما، به بخش «نحوه استفاده Gemini در Firebase از داده‌های شما» مراجعه کنید.

قبل از اینکه شروع کنی

اگر هنوز برنامه خود را در Firebase ثبت نکرده‌اید، آن را ثبت کنید .

اگر از هیچ محصول Firebase دیگری استفاده نمی‌کنید، فقط باید یک پروژه ایجاد کنید و برنامه خود را ثبت کنید. نیازی به اضافه کردن SDK به برنامه خود ندارید. با این حال، اگر تصمیم دارید در آینده از محصولات دیگری استفاده کنید، حتماً تمام مراحل Add Firebase را با استفاده از کنسول Firebase انجام دهید.

یک مورد آزمایشی ایجاد کنید

برای اجرای تست‌های هدایت‌شده توسط هوش مصنوعی، عامل تست برنامه از موارد تست زبان طبیعی شما برای اجرای تست‌ها روی برنامه‌تان استفاده می‌کند.

هر مورد آزمایشی به مراحلی تقسیم می‌شود که به ترتیب اجرا می‌شوند. مراحل به شما این امکان را می‌دهند که مورد آزمایشی خود را به فازهایی تقسیم کنید که هر کدام ادعای خاص خود را دارند. عامل ممکن است در هر مرحله اقدامات زیادی انجام دهد.

دو راه برای ایجاد یک نمونه آزمایشی وجود دارد: استفاده از یک فایل YAML یا استفاده از کنسول Firebase. فایل‌های YAML به شما امکان می‌دهند خودتان موارد آزمایشی را مدیریت کنید، معمولاً در یک مخزن کد منبع نسخه‌بندی شده. از طرف دیگر، کنسول Firebase می‌تواند موارد آزمایشی شما را از راه دور به همراه داده‌های توزیع برنامه شما ذخیره کند.

استفاده از فایل‌های YAML

مثال زیر یک فایل YAML را نشان می‌دهد که دو مورد آزمایشی را تعریف می‌کند:

tests:
- displayName: Login as guest
  id: login-as-guest
  steps:
  - goal: Log in as a guest
    finalScreenAssertion: The home screen is visible
- displayName: View biography card birth date
  prerequisiteTestCaseId: login-as-guest
  steps:
  - goal: Open the article on "Bob Dylan"
    hint: Use the search function to find it
    finalScreenAssertion: >-
      The article is opened and the title "Bob Dylan" is visible.
  - goal: Find Bob Dylan's birthday in the article
    hint: >-
      Look for the "Born" section in the infobox on the right side of the page.
    finalScreenAssertion: >-
      The text "May 24, 1941" is visible on the screen.

شما می‌توانید گروه‌هایی از تست‌ها را در یک فایل واحد سازماندهی کنید و این مجموعه‌های تست را در چندین فایل از هم جدا کنید. می‌توانید با اضافه کردن یک شناسه به تست و سپس ارجاع به آن شناسه با استفاده از prerequisiteTestCaseId ، یک Test Case پیش‌نیاز اضافه کنید.

استفاده از کنسول App Distribution

از طرف دیگر، می‌توانید موارد آزمایشی خود را در کنسول Firebase ایجاد و مدیریت کنید. برای ایجاد یک مورد آزمایشی، صفحه App Distribution کنسول Firebase را باز کنید و مراحل زیر را انجام دهید:

  1. در تب Test Cases ، روی New test case کلیک کنید. اگر نمی‌خواهید Test Case خودتان را ایجاد کنید، می‌توانید Test Case نمونه ارائه شده را تغییر دهید یا از آن استفاده کنید.
  2. در پنجره‌ی محاوره‌ای «افزودن مورد آزمایشی» ، نامی برای مورد آزمایشی تعیین کنید. این نام برای شناسایی آزمون استفاده می‌شود، اما توسط عامل نادیده گرفته می‌شود.
  3. (اختیاری) یک مورد آزمون پیش‌نیاز را انتخاب کنید که شامل مراحل راه‌اندازی برای اجرا قبل از آزمون اصلی باشد. اگر آزمون پیش‌نیاز با شکست مواجه شود، کل آزمون به عنوان یک شکست علامت‌گذاری می‌شود. مراحل و نتایج حاصل از آزمون‌های پیش‌نیاز و اصلی با هم در نتایج آزمون نشان داده می‌شوند.
  4. با کلیک روی دکمه «افزودن یک مرحله دیگر» ، می‌توانید آزمایش خود را به چند مرحله تقسیم کنید.
  5. به هر مرحله یک هدف (Goal) بدهید که توصیف می‌کند عامل تست برنامه (App Testing agent) در طول آن مرحله چه کاری باید انجام دهد.
  6. (اختیاری) یک راهنما ( Hint) اضافه کنید تا اطلاعات بیشتری ارائه دهد و به عامل تست برنامه کمک کند تا برنامه شما را در آن مرحله درک و هدایت کند.
  7. عبارت «صحنه نهایی» را اضافه کنید تا به عامل تست برنامه کمک کند تا زمان اتمام موفقیت‌آمیز مرحله را تشخیص دهد. این عبارت فقط باید به آنچه در صفحه نمایش قابل مشاهده است، اشاره کند.
  8. پس از اتمام سفارشی‌سازی آزمون، روی ذخیره کلیک کنید.

نمونه مورد آزمون

در ادامه مثالی از نحوه ایجاد یک مورد آزمایشی با استفاده از App Testing agent ارائه شده است:

عنوان آزمون

بارگذاری صفحه اصلی

هدف

بارگذاری صفحه اصلی

نکته

از هر صفحه‌ی ورود به سیستم عبور کنید. پنجره‌های بازشو را رد کنید. وارد سیستم نشوید.

ادعای نهایی صفحه

صفحه اصلی برنامه روی صفحه قابل مشاهده است، همه تصاویر بارگذاری شده‌اند و هیچ خطایی نمایش داده نمی‌شود.

یک آزمون اجرا کنید

نحوه اجرای تست‌های شما بستگی به نحوه ایجاد و مدیریت موارد تست شما دارد. اگر موارد تست را با استفاده از فایل‌های YAML تعریف کنید، آن تست‌ها را با استفاده از Firebase CLI اجرا خواهید کرد. اگر موارد تست خود را در کنسول App Distribution ایجاد کنید، آنها را از کنسول یا از طریق یکی از ابزارهای App Distribution CLI اجرا خواهید کرد.

استفاده از فایل‌های YAML

موارد آزمایشی تعریف‌شده در فایل‌های YAML را می‌توان با استفاده از Firebase CLI اجرا کرد.

  1. آخرین نسخه Firebase CLI را نصب یا به‌روزرسانی کنید. توصیه می‌کنیم فایل باینری مستقل مربوط به CLI مخصوص سیستم عامل خود را دانلود کنید.
  2. وارد سیستم شوید و بررسی کنید که آیا می‌توانید به پروژه‌های خود دسترسی داشته باشید یا خیر. توجه داشته باشید که اگر از Firebase CLI در یک محیط CI استفاده می‌کنید، می‌توانید با یک حساب کاربری سرویس یا با استفاده از login:ci نیز احراز هویت کنید.
  3. دستور apptesting:execute اجرا کنید. برای مثال:

    firebase apptesting:execute \
      --app=1:1234567890:android:0a1b2c3d4e5f67890 \
      --test-dir=./mytests \
      ./app/build/outputs/apk/debug/app-debug.apk
    
apptesting:execute [options] [/path/to/app/binary]
--app

الزامی: شناسه برنامه Firebase شما. می‌توانید شناسه برنامه را در کنسول Firebase ، در صفحه تنظیمات عمومی پیدا کنید.

--app 1:1234567890:android:0a1b2c3d4e5f67890

--test-dir

مسیر به دایرکتوری که حاوی فایل‌های YAML مورد آزمایشی است. این دستور به صورت بازگشتی در این دایرکتوری جستجو می‌کند، بنابراین فایل‌ها می‌توانند به صورت اختیاری در زیردایرکتوری‌ها سازماندهی شوند. در صورت عدم تنظیم، "./tests" به طور پیش‌فرض استفاده می‌شود.

--test-devices یا
--test-devices-file

دستگاه‌های آزمایشی که می‌خواهید توزیع کنید، به ویژگی App Testing agent ساخته می‌شوند.

شما می‌توانید دستگاه‌های تست را به صورت لیستی از دستگاه‌های تست که با نقطه ویرگول از هم جدا شده‌اند، مشخص کنید:

--test-devices "model=tokay,version=36,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

یا می‌توانید مسیر یک فایل متنی ساده حاوی لیستی از دستگاه‌های آزمایشی که با نقطه ویرگول از هم جدا شده‌اند را مشخص کنید:

--test-devices-file "/path/to/test-devices.txt"

شما می‌توانید مدل‌های دستگاه‌های موجود را با استفاده از gcloud CLI جستجو کنید.

--test-non-blocking

در صورت تنظیم، دستور به جای انتظار برای تکمیل تست‌ها، آنها را شروع کرده و بلافاصله برمی‌گرداند.

--test-file-pattern

یک الگوی عبارت منظم . فقط تست‌های موجود در فایل‌هایی که با این الگو مطابقت دارند، اجرا خواهند شد.

--test-name-pattern

یک الگوی عبارت منظم . فقط تست‌هایی با نام‌های نمایشی که با این الگو مطابقت دارند، اجرا خواهند شد.

/path/to/app/binary

اختیاری: مسیر فایل باینری برنامه شما. در صورت حذف، عامل از آخرین نسخه آپلود شده در App Distribution برای برنامه مشخص شده استفاده خواهد کرد.

استفاده از کنسول App Distribution

برای اجرای موارد آزمایشی ذخیره شده در App Distribution، می‌توانید از کنسول Firebase ، Firebase CLI یا افزونه‌های Gradle یا fastlane مربوط به App Distribution استفاده کنید.

وارد کردن و صادر کردن موارد آزمایشی با فایل‌های YAML

وارد کردن موارد آزمایشی از فایل‌های YAML زمانی مفید است که می‌خواهید موارد آزمایشی را خارج از کنسول Firebase مدیریت کنید. همچنین می‌تواند برای خروجی گرفتن از موارد آزمایشی برای جابجایی آنها بین پروژه‌ها مفید باشد. می‌توانید از یک LLM برای اصلاح موارد آزمایشی موجود یا ایجاد موارد آزمایشی جدید استفاده کنید. می‌توانید موارد آزمایشی را از صفحه موارد آزمایشی در کنسول Firebase یا به صورت برنامه‌نویسی با استفاده از Firebase CLI وارد و صادر کنید. برای مثالی از یک مورد آزمایشی YAML، به ایجاد یک مورد آزمایشی YAML مراجعه کنید.

نتایج آزمون خود را مشاهده کنید

شما می‌توانید نتایج آزمایش‌های خود را از صفحه انتشارها در تب App Testing agent مربوط به یک انتشار مشاهده کنید. دکمه View details پنجره نتایج آزمایش را باز می‌کند و هرگونه مشکل، اسکرین‌شات از برنامه و اقداماتی که Gemini در طول آزمایش انجام داده است را به شما نشان می‌دهد.

اگر یک تست شامل اقدامات تکرارشونده باشد، می‌توانید اجرای تست هدایت‌شده توسط هوش مصنوعی اصلی را مشاهده کنید یا حافظه پنهان را پاک کنید.

برای کسب اطلاعات بیشتر در مورد نتایج آزمایش خود، از جدول زیر استفاده کنید:

آیکون نام توضیحات
جرقه اکشن هوش مصنوعی نشان می‌دهد که عامل تست برنامه از Gemini برای تصمیم‌گیری در مورد انجام یک اقدام یا پایان دادن به مرحله استفاده کرده است.
پخش مجدد عمل بازپخش شده نشان می‌دهد که عامل تست برنامه، عملی را از یک اجرای موفق قبلی تست، دوباره اجرا کرده است.
جرقه ادعای هوش مصنوعی نشان می‌دهد که عامل تست برنامه، پس از بازپخش اقدامات انجام شده از اجرای موفق قبلی همان تست، از Gemini برای اعتبارسنجی یک ادعای نهایی روی صفحه نمایش استفاده کرده است.

نتایج آزمایش خود را اشکال‌زدایی کنید

اگر نتایج آزمایش شما با آنچه انتظار داشتید متفاوت است، می‌توانید با استفاده از گزینه نمایش نمای عامل در زیر مشاهده جزئیات در صفحه نتایج آزمایش، آزمایش خود را اشکال‌زدایی کنید. نمای عامل عناصر روی صفحه را که عامل تست برنامه هنگام استفاده از اطلاعات دسترسی برنامه قادر به تشخیص آنها بوده است، به شما نشان می‌دهد. اگر می‌خواهید نگاه دقیق‌تری به آنچه عامل دیده است بیندازید، می‌توانید آن اطلاعات را از منوی سرریز عملیات دانلود کنید.

همچنین می‌توانید از دکمه‌ی «مشاهده‌ی مصنوعات» در صفحه‌ی نتایج آزمایش استفاده کنید تا تمام ویدیوها، گزارش‌ها و سایر مصنوعات ابری مربوط به نتایج آزمایش خود را مشاهده کنید.

مشکلات و محدودیت‌های شناخته‌شده

پیش‌نمایش App Testing agent محدودیت‌های شناخته‌شده‌ای دارد:

  • از آنجا که عامل تست برنامه از هوش مصنوعی مولد برای آزمایش برنامه شما استفاده می‌کند، گاهی اوقات اقدامات متفاوتی انجام می‌دهد در حالی که همچنان از همان دستورالعمل‌ها پیروی می‌کند.
  • عامل تست برنامه فقط از اقدامات زیر پشتیبانی می‌کند: ضربه زدن، وارد کردن متن، کشیدن انگشت به بالا/پایین/چپ/راست، فشار طولانی، کشیدن و رها کردن، بازگشت و انتظار.
  • عامل تست برنامه در اجرای تست‌هایی که فقط شامل یک مرحله هستند و برای انجام آنها به اقدامات زیادی نیاز است، مشکل دارد. این عامل زمانی عملکرد بهتری دارد که وظایف پیچیده به چندین مرحله کوتاه‌تر تقسیم شوند.
  • گاهی اوقات، عامل تست برنامه برای نمایش سایر عناصر خارج از صفحه، اسکرول نمی‌کند. این اتفاق بیشتر زمانی می‌افتد که هیچ نشانه بصری از قابلیت اسکرول وجود نداشته باشد. به عنوان یک راه حل، می‌توان از فیلد "نکات" برای پیشنهاد اسکرول کردن استفاده کرد.
  • عامل تست برنامه گاهی اوقات در شمارش مشکل دارد، برای مثال انجام یک عمل به تعداد دفعات مشخص.
  • اگر FLAG_SECURE فعال باشد، عامل تست برنامه نمی‌تواند برنامه شما را پیمایش کند. به جای اسکرین‌شات از برنامه شما، فقط یک صفحه خالی مشاهده خواهد کرد.

سهمیه‌های آزمون

در طول پیش‌نمایش، آزمون‌های هدایت‌شده توسط هوش مصنوعی بدون هیچ هزینه‌ای و در محدوده سهمیه‌ای ارائه می‌شوند. محدودیت سهمیه پیش‌فرض، ۲۰۰ آزمون در ماه، برای هر پروژه Firebase است.

توجه داشته باشید که اگر تصمیم دارید چندین مورد آزمایشی یا یک مورد آزمایشی را روی چندین دستگاه اجرا کنید، این به عنوان چندین تست حساب می‌شود. به عنوان مثال، اگر 2 مورد آزمایشی را روی 2 دستگاه اجرا کنید، در مجموع 4 تست حساب می‌شود.

برای افزایش سهمیه خود بالاتر از حد پیش‌فرض، با پشتیبانی Firebase تماس بگیرید و مورد استفاده خود را شرح دهید.