千家信息网

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

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,1)Jmeter4.0介绍jmeter是个纯java编写的开源压测工具,apache旗下的开源软件,一开始是设计为web测试的软件,由于发展迅猛,现在可以压测许多协议比如:http、https、soa
千家信息网最后更新 2025年01月24日分布式压测系列之Jmeter4.0第一季

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.edu.cn/apache//jmeter/binaries/apache-jmeter-4.0.zip
Mac或者Linux:http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-4.0.tgz

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/users                                      Content 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

OK,Jmeter4.0压力测试第一季入门先到这里,

下一站章 会再分享Jmeter高级知识,比如断言使用,动态读取CSV参数,压测Mysql,阿里云Linux环境非GUI界面压测,分布式压测等等

视频教程参考http://edu.51cto.com/course/13251.html

https://www.xdclass.net/#/coursecatalogue?video_id=3


线程 文件 测试 配置 结果 采样器 参数 接口 进程 核心 环境 用户 功能 动态 名称 工具 数据 方法 服务器 版本 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 奶块为什么不更新服务器 闪烁之光如何找到自己的服务器 中国银行软件开发中心待遇 超微X10DRI服务器默认IP 观看网络安全宣传片新闻稿 南理工网络安全学费一年多少 网络安全个信息化工作总结 成都联想代理商服务器现货促销 可登录的外国论文数据库 服务器小玩意 代理服务器连接被设置怎么办 数据库专业导论论文 创赢科技互联网项目孵化 win10关闭网络安全 博兴资产软件开发服务 数据库根据字段名查找唯一 河南网络时钟监控网管服务器 昆明中奇联合互联网科技有限公司 数据库查询软件data 软件开发新员工总结 大疆科技软件开发 互联网软件开发需要学什么 天津服务器阵列卡启动虚拟主机 淘宝数据库需求 国家网络安全班会内容 宁波服务器精密空调报价 宿城区什么是网络技术供应商家 网络安全故障排查常用命令 武汉大学数据库原理期末考试 互联网 诞生的科技企业
0