jmeter
官网: https://jmeter.apache.org/
环境:JDK1.8
解压后双击{Jmeter_HOME}/bin/jmeter.bat就可以启动Jmeter。
插件
jmeter-plugins-manager.jar下载完成之后,将下载的jmeter-plugins-manager.jar文件放置到apache-jmeter\lib\ext目录下面。
重启Jmeter,在option->下拉菜单中找到Plugins Manager
指标
RPS
RPS 就是每秒请求数(Request Per Second),它描述了施压引擎向服务器实际发出的压力大小。
从用户角度来说,rps是每秒钟点击的次数
从客户端角度来说,rps是每秒向服务端发出的请求数
使用工具的最终目的就是为了利用线程数和迭代次数模拟出和用户每秒点击相匹配的压力值,施压服务端,得到性能数据
Rps 由并发数,和服务器响应时间决定。并发数过低时可能达不到预期的RPS,并发数过高时可能压力过大直接就压垮了服务器。
参数
Ramp-up-period
Ramp-up-period
jmeter在线程组中有一个可调节的数值:Ramp-up-period,它表示启动所有线程需要的时间,单位是秒。
设置了100个线程,Loop Count(迭代次数)=1,Ramp-up-period=25,那么它表示将在25秒内启动100个线程,也就是每秒钟启动4个线程。
每个线程启动之间的间隔时间是25/100=0.25s,也就是250ms。
换个理解方式,它表示了我们预期给服务器的压力就是每秒钟发送4个请求。也就是说,设置的RPS=4/s。
设置了100个线程,Loop Count(迭代次数)=10,Ramp-up-period=25,那么它表示将在25秒内启动100个线程,每个线程迭代10次。也就是25秒内启动100个线程并迭代10次。
此时RPS=40/s。jmeter在25秒内用100个线程发起了1000次请求。
TPS与HPS
TPS(Transaction per second) 是估算应用系统性能的重要依据;其意义是应用系统每秒钟处理完成的交易数量.
一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量。 系统整体处理能力取决于处理能力最低模块的TPS 值.
依据经验,应用系统的处理能力一般要求在10-100左右;不同应用系统的TPS有着十分大的差别,一般需要通过性能测试进行准确估算.
HPS:Hits per Second 每秒点击次数
是指在一秒钟的时间内用户对Web页面的链接、提交按钮等点击总和. 它一般和TPS成正比关系,是B/S系统中非常重要的性能指标之一.
jmeter中的RPS是无法通过监听器来直观的监测到,但是在单请求下,RPS和HPS理论上是相等的。可以通过HPS监听器去验证一下。
throughput:分为网络吞吐量和事务吞吐量
TPS表示每秒通过的事物数,QPS表示每秒查询接口数。
jmeter中如果只有单接口,那么TPS=QPS。
如果是多接口的混合场景,只有在事物控制器下执行,才能将其理解为TPS。
Constant Throughput Timer
在接口下添加一个Constant Throughput Timer
这是一个吞吐量定时器,它可以控制我们的TPS。
设定了目标吞吐量是240/min,也就是4/s。
使用
添加线程组
TestPlan(测试计划)是JMeter所有组件的根节点,打开JMeter即默认有一个TestPlan,也只能有一个TestPlan。在TestPlan下添加线程组,线程组可以添加多个,线程组是相对独立的。
添加取样器
首先在线程组上右键Add–>Sample(取样器)-> HTTP Request请求,添加了一个HTTP请求取样器:
填写接口信息
协议:分为http和https(加密的http),测试环境一般采用http,生产环境使用https。
服务器名称或IP:填入host对应的内容。
端口号:如果服务器地址填IP,这项就要填写相应的IP,具体也看测试环境配置。
路径:填入接口文档的path即可
添加查看结果监听器
在线程组上右键Add –> Listener(监听器) -> View Result Tree【察看结果树】:
测试
修改线程组用户数,右击start运行,在View Result Tree查看结果。