0
点赞
收藏
分享

微信扫一扫

零基础带你入门JMeter-模拟高并发接口测试,小白教程!


文章目录

  • ​​一、JMeter介绍​​
  • ​​二、JMeter下载安装​​
  • ​​三、准备工作​​
  • ​​四、测试代码​​
  • ​​五、模拟高并发​​
  • ​​结束!​​

一、JMeter介绍

JMeter是Apache组织开发的基于Java的压力测试工具, 而且用Jmeter 来测试 Restful API, 非常好用。

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_远程调用

二、JMeter下载安装

JMeter官网:​​https://jmeter.apache.org/​​

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_数据_02


零基础带你入门JMeter-模拟高并发接口测试,小白教程!_数据_03


2、解压缩文件

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_右键_04


3、点进bin目录->jmeter.bat运行即可

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_远程调用_05


注意把系统环境变量PATH中的jdk路径放到第一位,否者jmeter可能会运行失败!

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_远程调用_06

三、准备工作

代码资源我已经上传到了

代码免费下载地址:

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_远程调用_07


此处我使用的是Eureka作为注册中心,eureka-server和eureka-server02是作为两个注册中心;product-service是服务提供模块,consumer-service是服务消费模块;(简单了说就是我们访问消费模块,消费模块远程调用服务提供模块返回给我们数据;至于那两个注册中心的作用就是:说白了就是把product-service和consumer-service放到注册中心 -----这叫服务注册)

那什么叫服务发现呢?
就是消费模块需要调用服务提供模块,而这个服务提供模块恰好又在注册中心,所以我们消费模块就可以直接从注册中心拉去数据;这就叫做服务发现!

扯远了,回归正题;哈!我不是在瞎扯淡

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_右键_08

四、测试代码

在服务提供模块,对第一个接口进行两秒暂停

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_右键_09

我们消费模块的那两个接口是远程调用该服务提供模块的接口的,当我们访问消费模块时,由于消费模块要远程调用服务提供模块的这两个接口,对于第一个,由于暂停两秒,所以返回数据比较慢;对于第二个没有进行什么操作,所以就会比较块

访问消费模块的三个接口如下,同时对应服务提供模块的三个接口

@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秒

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_java_10


访问第二个接口,由于没有干涉用了50ms

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_java_11

五、模拟高并发

启动JMeter工具

注意把系统环境变量PATH中的jdk路径放到第一位,否者jmeter可能会运行失败!

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_远程调用_06

1、右键测试计划->添加->线程->线程组
2、右键线程组->添加->取样器->HTTP请求
3、右键HTTP请求->添加->监听器->察看结果树

最后结果如下所示

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_远程调用_13


零基础带你入门JMeter-模拟高并发接口测试,小白教程!_数据_14

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_右键_15

启动测试

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_右键_16


我在application.yml中配置了该服务最多只能使用10个线程,我们模拟了2500个请求,另外该接口的服务提供模块被我们暂停了两秒,所以会需要一段时间才能执行完毕;在这个过程中我们可以访问那个我们没有做过任何手脚的接口,发现竟然用了9.79秒

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_右键_17

出现这个问题的原因是系统中几乎所有的资源都倾斜给了第一个接口测试,而当我们手动浏览器访问第二个接口时,没线程给我们处理,所以就一直在等。

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_java_18


而且你还会发现还有一部分请求失败的情况,果然高并发不是那么好玩的,我还是洗洗睡吧!

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_java_19

结束!

注意第一个接口测试时需要很久,可以手动关闭测试

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_java_20

溜了溜了!

零基础带你入门JMeter-模拟高并发接口测试,小白教程!_java_21


举报

相关推荐

0 条评论