ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

干货分享 JVM 之第 4 篇 —— 掌握 Jmeter 压力测试工具,熟悉 Jconsole.exe 工具

2021-06-19 13:33:42  阅读:165  来源: 互联网

标签:Java 请求 启动 响应 线程 Jconsole 测试工具 Jmeter


查看之前的博客可以点击顶部的【分类专栏】

 

Jmeter 测试工具

1、下载 Jmeter 压力测试工具,70M左右

官网地址:https://jmeter.apache.org/

 

2、配置 Jmeter 环境

Jmeter 是 Java 语言开发的,因此需要配置 Java 环境。增加 JMETER_HOME   值就是解压的路径。

 

然后配置 classpath 变量。在 classpath 配置里追加以下这句话:注意使用英文分号 ; 与之前的配置信息间隔

%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar; %JMETER_HOME%\lib\jorphan.jar

最后,在 path 路径追加:%JMETER_HOME%\bin

 

然后,使用管理员权限的 CMD 命令行测试。 jmeter -v

不知道怎么使用管理员权限的 CMD 命令行?查看博客:https://blog.csdn.net/BiandanLoveyou/article/details/116076060

安装成功效果图:

 

3、启动 jmeter.bat。启动的时候先是弹出 cmd 的命令框,不要关闭,10秒后就能启动 Jmeter 客户端了。

 

可以创建到桌面快捷方式。

4、设置简体中文。Options-》Choose Language 

 

5、开始压力测试

后台一段代码:端口号 8080

package com.study.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author biandan
 * @description
 * @signature 让天下没有难写的代码
 * @create 2021-06-19 上午 12:02
 */
@RestController
public class MyTestController {

    private Integer count = 0;

    @GetMapping("/index")
    public String index() {
        count++;
        System.out.println("count = " + count);
        return "success";
    }
}

测试计划:一次测试计划相当于一次压力测试,一个测试计划里面可能有多个线程组(测试用例)

属性介绍

线程组:就是测试用例,一个线程组可能有多个http请求

线程数:相当于并发用户数,一个线程相当于一个虚拟用户。

Ramp-Up时间:线程启动开始运行的时间间隔,单位秒。即所有线程在多长时间内全部启动完成。例如线程数输入200,Ramp-Up 输入5,意思是5秒内启动完200个线程,每秒则启动40个。

循环次数:执行次数。(勾选永远就是一直执行下去)

调度器:勾选调度器后

持续时间:持续时间,测试计划持续多长时间。

启动延迟:启动延时。点击启动按钮后,仅初始化场景,不运行线程,等待延时时间到才运行。

添加协议及相关配置信息

 

配置测试的参数:1秒内发送10000个请求:

增加 http 请求:对着线程组鼠标右键,添加,取样器,HTTP 请求。

 

输入 URL 信息完毕,点击绿色的 启动 。

后台的控制台输出

 

6、测试报告

HTTP 请求鼠标右键,添加,监听器。这里可以有很多你想要的报告,都可以看看。

 

比如:查看聚合报告。

 

查看结果树:可以看到某一次请求的【请求】和【响应】数据。

查看图形结果:

 

OK,JMeter 工具就算是会用了哦。

 

理解 JMeter 聚合报告(Aggregate Report)

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间
Median:中位数,也就是 50% 用户的响应时间
90% Line:90% 用户的响应时间

Min:最小响应时间
Max:最大响应时间
Error%:本次测试中出现错误的请求的数量/请求的总数
Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

 

 

什么是吞吐量?

QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。

 

JConsole.exe 工具

JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码。

如果是从命令行启动,使 JDK 在 PATH 上,运行 jconsole 即可。

如果从 GUI shell 启动,找到 JDK 安装路径,打开 bin 文件夹,双击 jconsole.exe

我们双击打开,会默认识别到我们本地正在运行的 Java 应用程序,如图:

然后双击我们的应用程序,就能进入详情页。

可以查看:堆内存、线程数、加载的类数量、VM等参数。

 

 

 

 

 

 

标签:Java,请求,启动,响应,线程,Jconsole,测试工具,Jmeter
来源: https://blog.csdn.net/BiandanLoveyou/article/details/118035017

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有