feat: 修复测试套件问题并添加Woodpecker CI配置

- 修复API测试认证问题:创建全局认证设置,更新Playwright配置
- 优化回归测试稳定性:增加超时时间到15秒,修复定位器
- 创建Woodpecker CI工作流:CI、部署和质量门禁配置
- 添加Jest配置和测试脚本
- 移除登录页面的默认账号密码显示(安全问题修复)
This commit is contained in:
张翔
2026-03-09 10:26:02 +08:00
parent 96c96fe75d
commit 6d92024b63
68 changed files with 5584 additions and 167 deletions
+2 -1
View File
@@ -1,9 +1,10 @@
import { Page } from '@playwright/test';
import { BasePage } from './BasePage';
import { getPageConfig } from '../config/test-pages';
import { TestConfig } from '../types';
export class AboutPage extends BasePage {
constructor(page: Page, config?) {
constructor(page: Page, config?: TestConfig) {
const pageConfig = getPageConfig('about');
super(page, pageConfig.url, config);
}
+2 -1
View File
@@ -1,9 +1,10 @@
import { Page } from '@playwright/test';
import { BasePage } from './BasePage';
import { getPageConfig } from '../config/test-pages';
import { TestConfig } from '../types';
export class CasesPage extends BasePage {
constructor(page: Page, config?) {
constructor(page: Page, config?: TestConfig) {
const pageConfig = getPageConfig('cases');
super(page, pageConfig.url, config);
}
+2 -1
View File
@@ -1,9 +1,10 @@
import { Page } from '@playwright/test';
import { BasePage } from './BasePage';
import { getPageConfig } from '../config/test-pages';
import { TestConfig } from '../types';
export class ContactPage extends BasePage {
constructor(page: Page, config?) {
constructor(page: Page, config?: TestConfig) {
const pageConfig = getPageConfig('contact');
super(page, pageConfig.url, config);
}
+2 -4
View File
@@ -1,16 +1,14 @@
import { Page } from '@playwright/test';
import { BasePage } from './BasePage';
import { getPageConfig } from '../config/test-pages';
import { TestConfig } from '../types';
export class HomePage extends BasePage {
constructor(page: Page, config?) {
constructor(page: Page, config?: TestConfig) {
const pageConfig = getPageConfig('home');
super(page, pageConfig.url, config);
this.pageConfig = pageConfig;
}
private pageConfig;
async getHeroTitle(): Promise<string> {
return await this.getText('h1');
}
+2 -1
View File
@@ -1,9 +1,10 @@
import { Page } from '@playwright/test';
import { BasePage } from './BasePage';
import { getPageConfig } from '../config/test-pages';
import { TestConfig } from '../types';
export class NewsPage extends BasePage {
constructor(page: Page, config?) {
constructor(page: Page, config?: TestConfig) {
const pageConfig = getPageConfig('news');
super(page, pageConfig.url, config);
}
+2 -1
View File
@@ -1,9 +1,10 @@
import { Page } from '@playwright/test';
import { BasePage } from './BasePage';
import { getPageConfig } from '../config/test-pages';
import { TestConfig } from '../types';
export class ProductsPage extends BasePage {
constructor(page: Page, config?) {
constructor(page: Page, config?: TestConfig) {
const pageConfig = getPageConfig('products');
super(page, pageConfig.url, config);
}
+2 -1
View File
@@ -1,9 +1,10 @@
import { Page } from '@playwright/test';
import { BasePage } from './BasePage';
import { getPageConfig } from '../config/test-pages';
import { TestConfig } from '../types';
export class ServicesPage extends BasePage {
constructor(page: Page, config?) {
constructor(page: Page, config?: TestConfig) {
const pageConfig = getPageConfig('services');
super(page, pageConfig.url, config);
}