diff --git a/.env b/.env index dbcb7bf..3bdec4a 100644 --- a/.env +++ b/.env @@ -1,2 +1,4 @@ -BASE_URL=https://px.meiguanjia.net/web/ -# BASE_URL=https://px.meiguanjia.net/prestg/web/ \ No newline at end of file +BASE_URL=https://px.meiguanjia.net//web/#/frame/dashboard +# BASE_URL=https://px.meiguanjia.net/prestg/web/ +ACCOUNT=17770898274 +PASSWORD=a123456 \ No newline at end of file diff --git a/fixtures/baseFixture.ts b/fixtures/baseFixture.ts index 5744a1c..0921840 100644 --- a/fixtures/baseFixture.ts +++ b/fixtures/baseFixture.ts @@ -1,8 +1,8 @@ import { test as base } from '@playwright/test'; export const test = base.extend({ - page: async ({ page }, use) => { - await page.goto('/'); + page: async ({ page, baseURL }, use) => { + await page.goto(baseURL || ''); await use(page); } }); \ No newline at end of file diff --git a/fixtures/exportFixutre.ts b/fixtures/exportFixutre.ts index a791bb1..635b055 100644 --- a/fixtures/exportFixutre.ts +++ b/fixtures/exportFixutre.ts @@ -1,9 +1,7 @@ import { mergeTests } from '@playwright/test'; -import { test as baseTest } from '../fixtures/baseFixture'; import { test as loginTest } from '../fixtures/loginFixture'; export const test = mergeTests( - baseTest, loginTest ); diff --git a/pages/loginPage.ts b/pages/loginPage.ts index 8e91e0f..415a41b 100644 --- a/pages/loginPage.ts +++ b/pages/loginPage.ts @@ -20,16 +20,20 @@ export class LoginPage { this.first_menu = page.getByText('概况'); } - async user_login(account: string, password: string) { + async user_login(account: string, password: string, tenant?: string) { await this.login_account.fill(account); await this.account_pass_hint.waitFor(); await this.login_password.fill(password); await this.login_protocol.click(); await this.login_button.click(); + if (tenant) { + await this.page.getByText(tenant).click(); + } } - user_login_success() { - return this.first_menu; + async user_login_success() { + await expect(this.page).toHaveURL(/.*\/frame\/dashboard/); + await expect(this.page.getByText('商城数据')).toBeVisible(); } } \ No newline at end of file diff --git a/playwright.config.ts b/playwright.config.ts index ed50e02..c93c1aa 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -42,7 +42,7 @@ export default defineConfig({ }, { name: 'chromium', - use: { ...devices['Desktop Chrome'], storageState: 'state.json' }, + use: { ...devices['Desktop Chrome'] }, dependencies: ['setup'], }, ], diff --git a/tests/login.spec.ts b/tests/login.spec.ts index 1a0cb89..d24e609 100644 --- a/tests/login.spec.ts +++ b/tests/login.spec.ts @@ -1,6 +1,8 @@ import { expect, test } from '../fixtures/exportFixutre'; +import dotenv from 'dotenv'; +dotenv.config(); test('login success', async ({ page, loginPage }) => { - await loginPage.user_login('17770898274', 'a123456'); - await expect(loginPage.user_login_success()).toBeVisible(); + await loginPage.user_login(process.env.ACCOUNT || '', process.env.PASSWORD || '', '海石XW'); + await loginPage.user_login_success(); }); \ No newline at end of file diff --git a/tests/setup.ts b/tests/setup.ts index ce656b5..101d348 100644 --- a/tests/setup.ts +++ b/tests/setup.ts @@ -6,6 +6,6 @@ setup('state setup', async ({ page }) => { const loginPage = new LoginPage(page); await loginPage.user_login('17700000003', 'a123456'); await page.pause(); - await loginPage.user_login_success().waitFor(); + await loginPage.user_login_success(); await page.context().storageState({ path: 'state.json', indexedDB: true }); }); \ No newline at end of file