employee.spec.ts
6.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
import { test, expect } from '@playwright/test';
import * as allure from 'allure-js-commons';
import { EmployeePage } from '../pages/employeePage';
import { generateCustomerName, generatePhoneNumber } from '../utils/dataGenerator';
/**
* 员工管理测试
*/
test.describe('员工管理', () => {
// 使用已保存的认证状态
test.use({ storageState: 'auth.json' });
// 强制测试串行执行
test.describe.configure({ mode: 'serial' });
/**
* 生成随机员工姓名(使用已有函数)
*/
function generateEmployeeName(): string {
return generateCustomerName();
}
/**
* 生成随机联系电话(使用已有函数)
*/
function generatePhone(): string {
return generatePhoneNumber();
}
/**
* 生成包含"自动化"的备注
*/
function generateRemark(): string {
const timestamp = Date.now().toString().slice(-6);
return `自动化员工测试备注${timestamp}`;
}
test('新增员工', async ({ page }, testInfo) => {
const employeePage = new EmployeePage(page);
// 添加allure元素
await allure.epic('员工管理');
await allure.feature('员工信息');
await allure.story('新增员工');
// 生成随机员工数据
const employeeName = generateEmployeeName();
const phone = generatePhone();
const remark = generateRemark();
console.log('员工姓名:', employeeName);
console.log('联系电话:', phone);
console.log('备注:', remark);
// 步骤1:进入员工管理页面
await allure.step('进入员工管理页面', async () => {
await employeePage.openEmployeeManagement();
});
// 步骤2:点击新建员工按钮
await allure.step('点击新建员工按钮', async () => {
await employeePage.clickNewEmployee();
});
// 步骤3:点击手动添加
await allure.step('点击手动添加', async () => {
await employeePage.clickManualAdd();
});
// 步骤4:填写员工表单
await allure.step('填写员工表单', async () => {
await employeePage.fillEmployeeName(employeeName);
await employeePage.fillPhone(phone);
await employeePage.fillRemark(remark);
await employeePage.selectPosition(); // 不传参数,随机选择岗位
});
// 步骤5:保存员工
await allure.step('保存员工', async () => {
await employeePage.clickConfirm();
});
// 步骤6:验证员工创建成功
await allure.step('验证员工创建成功', async () => {
// 使用员工姓名搜索
await employeePage.searchEmployee(employeeName);
const isExists = await employeePage.verifyEmployeeExists(employeeName);
expect(isExists).toBeTruthy();
});
});
test('修改员工', async ({ page }, testInfo) => {
const employeePage = new EmployeePage(page);
// 添加allure元素
await allure.epic('员工管理');
await allure.feature('员工信息');
await allure.story('修改员工');
// 先生成一个新员工用于修改测试
const employeeName = generateEmployeeName();
const phone = generatePhone();
const originalRemark = '新建员工备注';
console.log('待修改员工姓名:', employeeName);
console.log('联系电话:', phone);
// 步骤1:新增员工
await allure.step('新增员工', async () => {
await employeePage.openEmployeeManagement();
await employeePage.clickNewEmployee();
await employeePage.clickManualAdd();
await employeePage.fillEmployeeName(employeeName);
await employeePage.fillPhone(phone);
await employeePage.fillRemark(originalRemark);
await employeePage.selectPosition();
await employeePage.clickConfirm();
});
// 步骤2:搜索员工
await allure.step('搜索员工', async () => {
await employeePage.searchEmployee(employeeName);
await employeePage.verifyEmployeeExists(employeeName);
});
// 步骤3:点击修改按钮
await allure.step('点击修改按钮', async () => {
await employeePage.clickEditButton();
});
// 步骤4:填写修改信息(姓名和电话不允许修改,只修改备注、状态、岗位)
await allure.step('填写修改信息', async () => {
const newRemark = '修改后的备注';
await employeePage.fillRemarkForEdit(newRemark);
await employeePage.clickStatusSwitch();
await employeePage.selectPositionForEdit('采购员');
});
// 步骤5:保存修改
await allure.step('保存修改', async () => {
await employeePage.clickConfirm();
await employeePage.page.waitForTimeout(1000);
});
// 步骤6:验证修改成功 - 搜索员工并检查备注是否包含"修改"
await allure.step('验证修改成功', async () => {
await employeePage.searchEmployee(employeeName);
const isSuccess = await employeePage.verifyEmployeeRemarkContains('修改');
expect(isSuccess).toBeTruthy();
});
});
test('解绑员工', async ({ page }, testInfo) => {
const employeePage = new EmployeePage(page);
// 添加allure元素
await allure.epic('员工管理');
await allure.feature('员工信息');
await allure.story('解绑员工');
// 先生成一个新员工用于解绑测试
const employeeName = generateEmployeeName();
const phone = generatePhone();
const originalRemark = '解绑测试备注';
console.log('待解绑员工姓名:', employeeName);
console.log('联系电话:', phone);
// 步骤1:新增员工
await allure.step('新增员工', async () => {
await employeePage.openEmployeeManagement();
await employeePage.clickNewEmployee();
await employeePage.clickManualAdd();
await employeePage.fillEmployeeName(employeeName);
await employeePage.fillPhone(phone);
await employeePage.fillRemark(originalRemark);
await employeePage.selectPosition();
await employeePage.clickConfirm();
});
// 步骤2:搜索员工
await allure.step('搜索员工', async () => {
await employeePage.searchEmployee(employeeName);
await employeePage.verifyEmployeeExists(employeeName);
});
// 步骤3:点击解绑按钮
await allure.step('点击解绑按钮', async () => {
await employeePage.clickUnbindButton();
});
// 步骤4:确认解绑
await allure.step('确认解绑', async () => {
await employeePage.confirmUnbind();
});
// 步骤5:验证解绑成功 - 页面不再显示该员工
await allure.step('验证解绑成功', async () => {
const isNotExists = await employeePage.verifyEmployeeNotExists(employeeName);
expect(isNotExists).toBeTruthy();
});
});
});