代码已经发开发完毕,对新增员工功能进行测试。
功能测试实现方式:
-
通过接口文档测试
-
通前后端联调测试
接下来我们使用上述两种方式分别测试。
1.3.1 接口文档测试
启动服务:访问http://localhost:8080/doc.html,进入新增员工接口
json数据:
{
"id": 0,
"idNumber": "111222333444555666",
"name": "xiaozhi",
"phone": "13812344321",
"sex": "1",
"username": "小智"
}
{
"id": 0,
"idNumber": "11122233334445555666",
"name": "张三",
"phone": "13812344321",
"sex": "1",
"username": "zhangsan"
}
响应码:401 报错
通过断点调试:进入到JwtTokenAdminInterceptor拦截器
/**
* 校验jwt
*
* @param request
* @param response
* @param handler
* @return
* @throws Exception
*/
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//判断当前拦截到的是Controller的方法还是其他资源
if (!(handler instanceof HandlerMethod)) {
//当前拦截到的不是动态方法,直接放行
return true;
}//1、从请求头中获取令牌 jwtProperties.getAdminTokenName()获取为token
String token = request.getHeader(jwtProperties.getAdminTokenName());//2、校验令牌
try {
log.info("jwt校验:{}", token);
Claims claims = JwtUtil.parseJWT(jwtProperties.getAdminSecretKey(), token);
Long empId = Long.valueOf(claims.get(JwtClaimsConstant.EMP_ID).toString());
log.info("当前员工id:", empId);
//3、通过,放行
return true;
} catch (Exception ex) {
//4、不通过,响应401状态码
response.setStatus(401);
return false;
}
}
JWT令牌是空的 所以会抛出异常
报错原因:由于JWT令牌校验失败,导致EmployeeController的save方法没有被调用
解决方法:调用员工登录接口获得一个合法的JWT令牌
使用admin用户登录获取令牌
添加令牌:
将合法的JWT令牌添加到全局参数中
文档管理-->全局参数设置-->添加参数
接口测试:
其中,请求头部含有JWT令牌
查看employee表:
拿到前端传递过来的数据后 进入到employeeService.save(employeeDTO);
new了一个对象 这里面的属性都是空的
接下来将employeeDTO的属性烤到employee里面
现在employee实体对象都有值了 然后在调用insert()方法
employeeMapper.insert(employee);
把数据插入到数据库
==> Preparing: insert into employee (name, username, password, phone, sex, id_number, create_time, update_time, create_user, update_user,status) values (?,?,?,?,?,?,?,?,?,?,?)
2024-05-19 00:48:07.394 DEBUG 12012 --- [nio-8080-exec-3] com.sky.mapper.EmployeeMapper.insert : ==> Parameters: 张三(String), zhangsan(String), e10adc3949ba59abbe56e057f20f883e(String), 13812344321(String), 1(String), 111222333344455(String), 2024-05-19T00:47:53.888553200(LocalDateTime), 2024-05-19T00:47:55.514672500(LocalDateTime), 10(Long), 10(Long), 1(Integer)
2024-05-19 00:48:07.427 DEBUG 12012 --- [nio-8080-exec-3] com.sky.mapper.EmployeeMapper.insert : <== Updates: 1
测试成功。
1.3.2 前后端联调测试
启动nginx,访问 http://localhost
登录-->员工管理-->添加员工
保存后,查看employee表
测试成功。
注意:由于开发阶段前端和后端是并行开发的,后端完成某个功能后,此时前端对应的功能可能还没有开发完成, 导致无法进行前后端联调测试。所以在开发阶段,后端测试主要以接口文档测试为主。