如何使用jmeter进行系统压力测试?

这篇具有很好参考价值的文章主要介绍了如何使用jmeter进行系统压力测试?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.1 常用组件以及参数介绍

1.1.1 基本软件

需准备一下工具

压测工具: jmeter-2.13

服务器性能监控:jmeter插件 ServerAgent-2.2.1

压测时,直接使用jmeter模拟终端发起交易,jmeter可统计交易并发;ServerAgent在服务器启动agent,开放4444端口,jmeter通过agent获取相关的服务器性能数据,包括CPU,内存,网络IO,磁盘IO等。另外,常用的组件可能还需要额外下载,比如阶梯压测jar包JMeterPlugins-Standard.jar,tps监控jar包cmdrunner-2.3.jar,jmeter-plugins-cmn-jmeter-0.7.jar,json-lib-2.4-jdk15.jar等。下载完成后需要放置到jemeter安装目录/lib下才可以生效。

1.1.2 基本线程组

基本线程组是压测的基本单元的集合,一个线程组可以下放多个组件,见下图

jmeter怎么进行压力测试,jmeter,压力测试

基本线程组只允许进行定量线程压测,其中:

  • 线程数:表示线程组在运行之后线程最终开启的数量,也可以理解为同时多少个用户并发发起交易。

  • Ramp-up时间(秒):表示经历多长时间拉起所有线程。如果配置0,那么表示在压测开始后瞬间启动所有线程,通常不建议配置0,因为如果配置的线程数很大且时间配置0的话,对系统冲击较大,建议配置几秒的缓冲时间。

  • 循环次数:表示在每个线程交易发送的次数。如果线程数配置20,循环次数配置2。那么表示总发送交易量为20*2=40。

  • 永远:勾选该选项,表示交易不停止,一直循环发送。

  • 持续时间(秒):表示交易发送持续的时间,到点停止。

1.1.3 阶梯压测线程组

阶梯压测线程组,可以自动化的持续加压,适合压测出当前系统可以承载的最大并发,以及最高tps,配置选项见下图:

jmeter怎么进行压力测试,jmeter,压力测试

  • this group will start:表示总共要启动的线程数;若设置为 100,表示总共会加载到 100 个线程

  • first,wait for:从运行之后多长时间开始启动线程;若设置为 0 秒,表示运行之后立即启动线程

  • then start:初次启动多少个线程;若设置为 0 个,表示初次不启动线程

  • next add:之后每次启动多少个线程;若设置为 10个,表示每个梯次启动 10 个线程

  • threads every:当前运行多长时间后再次启动线程,即每一次线程启动完成之后的持续时间;若设置为 30 秒,每梯次启动完线程之后再运行 30 秒

  • using ramp-up:启动线程的时间;若设置为 5 秒,表示每次启动线程都持续 5 秒(和基础线程组的ramp-up一样意思)

  • then hold load for:线程全部启动完之后持续运行多长时间,如果设置为 60 秒,表示 100 个线程全部启动完之后再持续运行 60 秒

  • finally,stop/threads every:多长时间释放多少个线程;若设置为 5 个和 1 秒,表示持续负载结束之后每 1 秒钟释放 5 个线程

1.1.4 HTTP请求

交易http协议的发送端,与常规接口调试基本一致,这里不再赘述。

消息体数据:通常为json报文。

jmeter怎么进行压力测试,jmeter,压力测试

1.1.5 TCP取样器

交易发送Tcp协议的发送端,报文格式通常但不限于xml报文。

jmeter怎么进行压力测试,jmeter,压力测试

jmeter怎么进行压力测试,jmeter,压力测试

注意:Re-use connection表示长连接,务必根据实际情况选择。选错可能会导致交易大规模失败的情况发生。

jmeter怎么进行压力测试,jmeter,压力测试

编辑切换为居中

添加图片注释,不超过 140 字(可选)

1.1.6 查看结果树

用来实时追踪交易是否成功的监视器。绿色表示成功,红色表示失败。

jmeter怎么进行压力测试,jmeter,压力测试

1.1.7 响应断言

响应断言一般与结果树配合使用,因为结果树只返回网络层的成功与失败,并不会校验返回报文具体参数是否正常,响应断言可以对报文返回结果做校验,进而反映到结果树中。比如:假定返回报文中必须包含<erorcd>0000</>字符,即交易状态码为0000才认为交易成功,那可按下图配置:

jmeter怎么进行压力测试,jmeter,压力测试

配置完成后,在压测过程中,如果返回报文不包含<erorcd>0000</>,交易会以失败形式体现在结果树中。

1.1.8 聚合报告

用来体现当前压测交易的耗时,样本数,异常量,吞吐量等。

jmeter怎么进行压力测试,jmeter,压力测试

1.1.9 汇总报告

汇总报告数据与聚合报告类似,多出一个标准差,标准差数值越低表示系统越稳定。两个报告的吞吐量均表示tps。

jmeter怎么进行压力测试,jmeter,压力测试

1.1.10 Transactions per Second

tps实时统计监控,用来体现压测过程中tps变化的走势图,下图可知系统在稳定后,tps在280-320浮动。

jmeter怎么进行压力测试,jmeter,压力测试

1.1.11 Active Threads Over Time

线程量实时统计走势图,下图可知,当前线程组在进行阶梯压测,因为线程数在稳定上升。

jmeter怎么进行压力测试,jmeter,压力测试

1.1.12 PerfMon Metrics Collector

服务器资源监控组件,功能极其强大,可以同时监控不同服务器的性能数据,包括CPU,内存,网络IO,磁盘IO等。

jmeter怎么进行压力测试,jmeter,压力测试

其中Host/IP配置你要监控的服务器地址,端口默认4444,Metric to collect配置如下:

jmeter怎么进行压力测试,jmeter,压力测试

1.1.13 变量定义组件

jmeter怎么进行压力测试,jmeter,压力测试

通过定义变量名,可以在软件内部全域使用,调用方式${参数名}。例如

jmeter怎么进行压力测试,jmeter,压力测试

1.1.14 CSV数据格式组件

当用户需使用大量个人自定义数据时。需自定义数据文件,然后通过CSV数据组件引用。这里以用户身份证号举例。文件名如下图以.csv格式结尾。

文件内容如下图,如果需要多种类型数据,请逐行用逗号分隔。

jmeter怎么进行压力测试,jmeter,压力测试

数据文件准备好后,使用CSV数据格式组件引用

jmeter怎么进行压力测试,jmeter,压力测试

软件内部同样使用${变量名}调用,如下图

jmeter怎么进行压力测试,jmeter,压力测试

1.1.15 吞吐量控制器

jmeter怎么进行压力测试,jmeter,压力测试

用于分发交易量,一般配合线程组使用。

吞吐量设置选Total Executions以个数计算,选percent Executions则以百分比来算的,设置80即总线程数的80%

1.2 Windows环境压测步骤

这里以定量线程20压测5分钟为例

1. 将组件jar包放入jemeter安装目录lib包。

jmeter怎么进行压力测试,jmeter,压力测试

2. 双击bin目录的jmeter.bat启动软件。

jmeter怎么进行压力测试,jmeter,压力测试

3. 修改软件语言为中文

jmeter怎么进行压力测试,jmeter,压力测试

4. 添加定量线程组

jmeter怎么进行压力测试,jmeter,压力测试

5. 设置定量线程组线程量为20。持续时间300(5分钟)秒

jmeter怎么进行压力测试,jmeter,压力测试

6. 添加TCP取样器

jmeter怎么进行压力测试,jmeter,压力测试

7. 设置取样器参数,设置ip 端口,设置报文

jmeter怎么进行压力测试,jmeter,压力测试

8. 添加结果树

jmeter怎么进行压力测试,jmeter,压力测试

9. 添加响应断言,设置检测字符串

jmeter怎么进行压力测试,jmeter,压力测试

10.添加监听tps监听与线程数监听

jmeter怎么进行压力测试,jmeter,压力测试

11. 添加服务器环境资源监听

jmeter怎么进行压力测试,jmeter,压力测试

12. 配置服务器环境监听

这里以监听CPU为例,其它监控类似,这里不再赘述

jmeter怎么进行压力测试,jmeter,压力测试

13. 配置结束后,需要在服务器启动监控控件,jmeter才能实时获取服务器动态信息。

14. 登陆要监控的服务器,上传ServerAgent

jmeter怎么进行压力测试,jmeter,压力测试

15. 进入该目录执行./startAgent.sh。如果要不中断命令使用nohup ./startAgent.sh > /dev/null 2>&1

jmeter怎么进行压力测试,jmeter,压力测试

16. 启动成功后如图(如果启动不成功,检查4444端口是否被占用)

jmeter怎么进行压力测试,jmeter,压力测试

17. 将要监控的服务器startAgent启动完毕后,返回jmeter。

18. 在要启动的线程组右键,保证该线程组处于启用状态(启用按钮置灰,说明目前在启用状态),同时将其他线程组禁用。

jmeter怎么进行压力测试,jmeter,压力测试

19. 开始启动压测

jmeter怎么进行压力测试,jmeter,压力测试

20.等待结束分析数据即可

jmeter怎么进行压力测试,jmeter,压力测试

1.3 Linux环境压测步骤

1. 将Jmeter 拷贝到服务器

jmeter怎么进行压力测试,jmeter,压力测试

2. 将压测案例 以 .jmx结尾的文件拷贝到bin目录下

3. 进入Jmeter目录,给/bin目录 加权限

chmod –R 777 bin/

4. 进入bin目录 执行命令

sh jmeter.sh -n -t dc1000.jmx -l report.jtl 注:dc1000.jmx 以你实际案例名为主

5. 等待压测完成

jmeter怎么进行压力测试,jmeter,压力测试

完成后会在bin目录下生成一个report.jtl

6. 将 report.jtl 导出到本地,打开本地jmeter,打开测试案例,分别点击聚合报告、汇总报告、查看结果树,将 report.jtl 导入测试案例。

jmeter怎么进行压力测试,jmeter,压力测试

7. 导入后即可查看压测结果。

1.4 总结

本文主要介绍了jemeter常用组件的使用方法以及在windows环境和linux环境的压测步骤,希望对你有所帮助,如果你觉得有用的话,不妨点赞收藏一下。文章来源地址https://www.toymoban.com/news/detail-729653.html

到了这里,关于如何使用jmeter进行系统压力测试?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用JMeter 进行压力测试

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

    2024年02月16日
    浏览(41)
  • 使用jmeter进行简单压力测试

    最近项目要上线,需要项目进行简单的压力测试,本次使用的是jmeter来进行的,由于本人不是专业测试,只是对本次使用过程进行简单的记录. 一.jemeter的下载与安装 我这个已经安装很久了,具体过程这个可以查询下其他博客(偷个懒). 二.使用过程 1.测试计划右击-添加(add)-线程(thre

    2024年02月04日
    浏览(35)
  • 【性能测试】使用JMeter对code论坛进行压力测试

    项目简介 code 论坛是一个技术交流社区。主要功能有发布帖子,查看帖子,评价帖子,删除帖子,点赞帖子,站内信,个人中心,修改个人信息等。是一个基于 Spring 的前后端分离项目。 项目链接 code论坛 使用工具 JMeter5.6.2 性能测试概念 性能测试是通过自动化的测试工具模

    2024年02月08日
    浏览(37)
  • JMeter系列4-使用JMeter进行压力测试,计算吞吐量

    1、随着线程的增加,throughout不变了,再增加,只能延时增长了,说明已经达到最大QPS 2、很好推断,一个进程一次接口的响应时间是500ms,那么一个进程的qps为2,四个进程的qps就是8 参考:https://blog.csdn.net/Le_1M/article/details/121105877 2.添加Constant Throughput Timer(常量吞吐量定时器)

    2023年04月08日
    浏览(34)
  • 【性能优化】一、使用JMeter进行压力测试并进行简单调优

    压力测试不同于功能测试,其目的是为了测试出系统在高并发,高数据量的情况下可能会出现的问题(内存泄露、并发、同步) 一种典型的内存泄漏就是对象在创建之后由很多用户进行调用,导致对象被不断新建但复用率很低,导致内存不足(内存泄露的典型问题) 有效的

    2024年02月03日
    浏览(36)
  • 使用jmeter的HLS插件进行流媒体的压力测试

    目录 一、准备 二、使用步骤 1.添加HLS插件 2. 示例 最近项目中开始做国标的项目,需要进行视频流的压力测试,在前端界面基本上最多也就是16宫格,想要测试更多的视频流,就需要使用jmeter中的HLS Plugins来进行压力测试(能自己写脚本的更好),下面就是本人进行视频流测

    2024年02月11日
    浏览(34)
  • 批量获取用户token,并使用jmeter对秒杀接口进行压力测试(黑马点评)

    🔥🔥宏夏Coding网站,致力于为编程学习者、互联网求职者提供最需要的内容!网站内容包括求职秘籍,葵花宝典(学习笔记),资源推荐等内容。在线阅读:https://hongxiac.com🔥🔥 现在有一个秒杀优惠券的接口,需要模拟1000个不同登录用户下的秒杀场景,测试这个接口的性

    2024年02月15日
    浏览(32)
  • 压力测试工具 Jmeter 如何下载安装及使用教程

    两种下载方式: 官网下载地址(不推荐) :Apache JMeter - Download Apache JMeter ​ jemter腾讯下载地址(推荐): https://mirrors.cloud.tencent.com/apache/jmeter/ 安装前的准备工作: 查看本地环境是否已经安装并配置了jdk 默认优秀的你和我一样万事俱备了。开始安装(简单) 解压下载的文

    2023年04月16日
    浏览(55)
  • JMeter进行WebSocket压力测试

    背景 之前两篇内容介绍了一下 WebSocket 和 SocketIO 的基础内容。之后用 Netty-SocketIO 开发了一个简单的服务端,支持服务端主动向客户端发送消息,同时也支持客户端请求,服务端响应方式。本文主要想了解一下服务端的性能怎么样,选择使用 JMeter 对 WebSocket 应用进行性能测试

    2024年02月16日
    浏览(39)
  • jmeter对百度首页进行压力测试

    在测试计划下添加jp@gc - Stepping Thread Group 阶梯线程组配置如下: 该测试一共启动500个线程,每30秒增加10个,全部线程启动后,保持2分钟,然后每1秒停止5个线程。 添加HTTP请求 添加查看结果树、jp@gc - Response Times Over Time、jp@gc - Transactions per Second、聚合报告。 然后启动线程。

    2024年01月16日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包