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

39 lines
1.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import pytest
from playwright.async_api import async_playwright, expect
from common.base_page_test import BasePageTest
from common.config import Config
class SwaggerTest(BasePageTest):
async def check_swagger_interface(self) -> None:
"""测试系统接口页面 (Swagger UI)"""
# 1. 直接导航到系统接口页面
await self.goto_page(Config.frontend_url + '/tool/swagger')
# 2. 验证页面加载
# 等待 iframe 出现
iframe = self.page.locator('iframe')
await expect(iframe).to_be_visible()
# 获取 iframe 内容框架
frame = self.page.frame_locator('iframe')
# 后端未禁用Swagger时验证 iframe 内部的标题包含 "ShiErFeng-FastAPI"
# 当前生产环境已默认禁用Swagger此处验证标题是否包含默认禁用提示
h1_locator = frame.locator('h1')
await expect(h1_locator).to_contain_text('Swagger UI has been disabled. Please enable it first.', timeout=15000)
@pytest.mark.asyncio
async def test_swagger_page() -> None:
"""测试系统接口页面功能"""
async with async_playwright() as p:
test_instance = SwaggerTest()
await test_instance.setup(p)
try:
await test_instance.check_swagger_interface()
finally:
await test_instance.teardown()