| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- import { test, expect } from '@playwright/test';
- /**
- * 基础页面测试
- */
- test.describe('基础页面测试', () => {
- test('页面加载测试', async ({ page }) => {
- await page.goto('/');
-
- // 检查页面标题
- await expect(page).toHaveTitle(/若依管理系统/);
-
- // 检查页面是否成功加载
- await expect(page.locator('body')).toBeVisible();
- });
- test('登录页面测试', async ({ page }) => {
- await page.goto('/login');
-
- // 检查登录表单元素是否存在
- await expect(page.locator('input[type="text"], input[type="username"]')).toBeVisible();
- await expect(page.locator('input[type="password"]')).toBeVisible();
- await expect(page.locator('button[type="submit"]')).toBeVisible();
- });
- test('响应式布局测试', async ({ page }) => {
- await page.goto('/');
-
- // 测试桌面视图
- await page.setViewportSize({ width: 1920, height: 1080 });
- await expect(page.locator('body')).toBeVisible();
-
- // 测试平板视图
- await page.setViewportSize({ width: 768, height: 1024 });
- await expect(page.locator('body')).toBeVisible();
-
- // 测试移动端视图
- await page.setViewportSize({ width: 375, height: 667 });
- await expect(page.locator('body')).toBeVisible();
- });
- });
- /**
- * Cesium 地图测试
- */
- test.describe('Cesium 地图测试', () => {
- test('地图容器加载测试', async ({ page }) => {
- await page.goto('/');
-
- // 等待 Cesium 容器加载
- await page.waitForSelector('#cesiumContainer, .cesium-viewer, [class*="cesium"]', { timeout: 10000 });
-
- // 检查地图容器是否可见
- const cesiumContainer = page.locator('#cesiumContainer, .cesium-viewer, [class*="cesium"]').first();
- await expect(cesiumContainer).toBeVisible();
- });
- test('地图交互测试', async ({ page }) => {
- await page.goto('/');
-
- // 等待地图加载
- await page.waitForSelector('#cesiumContainer, .cesium-viewer, [class*="cesium"]', { timeout: 10000 });
-
- // 模拟鼠标交互
- const cesiumContainer = page.locator('#cesiumContainer, .cesium-viewer, [class*="cesium"]').first();
- await cesiumContainer.click({ position: { x: 100, y: 100 } });
-
- // 检查是否有交互响应
- await page.waitForTimeout(1000);
- });
- });
- /**
- * 性能测试
- */
- test.describe('性能测试', () => {
- test('页面加载性能', async ({ page }) => {
- const startTime = Date.now();
-
- await page.goto('/');
- await page.waitForLoadState('networkidle');
-
- const loadTime = Date.now() - startTime;
- console.log(`页面加载时间: ${loadTime}ms`);
-
- // 页面应该在合理时间内加载完成
- expect(loadTime).toBeLessThan(10000);
- });
- test('资源加载测试', async ({ page }) => {
- const failedRequests: string[] = [];
-
- page.on('requestfailed', (request) => {
- failedRequests.push(request.url());
- });
-
- await page.goto('/');
- await page.waitForLoadState('networkidle');
-
- // 检查是否有失败的请求
- if (failedRequests.length > 0) {
- console.warn('失败的请求:', failedRequests);
- }
-
- // 允许少量请求失败,但不能太多
- expect(failedRequests.length).toBeLessThan(5);
- });
- });
|