从0到1 教你用jmeter做性能测试

前言:现在网上对于某个知识点的教程可以说是很全了,但是有以下缺陷:1.博客质量层次不齐,2.只是对于单方面的知识点介绍,不系统。小编致力于做博客的过滤和筛选,所以你看小编的文章往往有很多别人文章的链接,不过文章所有链接都是小编亲使可用的,可以放心尝试。

上篇博客介绍了,jmeter的下载,配置以及如何发soap报文,这篇博客我将重点介绍,jmeter做基准测试,单交易性能测试,以及稳定性测试。(因为项目的需求,我介绍的都是通过jmeter发soap报文,关于如何发json报文和http请求的可以自行百度)
 

一.准备工作:

1.插件下载
为了获取到响应时间变化和tps的变化,我们需要加上 
[email protected] - Transactions per Second (查看TPS的)
[email protected] - Response Times Over Time(查看响应时间的)
[email protected] - PerfMon Metrics Collector(监控cpu的)(使用这个的话还需要在服务器下载一个监控工具 ServerAgent  (这个工具小编找了很久都没有找到,所以后来使用了nmon工具对服务器的cpu,内存进行监控,具体使用下面介绍) )等插件
具体步骤
  1. 解压,然后把JMeterPlugins-Standard.jar包放在jmeter目录下的\lib\ext目录下。
     3.重启Jmeter,查看线程组和监听器里出现jp开头的即表示加载成功。
   
注:小编的版本是3.1版。推荐和小编的版本保持一致以免因为jmeter版本的原因添加不上去
具体插件的下载使用可以参考这篇博客:https://www.cnblogs.com/runoob/p/9539384.html
 
2.如何批量发送参数不同的报文:
发送报文的时候,偶尔需要某几个参数不同,这个时候可以这样设置
jmeter可以使用两种方式:
1.先把数据放到数据库表里面,然后通过执行sql查询语句来取,具体报文中通过${变量名}来表示
2.先把数据写到一个文件中,然后通过jmeter来批量读取。
具体的教程可以参考这篇博客: http://www.javashuo.com/article/p-pvuflzss-nk.html(第二种方式小编亲使可用)
 
3.生成随机数:
发送报文的时候往往又是需要用到流水号之类的id,这个时候通过上面读取文件的方式就不是很理智了。其实jmeter有帮我们生成随机数的方法.
具体教程可以参考这篇博客: http://www.javashuo.com/article/p-ujvtzgdm-ou.html
 
 

二.性能测试知识科普:

什么是TPS,如何测到某个系统最大的并发量?
答:(TPS=发起的并发数/响应时间)
简单理解:最大的并发可以通过后面介绍基准测试不断加压,然后查看tps,和服务器的使用情况,如果达到tps不在增长了,或是服务器cpu达到最大的消耗标准,你们这个时候所发的线程数就是最大的并发。
具体教程可以参考这篇博客: zhihu.com
 

三.性能测试:

1.基准测试
介绍:目的是检查业务本身是否存在性能缺陷。就是模拟单个用户对不同功能进行做多次操作
方法:使用jmeter发送交易请求,并接收返回结果,在系统无压力情况下重复50次,取业务方法的平均响应时间作为衡量指标。
具体线程组可以这样设置:
 
 
2.单场景性能测试
介绍:选取若干交易,利用一定量的并发进行测试,获取其性能表现,并验证交易是否存在并发性问题。
方法:使用逐层递增的并发压力进行测试,找到单交易的性能拐点。其中部分交易进行特殊要求并发量单交易负载测试:
具体设置方式可以这样:(jmeter如何设置压力逐渐递增参考博客: http://www.javashuo.com/article/p-aqqryuat-gx.html
具体含义:从0开始每次增加20个线程数,每段维持300s,达到最大线程数为80时,维持600s,然后每次递减10个线程,递减过程中每段维持20s。
 
3.稳定性测试
介绍:针对多个交易,使用负载模拟工具编写从客户端向应用服务器发送交易请求,并接收返回结果的脚本,按照峰值负载80%的并发用户量执行性能测试,执行时间长度设置为2小时,检测作为响应时间衡量指标。通过稳定性测试,可以获取多个交易在长时间的负载级别下,最大响应时间、最小响应时间、平均响应时间、资源利用率的稳定性、交易成功率的稳定度。
具体设置方式可以这样:
 

四.nmon工具的使用

nmon是监控服务器cpu,内存,和IO等信息的一个监控工具,需要监控那个服务器就安装到那个服务器。
具体步骤:1.启动监听2.生成文件3.使用解析工具解析文件
nmon监听和解析工具下载地址:  https://pan.baidu.com/s/15AssZPC6VkG-949Y0vNZuw
具体安装使用教程可以参看这篇博客: http://www.javashuo.com/article/p-clzwvbrd-mv.html
注意:1.一定要先查看服务器的发行版本,发行版本是哪个就使用哪个文件
          2.博客中的/usr/local/bin下打开监听是使用类似  ./nmon_x86_linux 而不是./nmon