برنامه نویسی

🔧 ساختمان چارچوب نمایشنامه نویسی گام به گام – اجرای POM به عنوان جلسه کاربری و AUTH

🎯 مقدمه

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

💡 وسایل چیست؟: به عنوان ابزار تست خود از وسایل تست خود فکر کنید – آنها پایه و اساس و ابزاری را ارائه می دهند که تست های شما برای اجرای مداوم و کارآمد نیاز دارند.

🛠 POM (مدل شیء صفحه) را به عنوان فیکسچر پیاده سازی کنید

folder Fixtures Folder

ایجاد کردن fixtures/pom پوشه های موجود در فهرست اصلی پروژه.

project-root/
├── fixtures/
│   └── pom/
│       ├── page-object-fixture.ts
│       └── test-options.ts
├── tests/
└── playwright.config.ts
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

files فایلهای فیکسچر ایجاد کنید

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

🔧 صفحه فیکسچر شیء

  • page-object-fixture.ts: از این پرونده برای گسترش فیکسچر تست استفاده می شود @playwright/test
import { test as base } from '@playwright/test';
import { HomePage } from '../../pages/clientSite/homePage';
import { NavPage } from '../../pages/clientSite/navPage';
import { ArticlePage } from '../../pages/clientSite/articlePage';

export type FrameworkFixtures = {
    homePage: HomePage;

    navPage: NavPage;

    articlePage: ArticlePage;
};

export const test = base.extend<FrameworkFixtures>({
    homePage: async ({ page }, use) => {
        await use(new HomePage(page));
    },

    navPage: async ({ page }, use) => {
        await use(new NavPage(page));
    },

    articlePage: async ({ page }, use) => {
        await use(new ArticlePage(page));
    },
});

export { expect } from '@playwright/test';
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پیکربندی گزینه های تست

  • test-options.ts: از این پرونده برای ادغام تمام وسایل تست گسترده استفاده می شود
import { test as base, mergeTests } from '@playwright/test';
import { test as pageObjectFixture } from './page-object-fixture';

const test = mergeTests(pageObjectFixture);

const expect = base.expect;
export { test, expect };
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

session جلسه کاربر AUTH

🎯 مزیت استراتژیک: استفاده از جلسات کاربر تأیید شده کاربر در نمایشنامه نویس یک رویکرد استراتژیک برای ساده سازی آزمایش برنامه های محافظت شده با رمز عبور است!

این روش شامل قبل از ایجاد و استفاده مجدد از نشانه های احراز هویت یا اطلاعات جلسه است که به آزمایش های خودکار اجازه می دهد تا از UI ورود به سیستم دور شوند. این به طور قابل توجهی زمان و منابع مورد نیاز برای تست هایی را که نیاز به یک زمینه کاربر معتبر دارند ، کاهش می دهد و باعث افزایش کارایی و قابلیت اطمینان می شود.

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

  • سرعت: به طور مستقیم با استفاده از جلسات معتبر ، سربار پیمایش از طریق صفحه نمایش ورود به سیستم برای هر آزمایش را از بین می برد و روند اجرای آزمون را تسریع می کند
  • 🛡 ثبات: آزمایشات کمتر در معرض خرابی های مربوط به تغییرات UI در جریان احراز هویت قرار می گیرند و قابلیت اطمینان آنها را افزایش می دهند
  • 🎯 تمرکز: به آزمایشات اجازه می دهد تا به جای خود فرآیند ورود به سیستم ، بر عملکردهای اصلی که نیاز به احراز هویت دارند ، متمرکز شوند و آنها را هدفمندتر و مختصر تر کنند

📝 فایل اسکریپت AUTH ایجاد کنید

ایجاد کردن auth.setup.ts پرونده در فهرست آزمون پروژه.

import { test as setup } from '../fixtures/pom/test-options';

setup('auth user', async ({ homePage, navPage, page }) => {
    await setup.step('create logged in user session', async () => {
        await homePage.navigateToHomePageGuest();

        await navPage.logIn(process.env.EMAIL!, process.env.PASSWORD!);

        await page.context().storageState({ path: '.auth/userSession.json' });
    });
});
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

⚙ پرونده پیکربندی را به روز کنید

پیکربندی زیر را به خود اضافه کنید playwright.config.ts:

projects: [
        {
            name: 'setup',
            use: {
                ...devices['Desktop Chrome'],
                viewport: { width: 1366, height: 768 },
            },
            testMatch: /.*\.setup\.ts/,
        },

        {
            name: 'chromium',
            use: {
                ...devices['Desktop Chrome'],
                storageState: '.auth/userSession.json',
                viewport: { width: 1366, height: 768 },
            },
            dependencies: ['setup'],
        },

        {
            name: 'firefox',
            use: { ...devices['Desktop Firefox'] },
        },

        {
            name: 'webkit',
            use: { ...devices['Desktop Safari'] },
        },
    ],
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

🔒 افزودن پرونده به .gitignore

بهترین روش امنیتی: اضافه کردن userSession.json پرونده به .gitignore پرونده در فهرست اصلی پروژه.

# Authentication User file
userSession.json
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

🏃‍♂ ایجاد جلسه کاربر AUTH

اجرا auth.setup.ts پرونده برای ایجاد جلسه کاربر AUTH:

npx playwright test auth.setup.ts
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

👤 جلسه کاربر مهمان ایجاد کنید

ایجاد کردن guestSession.json پرونده در .auth دایرکتوری پروژه و اضافه کردن {} به آن

💡 جلسات مهمان: شیء JSON خالی نشان دهنده یک حالت غیرمجاز برای تست هایی است که نیاز به دسترسی به مهمان دارند.

🎯 بعدی چیست؟

در مقاله بعدی ما پیاده سازی خواهیم کرد تست های UI – آوردن چارچوب خود با آزمایش جامع رابط کاربری!

💬 جامعه: لطفاً برای شروع بحث و گفتگو در مورد این موضوع احساس راحتی کنید ، زیرا هر سهم این امکان را دارد که پالایش بیشتری را انجام دهد.


برای تقویت قابلیت های آزمایش خود آماده هستید؟ بیایید ساخت این چارچوب قوی را با هم ادامه دهیم!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا