mirror of
https://github.com/insistence/RuoYi-Vue3-FastAPI.git
synced 2026-09-30 07:46:14 +00:00
* feat: 新增E2E测试 * fix: 修复docker compose命令书写错误 * fix: 运行测试前执行`playwright install` * fix: 增强检查以尝试修复3.11连接拒绝的问题 * fix: 增加mysql服务检查 * fix: 修复python 3.9兼容性问题 * perf: 优化禁用验证码脚本 * feat: 新增pg测试 * fix: 修复pg测试检查服务名书写错误 * perf: 优化测试 * style: 格式化代码
120 lines
3.7 KiB
Python
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()
|