be1c587dbf
- 修复密码哈希格式问题(从$2a$改为$2b$) - 更新所有测试用例密码从Test@123改为admin123 - 修改测试2.3、2.5、2.6,避免操作admin用户(第1行) - 在beforeEach中添加页面初始化,避免localStorage访问错误 - 添加测试数据清理机制
64 lines
2.3 KiB
TypeScript
64 lines
2.3 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
|
|
test.describe('登录表单验证测试', () => {
|
|
test('验证fill方法是否触发Vue响应式更新', async ({ page }) => {
|
|
await page.goto('/login');
|
|
await page.waitForLoadState('networkidle');
|
|
|
|
// 使用fill方法填充
|
|
await page.locator('input[placeholder="请输入用户名"]').fill('admin');
|
|
await page.locator('input[placeholder="请输入密码"]').fill('admin123');
|
|
|
|
// 检查input元素的值
|
|
const usernameValue = await page.locator('input[placeholder="请输入用户名"]').inputValue();
|
|
const passwordValue = await page.locator('input[placeholder="请输入密码"]').inputValue();
|
|
|
|
console.log('Username input value:', usernameValue);
|
|
console.log('Password input value:', passwordValue);
|
|
|
|
// 检查Vue组件的状态
|
|
const formState = await page.evaluate(() => {
|
|
const app = document.querySelector('#app');
|
|
return app?.__vue_app__?.config?.globalProperties?.$data;
|
|
});
|
|
|
|
console.log('Vue formState:', formState);
|
|
|
|
// 尝试获取localStorage中的值(登录前应该为空)
|
|
const tokenBefore = await page.evaluate(() => localStorage.getItem('token'));
|
|
console.log('Token before login:', tokenBefore);
|
|
|
|
// 点击登录按钮
|
|
await page.locator('button:has-text("登录")').click();
|
|
|
|
// 等待API响应
|
|
const response = await page.waitForResponse(response =>
|
|
response.url().includes('/api/auth/login') && response.request().method() === 'POST',
|
|
{ timeout: 10000 }
|
|
).catch(e => {
|
|
console.log('No API response received:', e);
|
|
return null;
|
|
});
|
|
|
|
if (response) {
|
|
console.log('API response status:', response.status());
|
|
const responseBody = await response.text();
|
|
console.log('API response body:', responseBody.substring(0, 200));
|
|
}
|
|
|
|
// 等待一段时间
|
|
await page.waitForTimeout(3000);
|
|
|
|
// 检查localStorage中的token
|
|
const tokenAfter = await page.evaluate(() => localStorage.getItem('token'));
|
|
console.log('Token after login:', tokenAfter ? 'exists' : 'not found');
|
|
|
|
// 检查当前URL
|
|
const currentUrl = page.url();
|
|
console.log('Current URL:', currentUrl);
|
|
|
|
// 截图
|
|
await page.screenshot({ path: 'test-results/form-test.png', fullPage: true });
|
|
});
|
|
});
|