【苍穹外卖】(截至day2)所使用到的IDEA使用技巧和测试流程
IDEA使用技巧
1.如何在IDEA中跳转到函数正确定义位置?
鼠标选中当前函数(如以下employeeService.login()函数),然后Ctrl+Alt+b(这里的'b'就是指键盘上的字母B键)/Alt+Enter(常用于代码补齐,看到报错时使用Alt+Enter可跳转到你要补齐的代码的相应位置)即可跳转到相应的java文件。若是按住Ctrl再点击,则会跳转到接口文件
正确跳转结果
跳转到实现文件
错误跳转结果
以下是按住Ctrl然后点击login函数而跳转到的结果,跳转到的是接口文件
2.TODO注释的使用说明
若有尚未完成或仍需改进的地方,可将该处注释打成//TODO ....这样开头的,IDEA中有个搜索功能,可直接搜索到以TODO开头的注释位置(左上角横着3点点击后即可看到TODO)
3.自动补齐已定义好的函数的返回值类型和变量名
例:我现在想引用page.getResult()方法,但又不想点开getRusult()的定义来查看它的返回值类型(这样太过麻烦),可在后面再加个.var,即在想定义代码的位置上打上page.getResult.var,一打完这个语句将会自动补齐:
点击Enter键接受即可
若自动补充的返回结果的变量名不是你想要的,点击Enter接受完后直接在上面修改即可
YApi的官网打不开?
可以去https://yapi.pro/试试,不行就用Apifox吧,好用
接口测试
测试前都要在IDEA的WebMvConfiguration.java文件中添加下图所示的相应语句,用来生成接口文档:
以下介绍3种测试方法:
1.通过Swagger测试文档,输入样例来测试
在IDEA启动好项目后,于浏览器网址输入框中输入:localhost:8080/doc.html(此为接口文档的网址),跳转到下图所示界面:
此处能看到这里相应的标题都是在刚刚IDEA中添加的语句中有设置的
点击相应的想要测试的地方,点击此处对应页面的【调试】:
填好参数后记得将IDEA中文件开始运行,待后端正式开启后再点击下面的“发送”:
点击“发送”后,出现相应的响应结果,从而看这个端口是否通过测试:
IDEA的运行终端也有相应输出(此处因为主包之前还发送了一次,所以图中是有两次的记录):
2.前后端联调(用于前端页面建立好的基础上)(此处以测试添加员工效果为例)
打开前端页面(网址:http://localhost:80),用初始账号登录,点击【员工管理】——右上角【添加员工】,以测试此时添加员工代码效果
输出相应信息,并点击【保存】,看到“添加成功”的弹窗显示,并可在IDEA终端输出中查看到插入的信息状况,对应数据库也有新增的这条信息成功添加
3.使用Apifox来写测试用例
具体写测试用例教程可见官方文档:https://docs.apifox.com/7227782m0
原理解析
1.因为当前设置了Jwt校验,对于/admin开头的请求都会进行token的验证(token具体验证流程见com.sky.interceptor.JwtTokenUserInterceptor文件)。运用前后端级联的测试方法可不用考虑这方面的问题,是因为前端有配置请求拦截器,可在发请求前自动插入令牌,具体实现以下流程:
- 登录成功后,前端会把后端返回的 token 保存在浏览器本地(localStorage);
- 后续每一次发起接口请求,拦截器都会自动从本地取出 token,加到请求头里,字段名和后端配置一致(管理端默认字段名为token);
- 请求到达后端时,请求头里已经带了合法令牌,自然能通过 JWT 校验,不会返回 401。
这个过程是前端框架自动完成的,在页面上操作时感知不到,但每次请求都会自动携带了令牌,从而使请求通过验证
2.而对于Apifox等外部工具,不会自动添加身份凭证。故当/admin/**的请求到达后端,进入后端的JwtTokenAdminInterceptor拦截器,负责校验请求中的令牌。从请求头里取不到 token,解析令牌直接抛出异常,拦截器设置 401 状态码并拦截请求。
3.解决方法:在使用Apifox等外部工具的测试数据时,添加当前token的请求头。
为什么帖主不用前后端级联这个更简单的方法呢?因为简历需要成果数据化,Apifox可以看到每个端口反映的具体时间,而前后端级联不行。
实际操作示例
下面以测试营业额统计接口为例
1.先调用管理端登录接口,拿到当前有效的token
点击右边三点,然后点击“测试数据”
设置你的测试数据的变量列名
此处我选择的是手动输入测试数据,也有批量导入和导出功能,但本人尚未尝试过。这里仅演示手动输入,然后点击右下角的保存。
将鼠标在该测试用例停留一会儿,会出现如下图所示的运行黑框,点击“运行”
(但其实通过表格的方式来配置测试数据,这里运行后是显示错误的,不知道问题出在哪里(。可以直接点击这个测试用例,然后直接在参数的地方输入测试数据(。帖主暂时还不知道问题在哪里,后续知道怎么解决了便会更新至该帖中)
查看返回的响应,得到当前有效的token
2.同理,在营业额统计接口处新建一个测试用例(仅起名一个标题即可),然后点击该测试用例,点击Headers,将参数名和参数值分别设置为token和刚刚获取到的token的具体值,然后记得保存。不然就会报401身份未认证报错
3.此时即可测试通过,访问到数据
额外
调整Jwt有效时长和相关密钥:application.yml
更具体详细的数据:application-dev.yml
一些注意事项
1.只有当IDEA上的SkyApplication.java在运行时,页面才能进行登录/退出/测试等一系列操作,不然页面没反应
【持续更新中】
