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

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

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

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

قبل از شروع

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

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

ایجاد چارچوب تست

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

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

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

استفاده کردن از فایل‌های 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» ایجاد و مدیریت کنید. برای ایجاد چارچوب تست، صفحه App Distribution کنسول Firebase را باز کنید و مراحل زیر را دنبال کنید:

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

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

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

عنوان آزمایش

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

هدف

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

راهنمایی

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

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

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

اجرای آزمایش

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

استفاده کردن از فایل‌های YAML

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

  1. جدیدترین نسخه واسط خط فرمان Firebase را نصب کنید یا به آن به‌روزرسانی کنید. توصیه می‌کنیم باینری مستقل را برای 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 App برنامه‌تان. می‌توانید «شناسه برنامه» را در کنسول 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

توجه داشته باشید که اگر تصمیم بگیرید چند چارچوب تست را اجرا کنید، یا چارچوب تست یکسانی را در چند دستگاه اجرا کنید، این کار به‌عنوان چند تست محسوب می‌شود. برای مثال، اگر ۲ چارچوب تست را در ۲ دستگاه اجرا کنید، این به‌عنوان ۴ تست درنظر گرفته می‌شود.

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