热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jmeter使用_压测工具JMeter的使用

最近接了压测的需求,顺带熟悉下压测工具的使用。这里推荐JMeter,安装快捷、请求方便,省了一大堆麻烦的事情。ApacheJMeter是A
323ed09137b13bbb009e98fc82d18777.png

最近接了压测的需求,顺带熟悉下压测工具的使用。这里推荐JMeter,安装快捷、请求方便,省了一大堆麻烦的事情。

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。参考:https://baike.baidu.com/item/Jmeter

安装

Jmeter是基于Java的压测工具,所以Java是必不可少的,环境需要配置好Java。

下载路径:https://www.oracle.com/java/technologies/javase-jdk14-downloads.html

从中挑一个适合自己的机器的JDK,下载安装好后,将对应的环境变量配置到自己的bash文件下。需要配置的环境变量分别为:

JAVA_HOME:你的路径/jdk1.8.0_251
JRE_HOME=${JAVA_HOME}/jre
CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JRE_HOME}/lib/tools.jar
PATH=${JAVA_HOME}/bin:$PATH

安装好,从https://jmeter.apache.org/上下载最新的Jmeter,解压后可以直接进入apache-jmeter-5.3/bin/下,运行:sh jmeter.sh -v查看是否可以使用。在mac上正常运行应该会出现这个界面,如果是linux上,就没有界面了。

ac6d57c7472b080674d81c9f964ea68b.png

使用

接下来讲讲,如何在启动的Jmeter里,压测要压测的服务。这里一压测一个SQL服务为例:

点击添加线程组:

9cebfa7cd50473d911e32d28fb081083.png

添加配置,在线程组界面,有三个参数要注意:

  • 线程数:并发的请求数量;
  • Ramp-Up时间:在多长时间内完成配置的线程数启动,比如上面线程数配了10,这里时间设置10秒,意味着启动压测后,会在10秒内完成10个线程的启动;
  • 循环次数:再以上面的例子举例,配置的参数组会循环多少次,我这里配置了20,上述的操作会循环20次;
4c43abea96636dd682c2436108590e15.png

然后是JDBC Connection Configration的配置,把对应的仓库链接配置填进去,其他的最大连接数,等待时间等配置按自己需要填写;

8389e434b773e61ea5d59ae6cd511cb1.png

JDB request 的配置,可以自行填写sql作为压测请求,也可以引用外部文件,这里我配置了一个变量名为“sql”的外部引用文件来作为压测的请求数据。变量名可以随意,其中编码、分隔符、循环方式可以按需配置;

04970c52b198373e71b7c79d2e6c1579.png
9e8b5329b0e6d2d818746aa7586e09ef.png

还需要配置结果树和聚合根报告来查看结果,在这两个选项卡中,可以设置报告导出的路径。这两个选项会提高Jmeter的性能消耗,酌情选取。

129f7531804f41971d4d870c447cd47d.png

最后配置好后,可以点击上方的play按钮,运行压测。

f222eb39d32488fabbde46eb114d242a.png

同时,配置好的线程组可以导出到linux里,使用linux的Jmeter进行压测,Mac和linux之间的配置文件是通用的。



推荐阅读
  • 本文详细介绍了Socket在Linux内核中的实现机制,包括基本的Socket结构、协议操作集以及不同协议下的具体实现。通过这些内容,读者可以更好地理解Socket的工作原理。 ... [详细]
  • 使用 ModelAttribute 实现页面数据自动填充
    本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • 本文介绍了如何通过安装和配置php_uploadprogress扩展来实现文件上传时的进度条显示功能。通过一个简单的示例,详细解释了从安装扩展到编写具体代码的全过程。 ... [详细]
  • 优雅地记录API调用时长
    本文旨在探讨如何高效且优雅地记录API接口的调用时长,通过实际案例和代码示例,帮助开发者理解并实施这一技术,提高系统的可观测性和调试效率。 ... [详细]
  • 详解MyBatis二级缓存的启用与配置
    本文深入探讨了MyBatis二级缓存的启用方法及其配置细节,通过具体的代码实例进行说明,有助于开发者更好地理解和应用这一特性,提升应用程序的性能。 ... [详细]
  • 本文介绍了两个重要的Node.js库——cache-content-type和mime-types,它们在处理HTTP响应头时非常有用。cache-content-type是基于mime-types构建的,并且实现了缓存机制以提高性能。 ... [详细]
  • 本文详细解析 Skynet 的启动流程,包括配置文件的读取、环境变量的设置、主要线程的启动(如 timer、socket、monitor 和 worker 线程),以及消息队列的实现机制。 ... [详细]
  • 本文探讨了在使用Apache HttpClient 4.x(作为commons-httpclient 3.x的后续版本)时,如何配置默认的HttpContext,以确保每次执行请求时无需显式传递上下文。 ... [详细]
  • 华为云openEuler环境下的Web应用部署实践
    本文详细记录了在华为云openEuler系统上进行Web应用部署的具体步骤,包括配置yum源、安装Apache、MariaDB、PHP及其相关组件,并完成WordPress的安装与配置过程。 ... [详细]
  • 来自FallDream的博客,未经允许,请勿转载,谢谢。一天一套noi简直了.昨天勉强做完了noi2011今天教练又丢出来一套noi ... [详细]
  • 探讨多种方法来确定Java对象的实际类型,包括使用instanceof关键字、getClass()方法等。 ... [详细]
  • 本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ... [详细]
  • CSS模块化命名 ... [详细]
  • 本文详细介绍了跨站脚本攻击(XSS)的基本概念、工作原理,并通过实际案例演示如何构建XSS漏洞的测试环境,以及探讨了XSS攻击的不同形式和防御策略。 ... [详细]
author-avatar
书友51676198
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有