عامل «آزمایش برنامه» (Android)

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

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

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

قبل از شروع

اگر قبلاً این کار را نکرده‌اید، برنامه‌تان را در Firebase ثبت کنید.

اگر از هیچ‌یک از محصولات دیگر Firebase استفاده نمی‌کنید، فقط باید پروژه‌ای ایجاد کنید و برنامه‌تان را ثبت کنید. لازم نیست هیچ کیت توسعه نرم‌افزاری به برنامه‌تان اضافه کنید. بااین‌حال، اگر در آینده تصمیم گرفتید از محصولات دیگری استفاده کنید، حتماً همه مراحل افزودن 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، می‌توانید مورد آزمون پیش‌نیاز اضافه کنید.

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

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

  1. در برگه موارد آزمایشی، روی مورد آزمایشی جدید کلیک کنید. اگر نمی‌خواهید مورد آزمون خودتان را ایجاد کنید، می‌توانید مورد آزمون مثال ارائه‌شده را اصلاح کنید یا از آن استفاده کنید.
  2. در کادر گفتگوی افزودن مورد آزمون، نامی برای مورد آزمون انتخاب کنید. این برای شناسایی آزمایش استفاده می‌شود، اما عامل آن را نادیده می‌گیرد.
  3. (اختیاری) مورد آزمون پیش‌نیاز را که حاوی مراحل راه‌اندازی برای اجرا قبل‌از آزمون اصلی است انتخاب کنید. اگر آزمون پیش‌نیاز ناموفق باشد، کل آزمون به‌عنوان ناموفق علامت‌گذاری خواهد شد. مراحل و پیامدهای آزمون پیش‌نیاز و آزمون اصلی در نتایج آزمون با هم نشان داده خواهد شد.
  4. با کلیک کردن روی دکمه افزودن مرحله دیگر، آزمایش خود را به چند مرحله تقسیم کنید.
  5. به هر مرحله هدف بدهید که توضیح دهد نماینده «آزمایش برنامه» باید در آن مرحله چه کاری انجام دهد.
  6. (اختیاری) راهنمایی اضافه کنید تا اطلاعات بیشتری ارائه دهید و به «عامل آزمایش برنامه» کمک کنید درطول این مرحله برنامه شما را درک و در آن پیمایش کند.
  7. ادعای صفحه پایانی را اضافه کنید تا به عامل «آزمایش برنامه» کمک کند تشخیص دهد این مرحله باموفقیت تکمیل شده است. این ادعا باید فقط به آنچه در صفحه نمایان است اشاره کند.
  8. پس‌از سفارشی‌سازی آزمایشتان، روی ذخیره کردن کلیک کنید.

چارچوب تست نمونه

در زیر نمونه‌ای از نحوه ایجاد مورد آزمون بااستفاده از عامل «آزمایش برنامه» آمده است:

عنوان آزمایشی

صفحه اصلی بار می‌شود

هدف

بار کردن صفحه اصلی

راهنمایی

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

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

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

اجرای آزمایش

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

استفاده از فایل‌های 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 [گزینه‌ها] [/path/to/app/binary]
--app

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

--app 1:1234567890:android:0a1b2c3d4e5f67890

--test-dir

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

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

دستگاه‌هایی که آزمون‌ها در آن‌ها اجرا می‌شود.

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

--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-username

نام کاربری برای ورود خودکار به سیستم که درطول آزمایش‌ها استفاده می‌شود.

‫--test-password یا
--test-password-file

گذرواژه ورود خودکار به سیستم که درطول آزمایش‌ها استفاده می‌شود.

یا می‌توانید مسیر فایل متن ساده حاوی گذرواژه را مشخص کنید:

--test-password-file: "/path/to/test-password.txt"
--test-non-blocking

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

--results-bucket

باکت سفارشی Google Cloud Storage (GCS) که نتایج آزمایش در آن ذخیره می‌شود. اگر خالی بگذارید، از دسته‌بندی پیش‌فرض استفاده می‌شود. مالک این دسته‌بندی باید پروژه‌ای با صورت‌حساب فعال باشد و مشخص کردن دسته‌بندی منجر به کسر هزینه صورت‌حساب برای فضای ذخیره‌سازی استفاده‌شده می‌شود.

--test-file-pattern

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

--test-name-pattern

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

/path/to/app/binary

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

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

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

وارد کردن و صادر کردن چارچوب‌های تست با فایل‌های YAML

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

مشاهده نتایج آزمایش

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

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

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

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

عیب‌یابی کردن نتایج آزمایش

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

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

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

پیش‌نمایش عامل «آزمایش برنامه» دارای برخی محدودیت‌های شناخته‌شده است:

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

آزمایش سهمیه‌ها

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

توجه داشته باشید که اگر انتخاب کنید چندین مورد آزمون را اجرا کنید، یا مورد آزمون یکسانی را در چندین دستگاه اجرا کنید، این به‌عنوان چندین آزمون محسوب می‌شود. برای مثال، اگر ۲ مورد آزمایشی را در ۲ دستگاه اجرا کنید، این کار به‌عنوان مجموعاً ۴ آزمایش محسوب می‌شود.

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