1)Jmeter4.0介绍
jmeter是个纯java编写的开源压测工具,apache旗下的开源软件,一开始是设计为web测试的软件,由于发展迅猛,现在可以压测许多协议比如:http、https、soap、ftp、database数据库、LDAP 轻量目录访问协议、TCP、SOMP(简单邮件协议)等,由于是纯java编写,可以在苹果、window或者Linux下运行,全功能的测试IDE,允许快速的建立测试计划(从浏览器或本地应用程序,官网地址:http://jmeter.apache.org),Jmeter是一个中高级开发或者测试人员都必须掌握的一个工具。

目前用的常用测试工具对比:

1、loadrunner:性能稳定,压测结果及细粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多
2、apache ab(单接口压测最方便):模拟多线程并发请求,ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会给目标服务器造成巨大的负载, 简单DDOS攻击等
3、webbench:webbench首先fork出多个子进程,每个子进程都循环做web访问测试。子进程把访问的结果通过pipe告诉父进程,父进程做最终的统计结果。

2)特点
提供GUI图形界面和非GUI界面进行压测,在windows下面进行开发测试压测脚本,然后直接在linux上执行
可以提供完整的动态HTML压测报告
纯java编写,一次编写,四处压测
多线程框架允许通过多个线程同时进行采样压测,并通过单独的线程组同时采样不同的功能
提供高度可扩展的功能,自定义插件:
提供函数可用于为测试提供动态输入或提供数据操作。
通过Maven,Graddle和Jenkins的第三方开源库轻松持续集成
3)准备工作
需要安装java运行环境,建议安装JDK环境,虽然JRE也可以,但是压测https需要JDK里面的 keytool工具;
新版本Jmeter4.0,需要JDK8以上版本,JDK9或者JDK10都可以;并配置好JDK环境(这里就不讲配置JDK环境了)
下载对应的Jmeter4.0版本并解压(官网地址:http://jmeter.apache.org/)
windows系统: http://mirrors.tuna.tsinghua....
Mac或者Linux:http://mirrors.tuna.tsinghua....

4)jmeter4.0解压目录文件讲解

bin:核心可执行文件,包含配置

jmeter.bat: windows启动文件:
jmeter: mac或者linux启动文件:
jmeter-server:mac或者Liunx分布式压测使用的启动文件
jmeter-server.bat:mac或者Liunx分布式压测使用的启动文件
jmeter.properties: 核心配置文件
examples:压测脚本文件JMX和动态读取csv参数文件案例
result—template:可视化HTML
template:JMX的模板文件

docs:Jmeter的API文档
extras:插件拓展的包
lib:核心的依赖包
ext:核心包
junit:单元测试包
5)Jmeter核心组件介绍

什么是测试计划(Test plan)?

就是压测的一个流程,比如压测什么接口,并发多少用户,协议等等,在测试计划下面配置线程组,采样器,监听器等组件

什么是线程组(Thread Group)?

线程组就是模拟多少用户并发访问你的应用,这个组里面共有多少用户,创建方法如上图现在“添加->threads->线程组“

参数说明:
线程数:虚拟用户数。一个虚拟用户占用一个进程或线程
准备时长(Ramp-Up Period(in seconds)):全部线程启动的时长,比如100个线程,20秒,则表示20秒内100个线程都要启动完成,每秒启动5个线程
循环次数:每个线程发送的次数,假如值为5,100个线程,则会发送500次请求,可以勾选永远循环

什么是采样器(Sampler)?

真正干活的组件,采样器里面配置你要压测的接口,协议,参数等
可以创建各种采样器,如Http请求,FTP请求,JDBC压测数据库请求,JMS等,对应的采样器有不同的配置
以http请求采样器为例

名称:采样器名称,一般是接口名称,方便后续进行区分,比如“login接口”
注释:采样器的描述,方便别人理解,类似压测接口描述
web服务器配置协议:压测的协议,比如“http”或者"https"服务器名称或IP:压测目标机器的端口或者服务器IP地址,比如 www.xdclass.net端口号:压测目标机器的端口号,比如 8080
HTTP请求配置方法:http的请求方法,常用的有GET,POST,PUT,DELETE,PATCH等路径:压测的接口的URL,比如 /api/v1/usersContent encoding:是否进行内容编码自动重定向:http有302状态码返回的时候,重定向,但不会产生记录,不可以做关联请求,比如比如第二个请求要用到第一个请求的数据,则选择自动重定向无法做关联跟随重定向:会产生记录,可以做关联,默认勾选这个Use multipart/from-data for HTTP POST :当发送POST请求时,使用Use multipart/from-data方法发送,默认不选中。parameters:参数配置Files Upload:文件上传配置

什么是结果树?

压测的结果查看,可以看到压测发送的url,http参数,返回结果,返回的整个响应,然后如果有断言或者调试,可以看到断言是否通过等等
添加路径: 线程组->添加->监听器->察看结果树
如果不添加结果数,则点击压测开始按钮,压测具体响应我们无法知道,所以需要添加结果数,
一来是方便调试压测脚本,看请求参数,路径是否正常
切换到结果数查看页面,点击压测按钮就可以进压测,边压测可以边看到请求的结果。

补充个小技巧,就是GUI图形界面语言版本中英文切换:

1、控制台修改

menu -> options -> choose language 选择对应的语言版本就可以

2、配置文件修改

bin目录 -> jmeter.properties默认 #language=en改为 language=zh_CN

视频课程参考:https://xdclass.net/html/cour...

分布式压测系列之Jmeter4.0相关推荐

  1. 分布式压测系列之Jmeter4.0第一季

    1)Jmeter4.0介绍 jmeter是个纯java编写的开源压测工具,apache旗下的开源软件,一开始是设计为web测试的软件,由于发展迅猛,现在可以压测许多协议比如:http.https.so ...

  2. 性能测试搭建Jmeter分布式压测与监控

    对于运维工程师来说,需要对自己维护的服务器性能瓶颈了如指掌,比如我当前的架构每秒并发是多少,我服务器最大能接受的并发是多少,是什么导致我的性能有问题:如果当前架构快达到性能瓶颈了,是横向扩容性能提升大 ...

  3. Jmeter 分布式压测

    一.jmeter分布式压测使用场景 1.当一台jmeter并发数达到瓶颈时,需要多台jmeter一台控制机,多台负载机来进行分布式压测 扩大并发数 2.当测试多台服务器时,需要同时通过多个ip压测同一 ...

  4. Jeecgboot Feign、分布式压测、分布式任务调度

    分布式压测 需求场景 一些关键接口需要压测到很高的QPS需要设置更多的线程去模拟虚拟用户去请求接口假如需要模拟2万个用户因为jemeter使用java语言开发每创建一个线程jvm默认会为每个线程分配1 ...

  5. java模拟数据库压测_Jeecgboot Feign、分布式压测、分布式任务调度

    分布式压测 需求场景 一些关键接口需要压测到很高的QPS 需要设置更多的线程去模拟虚拟用户去请求接口 假如需要模拟2万个用户 因为jemeter使用java语言开发 每创建一个线程 jvm默认会为每个 ...

  6. 搭建 Apache Jmeter 分布式压测与监控

    1.前言 对于运维工程师来说,需要对自己维护的服务器性能瓶颈了如指掌,比如我当前的架构每秒并发是多少,我服务器最大能接受的并发是多少,是什么导致我的性能有问题:如果当前架构快达到性能瓶颈了,是横向扩容 ...

  7. jmeter 高并发测试报告_Windows下JMeter分布式压测环境搭建

    JMeter是Apache组织开发的开源项目,设计之初用于性能测试,同时它在实现对各种接口的调用方面做得比较成熟,因此,常被用于接口功能测试和性能测试.它能够很好的支持各种常见接口,如HTTP(S). ...

  8. Jmeter分布式压测介绍、原理及实操(一台master-windows控制机,三台slaves-linux负载机)

    前言:大家在使用jmeter压测过程中,可能会度遇到内存溢出的错误,这是为什么呢? 因为jmeter是java写的应用,java应用jvm堆内存heap受负载机硬件限制,虽然我们可以调整堆内存大小,但 ...

  9. Jmeter分布式压测-windows(master控制机)多个linux(slaves负载机)监测服务器资源(cpu、内存等)

    为什么进行jmeter分布式压测? 一.干货解释原因: **原因一:**一台压力机的 Jmeter 默认最大支持 1000 左右的并发用户数(线程数),再大的话,容易造成卡顿.无响应等情况,这是受限于 ...

最新文章

  1. 如何通过代码连接SQL Server数据库
  2. js、PHP将分数字符串转换为小数
  3. 年薪2亿!51岁苏妈获「半导体诺贝尔奖」,MIT才女变身AMD女掌门
  4. python怎么找资源_查找目标文件太慢了,用好搜索引擎,让你比Python找资源更快捷...
  5. 服务器端虚拟化安卓,安卓服务器端实例
  6. Homogeneous Coordinates(齐次坐标)
  7. 再见 Postman!Apifox 才是 YYDS!
  8. 单列布局、两列布局、三列布局
  9. java 中文件outputstream的操作注意
  10. H264 SPS分析
  11. flea-cache使用之Memcached接入
  12. cadence 提示lic找不到怎么办
  13. java报表开发(bi报表开发)
  14. 智慧井盖解决方案-最新全套文件
  15. xlsx格式转csv
  16. 分享几个Vue案例供大家一起学习
  17. EPLAN自动线号放置
  18. 华为p20pro关闭HTML查看,华为p20如何调出息屏时钟 每天定时开启灭屏显示功能
  19. 谷歌Colab(免费算力平台)——正确打开方式(常用操作指导tips)
  20. 当年准备去的那家公司,如今裁员了

热门文章

  1. 扫雷java讲解_java课程设计(扫雷游戏)讲解.doc
  2. 使用 vscode将本地项目上传到github、从github克隆项目以及删除github上的某个文件夹...
  3. HDU 6096 AC自动机
  4. C# 大数组赋值给小数组,小数组赋值给大数组
  5. 《OD大数据实战》MapReduce实战
  6. 解决子元素和父元素同时触发onclick
  7. html嵌入excel_第5天 | 16天搞定前端,html布局,表格和大块头
  8. 网页版本的飞行日志分析平台是_一个轻便的实时日志收集平台wslog
  9. 坚果云 operationnotallowed webdav_妙用 NAS 服务,将你的知识库和音乐库搬上「云」...
  10. IDEA for Mac 常用快捷键