import {test, expect} from "@playwright/test"; import { BASE_URL } from './helpers/utils' test.describe("Alerts 页面功能测试", () => { test.beforeEach(async ({page}) => { await page.goto(`${BASE_URL}/alerts`); // 根据你实际路由调整 }); test("页面加载并显示告警统计", async ({page}) => { await expect(page.locator("text=告警详情")).toBeVisible(); await expect(page.locator("text=总数")).toBeVisible(); await expect(page.locator("text=严重")).toBeVisible(); await expect(page.locator("text=警告")).toBeVisible(); await expect(page.locator("text=信息")).toBeVisible(); }); test("筛选功能验证", async ({page}) => { const severitySelect = page.getByLabel("严重性"); const stateSelect = page.getByLabel("状态"); const nodeSelect = page.getByLabel("节点"); await severitySelect.selectOption("critical"); await expect(severitySelect).toHaveValue("critical"); await stateSelect.selectOption("active"); await expect(stateSelect).toHaveValue("active"); await nodeSelect.selectOption("all"); await expect(nodeSelect).toHaveValue("all"); }); test("排序功能", async ({page}) => { const severityHeader = page.locator("th:has-text('严重性') button"); await severityHeader.click(); // 切换升序 await severityHeader.click(); // 切换降序 const instanceHeader = page.locator("th:has-text('节点') button"); await instanceHeader.click(); await instanceHeader.click(); }); test("分页功能", async ({page}) => { const nextButton = page.locator("button:has-text('下一页')"); const prevButton = page.locator("button:has-text('上一页')"); if (await nextButton.isEnabled()) { await nextButton.click(); await expect(prevButton).toBeEnabled(); } }); test("展开更多信息行", async ({page}) => { const infoIcons = page.locator("table tbody tr td [title='显示/隐藏更多信息']"); if (await infoIcons.count() > 0) { await infoIcons.first().click(); // 展开的详情行应出现 const details = page.locator("table tbody tr >> text=alertname"); const detailCount = await details.count(); expect(detailCount).toBeGreaterThan(0); } }); test("自动刷新开关与刷新按钮", async ({page}) => { const switchBtn = page.getByRole("switch", {name: "自动刷新"}); const refreshBtn = page.getByTitle("刷新"); await expect(switchBtn).toBeVisible(); await expect(refreshBtn).toBeVisible(); // 手动点击刷新按钮 await refreshBtn.click(); // 自动刷新开关切换 const isChecked = await switchBtn.isChecked(); await switchBtn.click(); await expect(switchBtn).toHaveJSProperty("checked", !isChecked); }); });