ShiErFeng/shierfeng-fastapi-test/test_pages.py
2026-07-24 09:43:10 +08:00

120 lines
3.7 KiB
Python

import pytest
from playwright.async_api import async_playwright
from common.config import Config
from common.login_helper import LoginHelper
@pytest.mark.asyncio
async def test_dashboard_page() -> None:
"""测试仪表盘页面"""
# 首先登录获取token
helper = LoginHelper()
token = helper.login(username='admin', password='admin123')
assert token is not None, '登录应该成功'
async with async_playwright() as p:
browser = await p.chromium.launch(headless=True)
context = await browser.new_context()
# 设置认证token
await context.add_cookies(
[
{
'name': 'Admin-Token',
'value': token,
'domain': 'localhost',
'path': '/',
'httpOnly': False,
'secure': False,
}
]
)
page = await context.new_page()
# 访问仪表盘页面
await page.goto(Config.frontend_url + '/index')
# 检查页面是否包含仪表盘相关元素
await page.wait_for_selector('div:has-text("首页")', timeout=10000)
title = await page.inner_text('div:has-text("首页")')
assert '首页' in title
await context.close()
await browser.close()
@pytest.mark.asyncio
async def test_druid_page() -> None:
"""测试数据监控页面"""
# 首先登录获取token
helper = LoginHelper()
token = helper.login(username='admin', password='admin123')
assert token is not None, '登录应该成功'
async with async_playwright() as p:
browser = await p.chromium.launch(headless=True)
context = await browser.new_context()
# 设置认证token
await context.add_cookies(
[
{
'name': 'Admin-Token',
'value': token,
'domain': 'localhost',
'path': '/',
'httpOnly': False,
'secure': False,
}
]
)
page = await context.new_page()
# 访问数据库监控页面
await page.goto(Config.frontend_url + '/monitor/druid')
# 检查页面是否包含缓存监控相关元素
await page.wait_for_selector('div:has-text("数据监控")', timeout=10000)
title = await page.inner_text('div:has-text("数据监控")')
assert '数据监控' in title
await context.close()
await browser.close()
@pytest.mark.asyncio
async def test_build_page() -> None:
"""测试表单构建页面"""
# 首先登录获取token
helper = LoginHelper()
token = helper.login(username='admin', password='admin123')
assert token is not None, '登录应该成功'
async with async_playwright() as p:
browser = await p.chromium.launch(headless=True)
context = await browser.new_context()
# 设置认证token
await context.add_cookies(
[
{
'name': 'Admin-Token',
'value': token,
'domain': 'localhost',
'path': '/',
'httpOnly': False,
'secure': False,
}
]
)
page = await context.new_page()
# 访问数据库监控页面
await page.goto(Config.frontend_url + '/tool/build')
# 检查页面是否包含缓存监控相关元素
await page.wait_for_selector('div:has-text("Form Generator")', timeout=10000)
title = await page.inner_text('div:has-text("Form Generator")')
assert '表单构建' in title
await context.close()
await browser.close()