点击关注公众号,Java干货及时送达
前言
在后端SpringBoo开发中,都需要一个接口测试工具,从一开始的postman,到现在的国产测试工具,数不胜数,而最方便的莫过于在IDEA中就可以调试,因为IDEA插件中有能力分析出当前项目所编写的Controller数据,可以进行统计,更方便我们发起http请求,不需要复制url到别的测试工具了,今天就推荐一款,名叫Cool Request,他纯免费、开源。
插件名称:Cool Request
Github:
https://github.com/houxinlin/cool-request
文档链接:plugin.houxinlin.com
作用:简化SpringBoot后端接口调试流程。
安装方式:IDEA 插件商店中搜索Cool Request
在五月份,Cool Request做了大量优化,无论是从界面体验,还是脚本的编写。
让我们看一下最新的效果图
有人可能说,不就是一个HTTP插件嘛,No No No,英雄请留步,容我介绍一下你从未见过的功能,此功能在很大程度上会提升调试的便捷性。
功能介绍
为了减少阅读时间,我把核心亮点功能介绍放在首位。
方法耗时统计
这也是同类插件中唯一有的功能,并且所有功能均免费。
Trace可以统计除了java包的任意包,为什么不能统计java的?因为可能会出现不稳定的情况,再说,java包怎么可能有问题,有问题的也是你的代码(手动狗头)。
Trace如果在启用状态下,将在你发起请求的时候,自动从Controller方法下开始跟踪,如果深度为1,那么则只跟踪Controller方法,如果深度为2,则跟踪Controller下所有方法,深度为3,那就跟踪Controller下所有方法下的所有方法,以此类推,但是会出现你设置了一个很大的值,却跟踪不到这个深度,这是因为有些是通过接口(interface)调用的,静态代码分析无法分析到是哪个实现类,所以没办法继续向下跟踪,可以右击任意方法,手动添加方法跟踪。
另外,其中左侧的+100,这些代表在这个方法下,此方法调用了100次,但目前无法统计每个方法的耗时。
如果想高亮5ms以上的方法,可以在设置中,设置5ms,那么超过5ms的将处于红色状态,非常方便。
绕过拦截器、过滤器
首先这都是在开发的时候,在使用了Cool Request之后可以绕过,其他情况不可,不要想歪了哦。
在介绍这个前,先说一下使用场景。在具有登录认证的接口中,我们首先要通过登录接口拿到token,之后每个请求都会携带这个token,用于认证,而在一些情况下,这些接口其实不需要用户信息去查表,但是这类接口依然需要登录后才可以调用,那如果这个token过期,你是不是又要重新登录?
在用了Cool Request就不用了,他可以直接发起一个请求,从而绕过拦截器、过滤器,让请求直接到达Controller方法,十分的方便。
使用也非常简单,直接选择reflex即可
手动触发定时任务、xxljob
如果定时任务很长,并且你想触发一次,比如是一些清理任务,你要怎么做?肯定不能等待他触发吧。
没错Cool Request可以一键触发xxl-job,并且支持参数传递,还有Spring内置的调度器注解。
java前后置脚本
这是对java开发者最大的方便,也是目前所有idea同类型插件中,唯一支持java前后置脚本的工具。
在最新版本中,引来史诗级的加强,他可以做到几乎任意的功能,比如你可以在脚本中创建一个窗口(JFrame)也是可以的,比如调用第三库,或者是SpringBoot内置的工具类,在目前的反馈中,还没有遇到完不成的事情。
我们来看一个小例子,这个是用来将http响应结果中的data字段(token),提取到当前环境中的全局请求头中,是不是非常简单。
public void handlerResponse(ILog log, HTTPResponse response,IEnv env) {
env.getCurrentEnv().setEnvHeader("Authorization",response.getIfJSONBody().getKey("data").toString());
}
或者可以使用fastjson或者其他json解析库,解析结果。
public void handlerResponse(ILog log, HTTPResponse response,IEnv env) {
String body =new String(response.getResponseBody());
log.println(body);
User user = JSON.parseObject(body, User.class);
log.println(user.getAge()+"");
}
在代码编辑区调试
如果嫌调试界面空间小,可以右击api,选择Open in a new tab
,在新标签中打开,新标签中的参数也是上次请求时候的所设置的。
导出到第三方
目前接入了apifox、apipost,可以一键导出到他们,同时也支持导出为openapi。
多icon
为了满足不同用户的喜好,在icon的设计上,我们提供了两种,可以看下图,并且也提供了中/英文切换
响应预览
目前支持5种格式预览,分别是json、text、image、html、xml,在成功响应后,会自动推测出响应的格式,并自动解析。
来源:juejin.cn/post/7365764222838243366