前言
没错,又是Cool Request插件,这次引来一个重大更新,可以统计任意方法耗时,先上个图。
![f00b5bd55b6c26c3676d4519c41426da.jpeg](https://img-blog.csdnimg.cn/img_convert/f00b5bd55b6c26c3676d4519c41426da.jpeg)
另外,这是此次更新的功能。
![cea028bd20994c1ca546644ef9c34e13.jpeg](https://img-blog.csdnimg.cn/img_convert/cea028bd20994c1ca546644ef9c34e13.jpeg)
什么是Cool Request
Cool Request是一个IDEA中的接口调试插件,除了可以发起基本的HTTP请求之外,还提供了强大的反射调用能力,可以绕过拦截器,这点广受网友的好评,当然伴随着还有Spring中对@Scheduled
注解的调用,以及xxl-job
的支持,这是不是很酷(Cool)?
什么是Trace
我怀着一颗激动的心向大家介绍这个Trace功能。
Trace可以统计除了java包的任意包,为什么不能统计java的?因为可能会出现不稳定的情况,再说,java包怎么可能有问题,有问题的也是你的代码(手动狗头)。
Trace如果在启用状态下,将在你发起请求的时候,自动从Controller方法下开始跟踪,如果深度为1,那么则只跟踪Controller方法,如果深度为2,则跟踪Controller下所有方法,深度为3,那就跟踪Controller下所有方法下的所有方法,以此类推,但是会出现你设置了一个很大的值,却跟踪不到这个深度,因为有些是通过接口(interface)调用的,静态代码分析无法分析到是哪个实现类,所以没办法继续向下跟踪,可以右击任意方法,手动添加方法跟踪。
自动跟踪Mybatis函数
Trace可以选择性的跟踪Mybatis的执行函数,这个函数是最终执行sql语句的函数,如下图,可以很方便的看到这个查询执行了7ms。
![3d9702f7576ab2d69917e53d24ef3097.jpeg](https://img-blog.csdnimg.cn/img_convert/3d9702f7576ab2d69917e53d24ef3097.jpeg)
如果你对源码有了解,可以添加任意方法。
显示调用次数
另外,其中左侧的+100,这些代表在这个方法下,此方法调用了100次,但目前无法统计每个方法的耗时。
![feea928fba23fa2be900260f02f6a3b2.jpeg](https://img-blog.csdnimg.cn/img_convert/feea928fba23fa2be900260f02f6a3b2.jpeg)
自定义耗时颜色
如果想高亮5ms以上的方法,可以在设置中,设置5ms,那么超过5ms的将处于红色状态,非常方便。
![28a3bff46d522394934fa91ea037afa7.jpeg](https://img-blog.csdnimg.cn/img_convert/28a3bff46d522394934fa91ea037afa7.jpeg)
脚本中操作环境
想象一下场景,你的所有操作都需要登录(如果实现下没有用到用户信息,可以选择反射调用,绕过拦截器),请求头中都需要填写token,而这个token是其他接口获取的,那么你可以在这个接口下写一个脚本,获取到token,然后对环境变量进行操作,设置一个header,非常的方便
![9794bb87b80a4e052a08bf1c250b98a6.jpeg](https://img-blog.csdnimg.cn/img_convert/9794bb87b80a4e052a08bf1c250b98a6.jpeg)
另外响应中,大部分是通过json格式,那么怎么在响应脚本中解析json?
使用Cool Request那可比其他插件方便太多了。
Cool Request支持调用你项目中任意的类,包括第三方的!,Gson有吧,Fastjson有吧,如果没有,SpringBoot默认引入的ObjectMapper
总该有吧,都可以调用,下面是一个例子。
不需要你学习其他语言,就用Java !下面都能看懂吧,就不需要多解释了。
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()+"");
}
来源:juejin.cn/post/7351300787649134611