一文2000字从0到1使用压测神器JMeter进行压力测试!

概 述

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

JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。

通过官网 http://jmeter.apache.org/即可方便地下载使用 JMeter,不过注意需要预先准备好 Java环境。


JMeter基本概念

在介绍如何使用Jmeter之前先介绍下Jmeter里的一些基本概念:

1)测试计划 是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。

2)线程组 代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义,它被线程组包含。可以在“测试计划->添加->线程组”来建立它,然后在线程组面板里有几个输入栏:线程数、Ramp-Up Period(in seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程,Ramp-Up = 200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。线程组是为模拟并发负载而设计。

3)取样器(Sampler) 模拟各种请求。所有实际的测试任务都由取样器承担,存在很多种请求。如:HTTP 、ftp请求等等。

4)监听器 负责收集测试结果,同时也被告知了结果显示的方式。功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等。

5)逻辑控制器 允许自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。

6)断言 用于来判断请求响应的结果是否如用户所期望,是否正确。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。

7)定时器 负责定义请求(线程)之间的延迟间隔,模拟对服务器的连续请求。

8)配置元件 维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。

9)前置处理器和后置处理器负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。

接下来模拟高并发进行压力测试

建立线程组

要想模拟高并发,线程组是必不可少的,所以首先我们建立一个线程组

配置线程组

这里是建立了300个线程, Ramp-UpPeriod参数是为了防止一下子创建300个线程导致程序假死而设计的,意思是在多少秒之内建立起所有的线程。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】


建立一个循环控制器

进行压力测试,不可能只是让每一个线程进行一次操作。肯定是让每一个线程一直循环的往下跑。这里就设置为永远了,手动进行停止才生效

循环控制器配置


设置http信息头管理器

因为测试的网站做了访问限制,只有浏览器才能进行访问,所以必须指定 User-Agent去模拟浏览器进行请求。

新建http信息头管理器

http信息头管理器配置


设置一个固定定时器

这一步的作用是让线程每过多少毫秒进行下一次操作,我这里设置500毫秒也就是每一个线程1秒进行2次操作

新建固定定时器

固定定时器配置


设置一个http请求

这里的参数都很好理解,需要注意的是 服务器名称ip这里我们也可以填写域名,还有路径这里不需要加域名或者服务器ip

添加HTTP请求

HTTP请求配置


图形结果

图形结果监视器

图形结果


聚合报告


查看结果树


测试计划的排列顺序

这里的顺序是有讲究的,从结构上可以看出,也可以这么类比

创建了一个线程组 for(循环多少次){ 设置请求头 设置sleep时间 进行http请求 }

结果的分析

  • 聚合报告

查看聚合报告如下:

Samples 本次场景中一共完成了多少个Transaction

Average 平均响应时间 (ms) Median 统计意义上面的响应时间的中值 (ms) 90%Line 所有transaction中90%的transaction的响应时间都小于xx

Min 最小响应时间 (ms)

Max 最大响应时间 (ms)Error 出错率Troughput 吞吐量,单位:transaction/sec

KB/sec 以流量做衡量的吞吐量

  • 以树状列表查看结果

我们可以看到很详细的每个 transaction它所返回的结果,其中红色是指出错的transaction,绿色则为通过的。如果你测试的场景会有很多的transaction完成,建议在这个Listener中仅记录出错的transaction就可以了。要做到这样,你只需要将Log/Display:中的Errors勾中就可以了。

若有错误或者不当之处,可在评论区反馈,一起学习交流!

END今天的分享就到此结束了,点赞关注不迷路!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/140524.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CC1310F128RSMR Sub-1GHz超低功耗无线微控制器芯片

CC1310F128RSMR QFN-32 Sub-1GHz超低功耗无线微控制器 CC1310F128RSMR是一款低成本、 超低功耗、Sub-1 GHz射频器件,它是Simplel ink微控制器(MCU)平台的一部分。该平台由Wi- Fi组成、蓝牙低功耗,Sub-1 GHz,以太网,Zigbee线程和主…

【诺依管理系统-vue3】组件没有重新请求问题

解决方法:destroy-on-close,如图

消息队列中的事务是什么呢?

消息队列中的事务是什么呢? 说到事务,肯定会优先想到数据库中的事务。在数据库中需要事务,是为了保证数据的一致性、完整性、持久性和隔离性。它可以将数据库中的一组操作合并为一个不可分割的工作单元,要么全部执行成功&#xf…

No191.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

千年密码新解读,DeepMind 开发 Ithaca 破译希腊铭文

铭文、碑刻是过去文明的思想、文化和语言的体现。金石学家破译千年前的密码,需要完成文本修复、时间归因和地域归因三大任务。 主流的研究方式是「字符串匹配」,即凭借记忆或查询语料库匹配字型相似的铭文,这导致了结果的混淆和误判。 为此…

酷柚易汛ERP - 其他出库单操作指南

1、应用场景 处理其他非销售类型的出库单据,比如内部领用福利、赔偿、借出、领用材料、以货抵债等不参与销售管理的出库类业务。 2、主要操作 2.1 新增其他出库单 打开【仓库】-【其他出库单】,新增单据 出库单位成本及出库成本不能录入;…

msvcr71.dll丢失多种解决方法解析,全方位解读msvcr71.dll文件

在日常使用电脑时,你是否曾遇到过“msvcr71.dll文件丢失”的错误提示?别着急,本文将为你详细介绍msvcr71.dll丢失的解决方法,让你迅速解决这一烦恼。 一.多种msvcr71.dll丢失解决方法 修复方法一:重新安装相应软件 首先&#xf…

推荐一份适合所有人做的副业,尤其是程序员。

我建议每个人都去尝试一下网上接单,这是一个门槛低、类型多样的方式,尤其适合程序员! 在接单平台上,你可以看到各种类型的兼职。以freelancer为例,你可以在这里找到技术、设计、写作等类型的兼职,只要发挥…

Linux SSH免密登录

目录 简介 创建Linux用户和用户组 配置LINUX静态IP 编辑IP映射 SSH免密登录配置 登录测试 简介 SSH(Secure shell)是可以在应用程序中提供安全通信的一个协议,通过SSH可以安全地进行网络数据传输,它的主要原理是利用非对称加密…

常见光模块的封装有哪些呢?

光模块的封装,保障了光通信的稳定和可靠性。本文介绍几种常见的光模块的封装类型。 19封装–焊接型光模块,一般速度不高于千兆,多采用SC接口。 SFP封装:SFP(Small form-factor pluggable)意思是小型可拔插…

金蝶云星空将子窗体的内容传回到父窗体的开发实现

文章目录 金蝶云星空将子窗体的内容传回到父窗体的开发实现前置任务父窗体打开子窗体时传入回调函数子窗体设置返回参数父窗体接收参数在回调函数根据参数做一些逻辑处理 金蝶云星空将子窗体的内容传回到父窗体的开发实现 前置任务 金蝶云星空表单插件实现父窗体打开子窗体&a…

合合信息亮相新加坡科技周——Big Data AI World Expo展示AI驱动文档数字化的前沿能力

展会规模背景: 2023年10月11日-12日,合合信息在TECH WEEK SINGAPORE(新加坡科技周)亮相,并在人工智能世界博览会(Big Data & AI World)展示合合信息核心人工智能文字识别技术能力。合合信息…

无人机航迹规划:五种最新智能优化算法(KOA、COA、LSO、GRO、LO)求解无人机路径规划MATLAB

一、五种算法(KOA、COA、LSO、GRO、LO)简介 1、开普勒优化算法KOA 开普勒优化算法(Kepler optimization algorithm,KOA)由Mohamed Abdel-Basset等人于2023年提出。五种最新优化算法(SWO、ZOA、EVO、KOA、…

上传文件大小限制报错

做了一个上传文件的功能,前端通过文件流程的形式调用后台接口。几百k的文件能成功,几M的文件会失败。原因有二 第一是被nginx限制,请求也无法转发到应用服务器里面(也就是tomcat看不到请求日志只有nginx日志能看到请求&#xff0…

设计模式之建造者(Builder)

用来构建复杂对象 分离复杂对象的构建和表示 同样的构建过程可以创建不同的表示 当有一个复杂的对象,构建它的时候,比较复杂 例如,构建一个对象,要传入50个参数,可以先构建part1,再构建part2…最后调用bu…

Git-工作流

前言 一、工作流概述二、Git flow1.主要流程2.优缺点3.适用场景 三、Github flow1.主要流程2.优缺点3.适用场景 四、Gitlab flow1.主要流程2.优缺点3.适用场景 总结参考 一、工作流概述 开发人员通过Git可以记录和追踪代码的变化,包括添加、删除和修改文件。如果是…

【Python 算法】双向迪杰斯特拉算法 Python实现

双向迪杰斯特拉算法Python实现 文章目录 双向迪杰斯特拉算法Python实现简介双向迪杰斯特拉算法优势局限性算法的基本步骤终止条件 基本步骤伪代码Python 实现 简介 双向迪杰斯特拉算法(Bi Directional Dijkstra Algorithm)是一种用于在加权图中查找两个…

红色旅游AR互动体验将景区推向更广泛的市场

AR技术的出现使得各展厅观众可以在虚拟和现实的层面进行互动,利用AR和VR技术,将展览地点扩展到特定的虚拟领域,实现了"无触觉"交互体验,增强现实技术和展馆的对接更加激发人们了解新事物的兴趣。 一、AR景区&#xff1a…

【03】Istio Gateway示例配置

3.1 开放kiali至集群外部 首先将istio-inressateway暴露集群外部; 在node02的ens33网卡上面有多余的ip地址,将该地址绑定在igressgateway的svc 上面。 kubectl edit svc istio-ingressgateway -n istio-system定义kiali的ingress gateway的资源配置清单 apiVersion:…

第十六章,反射与注解例题

package 例题; import java.lang.reflect.Constructor;class 例题1Demo {//变量String s;int i, i2, i3;private 例题1Demo() {//无参构造方法}protected 例题1Demo(String s, int i) {//有参构造方法this.s s;this.i i;}public 例题1Demo(String... strings) throws NumberF…