_smoke_browser.spec.js 1.3 KB

12345678910111213141516171819202122232425262728
  1. // 最小浏览器冒烟:验证本机 Chromium 能真实拉起并打开页面
  2. const { test, expect } = require('@playwright/test');
  3. test.describe('browser smoke', () => {
  4. test('Chromium 能启动并打开本地后端首页', async ({ page }) => {
  5. // 仅验证浏览器内核可用:访问本地后端根路径,确认有 HTTP 响应且页面上下文可执行 JS
  6. const resp = await page.goto('/', { waitUntil: 'domcontentloaded' });
  7. expect(resp, '本地后端应返回响应').not.toBeNull();
  8. expect(resp.status(), 'HTTP 状态码应为 2xx/3xx').toBeLessThan(500);
  9. // 在真实页面上下文执行 JS,证明是真实浏览器渲染而非 API 调用
  10. const ua = await page.evaluate(() => navigator.userAgent);
  11. expect(ua, 'userAgent 应包含 Chromium/HeadlessChrome').toMatch(/Chromium|HeadlessChrome/i);
  12. // 标题可访问(即使 404 也有文档)
  13. const title = await page.title();
  14. expect(typeof title, '应能读取 document.title').toBe('string');
  15. });
  16. test('Chromium 能渲染页面并点击交互', async ({ page }) => {
  17. await page.setContent(
  18. '<html><body><button id="b" style="width:120px;height:40px">click</button></body></html>'
  19. );
  20. await page.click('#b');
  21. const txt = await page.$eval('#b', (el) => el.textContent);
  22. expect(txt).toBe('click');
  23. });
  24. });