| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import { test, expect } from '@playwright/test'
- // 测试账号配置
- const TEST_USERNAME = process.env.TEST_USERNAME || 'admin'
- const TEST_PASSWORD = process.env.TEST_PASSWORD || '123456'
- test.describe('登录登出测试', () => {
- test.beforeEach(async ({ page }) => {
- // 清除登录状态
- await page.goto('/login')
- await page.evaluate(() => {
- localStorage.clear()
- document.cookie.split(';').forEach((c) => {
- document.cookie = c.replace(/^ +/, '').replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/')
- })
- })
- await page.reload()
- })
- test('登录页面正确显示', async ({ page }) => {
- await expect(page.getByPlaceholder('请输入用户名')).toBeVisible()
- await expect(page.getByPlaceholder('请输入密码')).toBeVisible()
- await expect(page.getByRole('button', { name: '登 录' })).toBeVisible()
- await expect(page.getByText('记住我')).toBeVisible()
- })
- test('空表单提交显示验证错误', async ({ page }) => {
- await page.getByRole('button', { name: '登 录' }).click()
- await expect(page.getByText('请输入用户名')).toBeVisible()
- await expect(page.getByText('请输入密码')).toBeVisible()
- })
- test('登录成功并显示用户名 admin', async ({ page }) => {
- // 输入登录信息
- await page.getByPlaceholder('请输入用户名').fill(TEST_USERNAME)
- await page.getByPlaceholder('请输入密码').fill(TEST_PASSWORD)
- await page.getByRole('button', { name: '登 录' }).click()
- // 等待跳转离开登录页
- await expect(page).not.toHaveURL(/\/login/, { timeout: 15000 })
- // 验证用户名显示为 admin
- await expect(page.locator('.username')).toBeVisible({ timeout: 10000 })
- await expect(page.locator('.username')).toContainText('admin')
- })
- test('登录后可以正常登出', async ({ page }) => {
- // 先登录
- await page.getByPlaceholder('请输入用户名').fill(TEST_USERNAME)
- await page.getByPlaceholder('请输入密码').fill(TEST_PASSWORD)
- await page.getByRole('button', { name: '登 录' }).click()
- await expect(page).not.toHaveURL(/\/login/, { timeout: 15000 })
- // 点击用户下拉菜单
- await page.locator('.user-info').click()
- await page.waitForTimeout(500)
- // 点击退出登录
- await page.getByText('退出登录').click()
- // 验证跳转到登录页
- await expect(page).toHaveURL(/\/login/, { timeout: 10000 })
- })
- test('修改密码弹窗可以打开', async ({ page }) => {
- // 先登录
- await page.getByPlaceholder('请输入用户名').fill(TEST_USERNAME)
- await page.getByPlaceholder('请输入密码').fill(TEST_PASSWORD)
- await page.getByRole('button', { name: '登 录' }).click()
- await expect(page).not.toHaveURL(/\/login/, { timeout: 15000 })
- // 点击用户下拉菜单
- await page.locator('.user-info').click()
- await page.waitForTimeout(500)
- // 点击修改密码
- await page.getByText('修改密码').click()
- // 验证弹窗显示
- await expect(page.getByRole('dialog')).toBeVisible()
- await expect(page.locator('.el-dialog').getByText('修改密码')).toBeVisible()
- })
- })
|