audit.spec.ts 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. import { test, expect } from '@playwright/test'
  2. // 测试账号配置
  3. const TEST_USERNAME = process.env.TEST_USERNAME || 'admin'
  4. const TEST_PASSWORD = process.env.TEST_PASSWORD || '123456'
  5. test.describe('审计日志测试', () => {
  6. test.beforeEach(async ({ page }) => {
  7. // 先登录
  8. await page.goto('/login')
  9. await page.getByPlaceholder('用户名').fill(TEST_USERNAME)
  10. await page.getByPlaceholder('密码').fill(TEST_PASSWORD)
  11. await page.getByRole('button', { name: '登录' }).click()
  12. // 等待登录成功
  13. await page.waitForURL(/^(?!.*\/login).*$/, { timeout: 15000 })
  14. // 进入审计日志页面
  15. await page.goto('/audit')
  16. await page.waitForLoadState('networkidle')
  17. })
  18. test('审计日志页面正确显示', async ({ page }) => {
  19. // 验证页面元素
  20. await expect(page.locator('.audit-container')).toBeVisible()
  21. })
  22. test('显示搜索区域', async ({ page }) => {
  23. // 验证搜索卡片存在
  24. await expect(page.locator('.search-card')).toBeVisible()
  25. // 验证搜索按钮
  26. await expect(page.getByRole('button', { name: '搜索' })).toBeVisible()
  27. await expect(page.getByRole('button', { name: '重置' })).toBeVisible()
  28. })
  29. test('显示统计卡片', async ({ page }) => {
  30. // 验证统计行存在
  31. await expect(page.locator('.stat-row')).toBeVisible()
  32. // 验证统计卡片
  33. await expect(page.getByText('总操作数')).toBeVisible()
  34. })
  35. test('显示数据表格', async ({ page }) => {
  36. // 验证表格存在
  37. await expect(page.locator('.el-table')).toBeVisible()
  38. })
  39. test('刷新功能正常', async ({ page }) => {
  40. // 查找刷新按钮
  41. const refreshBtn = page.getByRole('button', { name: '刷新' })
  42. if (await refreshBtn.isVisible()) {
  43. await refreshBtn.click()
  44. await page.waitForTimeout(1000)
  45. // 验证表格仍然存在
  46. await expect(page.locator('.el-table')).toBeVisible()
  47. }
  48. })
  49. test('搜索功能正常', async ({ page }) => {
  50. // 点击搜索
  51. await page.getByRole('button', { name: '搜索' }).click()
  52. await page.waitForTimeout(1000)
  53. // 验证表格存在
  54. await expect(page.locator('.el-table')).toBeVisible()
  55. })
  56. test('重置功能正常', async ({ page }) => {
  57. // 点击重置
  58. await page.getByRole('button', { name: '重置' }).click()
  59. await page.waitForTimeout(500)
  60. // 验证表格存在
  61. await expect(page.locator('.el-table')).toBeVisible()
  62. })
  63. test('操作类型筛选器存在', async ({ page }) => {
  64. // 验证操作类型选择器
  65. await expect(page.getByText('操作类型')).toBeVisible()
  66. })
  67. test('资源类型筛选器存在', async ({ page }) => {
  68. // 验证资源类型选择器
  69. await expect(page.getByText('资源类型')).toBeVisible()
  70. })
  71. test('时间范围筛选器存在', async ({ page }) => {
  72. // 验证时间范围选择器
  73. await expect(page.getByText('时间范围')).toBeVisible()
  74. })
  75. test('分页功能存在', async ({ page }) => {
  76. // 验证分页组件存在
  77. await expect(page.locator('.el-pagination')).toBeVisible()
  78. })
  79. test('表格列标题正确', async ({ page }) => {
  80. // 验证表格列标题
  81. await expect(page.locator('.el-table')).toContainText('时间')
  82. await expect(page.locator('.el-table')).toContainText('操作用户')
  83. await expect(page.locator('.el-table')).toContainText('操作类型')
  84. await expect(page.locator('.el-table')).toContainText('资源类型')
  85. })
  86. })