分布式压测系列之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
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界面压测,分布式压测等等 视频教程参考:
https://www.xdclass.net/#/coursecatalogue?video_id=3
关注我们,分享前沿动态
分布式压测系列之Jmeter4.0第一季的更多相关文章
- JMeter——分布式压测
一.Jmeter4.0分布式压测准备工作 压测注意事项 the firewalls on the systems are turned off or correct ports ...
- 压力测试(八)-多节点JMeter分布式压测实战
1.Jmeter4.0分布式压测准备工作 简介:讲解Linux服务器上jmeter进行分布式压测的相关准备工作 1.压测注意事项 the firewalls on the systems are tu ...
- 案例 | 荔枝微课基于 kubernetes 搭建分布式压测系统
王诚强,荔枝微课基础架构负责人.热衷于基础技术研发推广,致力于提供稳定高效的基础架构,推进了荔枝微课集群化从0到1的发展,云原生架构持续演进的实践者. 本文根据2021年4月10日深圳站举办的[腾讯云 ...
- jmeter分布式压测
stop.sh需要跑Jmeter的服务器上安装Jmeteryum install lrzsz 安装rz.sz命令rz jemter的压缩包 拷贝到/usr/local/tools下面unzip apa ...
- jmeter 分布式压测(windows)
单台压测机通常会遇到客户端瓶颈,受制于客户机的性能.可能由于网络带宽,CPU,内存的限制不能给到服务器足够的压力,这个时候你就需要用到分布式方案来解决客户机的瓶颈,压测的结果也会更加接近于真实情况. ...
- Jmeter 在linux下的分布式压测
Jmeter 在linux下的分布式压测 0.将 windows机器作为master 控制机(同时也兼做负载机slave), linux机器作为 负载机 slave. 1.linux环境安装 : (1 ...
- JMeter在linux上分布式压测步骤(二)
哈喽,我又来了~ 前提:三台linux虚拟机,一台作为master,另外两台作为slave. 一.server端 1.修改1099端口,client和server通信的端口,可以不修改,默认就是109 ...
- jmeter实现分布式压测步骤
环境说明:安装与控制机相同版本的jdk与jmeter 1.修改控制机中的jmeter.properties文件 将<remote_hosts=127.0.0.1>改为<remote_ ...
- Linux环境下进行分布式压测踩过的坑
背景:公司为了满足大并发的情况,需要测试组配合,就需要分布式压测,这里我把我踩过坑都记录下来: 环境:Linux + jmeter-v.5.1.1;使用3台2核4G的压力机: Q1: Server f ...
随机推荐
- 二、hadoop文件操作
1.使用hadoop命令查看hdfs下文件 [root@localhost hadoop-2.7.2]# hadoop fs -ls hdfs://192.168.211.129:9000/ (最后 ...
- java中json解析,xml解析
抓取网页内容,会返回json或者xml(html)格式的数据. 为了方便的对上述两种格式的数据进行解析,可采用解析工具. JsonPath https://github.com/jayway/Json ...
- UWP 应用获取各类系统、用户信息 (2) - 商店授权信息、零售演示模式信息、广告 ID、EAS 设备信息、硬件识别信息、移动网络信息
应用开发中,开发者时常需要获取一些系统.用户信息用于数据统计遥测.问题反馈.用户识别等功能.本文旨在介绍在 Windows UWP 应用中获取一些常用系统.用户信息的方法.示例项目代码可参见 Gith ...
- common-jdbc:一个基于SpringJdbcTemplate的高性能数据库操作工具类库
项目地址:https://gitee.com/cnsugar/common-jdbc 一.简介 基于SpringJdbcTemplate的高性能数据库操作工具类库,支持mysql.oracle数据库, ...
- 简单shell实现
http://blog.csdn.net/lishuhuakai/article/details/11928055 #include <stdio.h> #include <unis ...
- Jquery系列:设置div、span等dom结点的内容,jquery中没有innerText、innerHtml
发现如果我在div或者其他非表单的标签中赋值,原本用普通的js就直接document.getElementById("id").innerHtml(或者其他几个)就可以了. 但是在 ...
- jQuery基础——选择器、效果
一.使用JS的痛处 在学习和使用js的过程中发现了js的一些痛处: 1.书写繁琐,代码量大. 2.代码复杂. 3.动画效果很难实现.使用定时器,要小心各种定时器的清除.各种操作和处理事件不好实现. 4 ...
- 基于Ajax与用户认证系统的登录验证
一.登录页面 from django.contrib import admin from django.urls import path from blog import views urlpatte ...
- 1094 FBI树
1094 FBI树 2004年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description 我们可以把由“ ...
- SharePoint 2013 - Designer Workflow
另一篇文章 SharePoint Designer - Workflow 1. 可以定义每个Stage的名称,并将Stage名称显示在工作流状态字段,相比于SP2010时仅有的in progress ...