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


一、JMeter介绍

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

在这里插入图片描述

二、JMeter下载安装

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秒
在这里插入图片描述

出现这个问题的原因是系统中几乎所有的资源都倾斜给了第一个接口测试,而当我们手动浏览器访问第二个接口时,没线程给我们处理,所以就一直在等。
在这里插入图片描述
而且你还会发现还有一部分请求失败的情况,果然高并发不是那么好玩的,我还是洗洗睡吧!
在这里插入图片描述


结束!

注意第一个接口测试时需要很久,可以手动关闭测试
在这里插入图片描述

溜了溜了!
在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Thecoastlines

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值