发布于2021-05-29 22:50 阅读(782) 评论(0) 点赞(25) 收藏(0)
JMeter是Apache组织开发的基于Java的压力测试工具, 而且用Jmeter 来测试 Restful API, 非常好用。
JMeter官网:https://jmeter.apache.org/
2、解压缩文件
3、点进bin目录->jmeter.bat运行即可
注意把系统环境变量PATH中的jdk路径放到第一位,否者jmeter可能会运行失败!
代码资源我已经上传到CSDN了
代码免费下载地址:https://download.csdn.net/download/Kevinnsm/19098746?spm=1001.2014.3001.5503
此处我使用的是Eureka作为注册中心,eureka-server和eureka-server02是作为两个注册中心;product-service是服务提供模块,consumer-service是服务消费模块;(简单了说就是我们访问消费模块,消费模块远程调用服务提供模块返回给我们数据;至于那两个注册中心的作用就是:说白了就是把product-service和consumer-service放到注册中心 -----这叫服务注册)
那什么叫服务发现呢?
就是消费模块需要调用服务提供模块,而这个服务提供模块恰好又在注册中心,所以我们消费模块就可以直接从注册中心拉去数据;这就叫做服务发现!
扯远了,回归正题;哈!我不是在瞎扯淡
在服务提供模块,对第一个接口进行两秒暂停
我们消费模块的那两个接口是远程调用该服务提供模块的接口的,当我们访问消费模块时,由于消费模块要远程调用服务提供模块的这两个接口,对于第一个,由于暂停两秒,所以返回数据比较慢;对于第二个没有进行什么操作,所以就会比较块
访问消费模块的三个接口如下,同时对应服务提供模块的三个接口
@RestController
public class OrderController {
@Resource
private OrderService orderService;
@GetMapping(value ="/select/{id}")
public Order selectOrderById(@PathVariable("id") Integer id) {
return orderService.selectOrderById(id);
}
@GetMapping(value = "/query/{id}")
public Order queryOrderById(@PathVariable("id") Integer id) {
return orderService.queryOrderById(id);
}
@GetMapping(value = "/search/{id}")
public Order searchOrderById(@PathVariable("id") Integer id) {
return orderService.searchOrderById(id);
}
}
访问第一个接口(由于人为暂停两秒,所以用了2.11秒
访问第二个接口,由于没有干涉用了50ms
启动JMeter工具
注意把系统环境变量PATH中的jdk路径放到第一位,否者jmeter可能会运行失败!
1、右键测试计划->添加->线程->线程组
2、右键线程组->添加->取样器->HTTP请求
3、右键HTTP请求->添加->监听器->察看结果树
最后结果如下所示
启动测试
我在application.yml中配置了该服务最多只能使用10个线程,我们模拟了2500个请求,另外该接口的服务提供模块被我们暂停了两秒,所以会需要一段时间才能执行完毕;在这个过程中我们可以访问那个我们没有做过任何手脚的接口,发现竟然用了9.79秒
出现这个问题的原因是系统中几乎所有的资源都倾斜给了第一个接口测试,而当我们手动浏览器访问第二个接口时,没线程给我们处理,所以就一直在等。
而且你还会发现还有一部分请求失败的情况,果然高并发不是那么好玩的,我还是洗洗睡吧!
注意第一个接口测试时需要很久,可以手动关闭测试
溜了溜了!
作者:我长得真不赖
链接:http://www.javaheidong.com/blog/article/207612/dd54b7ccd1e884cd4a64/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!