|
@@ -51,17 +51,18 @@ test.describe('残疾人管理 - 完整 CRUD 流程测试', () => {
|
|
|
await disabilityPersonPage.goto();
|
|
await disabilityPersonPage.goto();
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
- // 统一的测试后清理机制
|
|
|
|
|
|
|
+ // 统一的测试后清理机制(优化超时保护)
|
|
|
test.afterEach(async ({ disabilityPersonPage, page }) => {
|
|
test.afterEach(async ({ disabilityPersonPage, page }) => {
|
|
|
- // 清理测试数据
|
|
|
|
|
|
|
+ // 清理测试数据(添加超时保护以避免 afterEach 超过 60 秒)
|
|
|
for (const data of createdTestData) {
|
|
for (const data of createdTestData) {
|
|
|
try {
|
|
try {
|
|
|
- await disabilityPersonPage.goto();
|
|
|
|
|
|
|
+ await disabilityPersonPage.goto().catch(() => {});
|
|
|
await disabilityPersonPage.searchByName(data.name);
|
|
await disabilityPersonPage.searchByName(data.name);
|
|
|
|
|
+ // 为每个清理操作设置较短的超时时间
|
|
|
const deleteButton = page.getByRole('button', { name: '删除' }).first();
|
|
const deleteButton = page.getByRole('button', { name: '删除' }).first();
|
|
|
- if (await deleteButton.count() > 0) {
|
|
|
|
|
- await deleteButton.click();
|
|
|
|
|
- await page.getByRole('button', { name: '确认' }).click().catch(() => {});
|
|
|
|
|
|
|
+ if (await deleteButton.count({ timeout: 2000 }) > 0) {
|
|
|
|
|
+ await deleteButton.click({ timeout: 5000 });
|
|
|
|
|
+ await page.getByRole('button', { name: '确认' }).click({ timeout: 5000 }).catch(() => {});
|
|
|
await page.waitForTimeout(500);
|
|
await page.waitForTimeout(500);
|
|
|
}
|
|
}
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
@@ -94,7 +95,7 @@ test.describe('残疾人管理 - 完整 CRUD 流程测试', () => {
|
|
|
subBankName: '测试支行',
|
|
subBankName: '测试支行',
|
|
|
cardNumber: '6222021234567890123',
|
|
cardNumber: '6222021234567890123',
|
|
|
cardholderName: testData.name,
|
|
cardholderName: testData.name,
|
|
|
- cardType: '借记卡',
|
|
|
|
|
|
|
+ cardType: '一类卡',
|
|
|
isDefault: true,
|
|
isDefault: true,
|
|
|
});
|
|
});
|
|
|
console.debug('✓ 银行卡已添加');
|
|
console.debug('✓ 银行卡已添加');
|
|
@@ -117,17 +118,13 @@ test.describe('残疾人管理 - 完整 CRUD 流程测试', () => {
|
|
|
// 7. 等待对话框关闭
|
|
// 7. 等待对话框关闭
|
|
|
await disabilityPersonPage.waitForDialogClosed();
|
|
await disabilityPersonPage.waitForDialogClosed();
|
|
|
|
|
|
|
|
- // 8. 刷新页面并搜索新创建的记录
|
|
|
|
|
|
|
+ // 8. 刷新页面并搜索新创建的记录(使用重试机制修复数据持久化问题)
|
|
|
await page.reload();
|
|
await page.reload();
|
|
|
await page.waitForLoadState('networkidle');
|
|
await page.waitForLoadState('networkidle');
|
|
|
await disabilityPersonPage.goto();
|
|
await disabilityPersonPage.goto();
|
|
|
|
|
|
|
|
- await disabilityPersonPage.searchByName(testData.name);
|
|
|
|
|
- // 增加等待时间以确保数据已持久化(修复稳定性问题)
|
|
|
|
|
- await page.waitForTimeout(3000);
|
|
|
|
|
-
|
|
|
|
|
- // 9. 验证记录创建成功
|
|
|
|
|
- const personExists = await disabilityPersonPage.personExists(testData.name);
|
|
|
|
|
|
|
+ // 9. 使用带重试机制的等待方法验证记录创建成功
|
|
|
|
|
+ const personExists = await disabilityPersonPage.waitForPersonExists(testData.name, { timeout: 15000 });
|
|
|
|
|
|
|
|
console.debug('========== 验证结果 ==========');
|
|
console.debug('========== 验证结果 ==========');
|
|
|
console.debug('数据创建成功:', personExists);
|
|
console.debug('数据创建成功:', personExists);
|
|
@@ -164,17 +161,13 @@ test.describe('残疾人管理 - 完整 CRUD 流程测试', () => {
|
|
|
// 5. 等待对话框关闭
|
|
// 5. 等待对话框关闭
|
|
|
await disabilityPersonPage.waitForDialogClosed();
|
|
await disabilityPersonPage.waitForDialogClosed();
|
|
|
|
|
|
|
|
- // 6. 刷新页面并搜索新创建的记录
|
|
|
|
|
|
|
+ // 6. 刷新页面并搜索新创建的记录(使用重试机制修复数据持久化问题)
|
|
|
await page.reload();
|
|
await page.reload();
|
|
|
await page.waitForLoadState('networkidle');
|
|
await page.waitForLoadState('networkidle');
|
|
|
await disabilityPersonPage.goto();
|
|
await disabilityPersonPage.goto();
|
|
|
|
|
|
|
|
- await disabilityPersonPage.searchByName(testData.name);
|
|
|
|
|
- // 增加等待时间以确保数据已持久化(修复稳定性问题)
|
|
|
|
|
- await page.waitForTimeout(3000);
|
|
|
|
|
-
|
|
|
|
|
- // 7. 验证记录创建成功
|
|
|
|
|
- const personExists = await disabilityPersonPage.personExists(testData.name);
|
|
|
|
|
|
|
+ // 7. 使用带重试机制的等待方法验证记录创建成功
|
|
|
|
|
+ const personExists = await disabilityPersonPage.waitForPersonExists(testData.name, { timeout: 15000 });
|
|
|
|
|
|
|
|
console.debug('========== 验证结果 ==========');
|
|
console.debug('========== 验证结果 ==========');
|
|
|
console.debug('数据创建成功:', personExists);
|
|
console.debug('数据创建成功:', personExists);
|
|
@@ -202,17 +195,14 @@ test.describe('残疾人管理 - 完整 CRUD 流程测试', () => {
|
|
|
// 4. 提交表单
|
|
// 4. 提交表单
|
|
|
const result = await disabilityPersonPage.submitForm();
|
|
const result = await disabilityPersonPage.submitForm();
|
|
|
|
|
|
|
|
- // 5. 验证结果
|
|
|
|
|
|
|
+ // 5. 验证结果(使用重试机制修复数据持久化问题)
|
|
|
await disabilityPersonPage.waitForDialogClosed();
|
|
await disabilityPersonPage.waitForDialogClosed();
|
|
|
await page.reload();
|
|
await page.reload();
|
|
|
await page.waitForLoadState('networkidle');
|
|
await page.waitForLoadState('networkidle');
|
|
|
await disabilityPersonPage.goto();
|
|
await disabilityPersonPage.goto();
|
|
|
|
|
|
|
|
- await disabilityPersonPage.searchByName(testData.name);
|
|
|
|
|
- // 增加等待时间以确保数据已持久化(修复稳定性问题)
|
|
|
|
|
- await page.waitForTimeout(3000);
|
|
|
|
|
-
|
|
|
|
|
- const personExists = await disabilityPersonPage.personExists(testData.name);
|
|
|
|
|
|
|
+ // 使用带重试机制的等待方法验证记录创建成功
|
|
|
|
|
+ const personExists = await disabilityPersonPage.waitForPersonExists(testData.name, { timeout: 15000 });
|
|
|
|
|
|
|
|
expect(personExists).toBe(true);
|
|
expect(personExists).toBe(true);
|
|
|
console.debug('✓ 含备注的残疾人创建成功');
|
|
console.debug('✓ 含备注的残疾人创建成功');
|
|
@@ -233,16 +223,12 @@ test.describe('残疾人管理 - 完整 CRUD 流程测试', () => {
|
|
|
await disabilityPersonPage.submitForm();
|
|
await disabilityPersonPage.submitForm();
|
|
|
await disabilityPersonPage.waitForDialogClosed();
|
|
await disabilityPersonPage.waitForDialogClosed();
|
|
|
|
|
|
|
|
- // 刷新并搜索
|
|
|
|
|
|
|
+ // 刷新并搜索(使用重试机制修复数据持久化问题)
|
|
|
await page.reload();
|
|
await page.reload();
|
|
|
await page.waitForLoadState('networkidle');
|
|
await page.waitForLoadState('networkidle');
|
|
|
await disabilityPersonPage.goto();
|
|
await disabilityPersonPage.goto();
|
|
|
- await disabilityPersonPage.searchByName(testData.name);
|
|
|
|
|
- // 增加等待时间以确保数据已持久化(修复稳定性问题)
|
|
|
|
|
- await page.waitForTimeout(3000);
|
|
|
|
|
|
|
|
|
|
- // 验证记录存在
|
|
|
|
|
- let personExists = await disabilityPersonPage.personExists(testData.name);
|
|
|
|
|
|
|
+ let personExists = await disabilityPersonPage.waitForPersonExists(testData.name, { timeout: 15000 });
|
|
|
expect(personExists).toBe(true);
|
|
expect(personExists).toBe(true);
|
|
|
console.debug('✓ 原始记录已创建');
|
|
console.debug('✓ 原始记录已创建');
|
|
|
|
|
|
|
@@ -311,8 +297,8 @@ test.describe('残疾人管理 - 完整 CRUD 流程测试', () => {
|
|
|
await page.waitForLoadState('networkidle', { timeout: 10000 });
|
|
await page.waitForLoadState('networkidle', { timeout: 10000 });
|
|
|
await page.waitForTimeout(2000);
|
|
await page.waitForTimeout(2000);
|
|
|
|
|
|
|
|
- // 5. 验证更新成功
|
|
|
|
|
- const stillExists = await disabilityPersonPage.personExists(testData.name);
|
|
|
|
|
|
|
+ // 5. 验证更新成功(使用重试机制修复数据持久化问题)
|
|
|
|
|
+ const stillExists = await disabilityPersonPage.waitForPersonExists(testData.name, { timeout: 10000 });
|
|
|
expect(stillExists).toBe(true);
|
|
expect(stillExists).toBe(true);
|
|
|
console.debug('✓ 编辑时添加备注成功');
|
|
console.debug('✓ 编辑时添加备注成功');
|
|
|
});
|
|
});
|
|
@@ -339,12 +325,8 @@ test.describe('残疾人管理 - 完整 CRUD 流程测试', () => {
|
|
|
const initialCount = await disabilityPersonPage.getListCount();
|
|
const initialCount = await disabilityPersonPage.getListCount();
|
|
|
console.debug('初始记录数:', initialCount);
|
|
console.debug('初始记录数:', initialCount);
|
|
|
|
|
|
|
|
- // 搜索并验证记录存在
|
|
|
|
|
- await disabilityPersonPage.searchByName(testData.name);
|
|
|
|
|
- // 增加等待时间以确保数据已持久化(修复稳定性问题)
|
|
|
|
|
- await page.waitForTimeout(3000);
|
|
|
|
|
-
|
|
|
|
|
- let personExists = await disabilityPersonPage.personExists(testData.name);
|
|
|
|
|
|
|
+ // 搜索并验证记录存在(使用重试机制修复数据持久化问题)
|
|
|
|
|
+ let personExists = await disabilityPersonPage.waitForPersonExists(testData.name, { timeout: 15000 });
|
|
|
expect(personExists).toBe(true);
|
|
expect(personExists).toBe(true);
|
|
|
console.debug('✓ 记录已创建,准备删除');
|
|
console.debug('✓ 记录已创建,准备删除');
|
|
|
|
|
|
|
@@ -360,13 +342,9 @@ test.describe('残疾人管理 - 完整 CRUD 流程测试', () => {
|
|
|
|
|
|
|
|
expect(finalCount).toBeLessThanOrEqual(initialCount);
|
|
expect(finalCount).toBeLessThanOrEqual(initialCount);
|
|
|
|
|
|
|
|
- // 5. 验证记录不再显示
|
|
|
|
|
- await disabilityPersonPage.searchByName(testData.name);
|
|
|
|
|
- // 增加等待时间以确保数据已持久化(修复稳定性问题)
|
|
|
|
|
- await page.waitForTimeout(3000);
|
|
|
|
|
-
|
|
|
|
|
- personExists = await disabilityPersonPage.personExists(testData.name);
|
|
|
|
|
- expect(personExists).toBe(false);
|
|
|
|
|
|
|
+ // 5. 验证记录不再显示(使用重试机制修复数据持久化问题)
|
|
|
|
|
+ personExists = await disabilityPersonPage.waitForPersonNotExists(testData.name, { timeout: 10000 });
|
|
|
|
|
+ expect(personExists).toBe(true); // 返回 true 表示确认已消失
|
|
|
console.debug('✓ 记录已成功删除,不再显示在列表中');
|
|
console.debug('✓ 记录已成功删除,不再显示在列表中');
|
|
|
});
|
|
});
|
|
|
|
|
|