【JMeter】——压力测试框架

一、概述(百度百科)

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。

二、下载

1、由于JMeter是基于java开发,首先需要下载安装JDK (目前JMeter只支持到Java 8,尚不支持 Java 9)(略过)

2、JMeter下载

  • 官网下载地址:http://jmeter.apache.org/download_jmeter.cgi
  • 下载最新的apache-jmeter-5.1.1.zip
  • 下载完成后解压zip包
  • 启动JMeter 
    双击JMeter解压路径(apache-jmeter-3.3\bin)bin下面的jmeter.bat即可 

【JMeter】——压力测试框架_第1张图片

三、测试实例

1、添加线程组

【JMeter】——压力测试框架_第2张图片

2、配置线程组参数

【JMeter】——压力测试框架_第3张图片

线程组参数详解: 
1. 线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。 
2. Ramp-Up Period(in seconds)准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为10,准备时长为2,那么需要2秒钟启动10个线程,也就是每秒钟启动5个线程。 
3. 循环次数:每个线程发送请求的次数。如果线程数为10,循环次数为100,那么每个线程发送100次请求。总请求数为10*100=1000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。 
4. Delay Thread creation until needed:直到需要时延迟线程的创建。 
5. 调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远) 
持续时间(秒):测试持续时间,会覆盖结束时间 
启动延迟(秒):测试延迟启动时间,会覆盖启动时间 
启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它。 
结束时间:测试结束时间,持续时间会覆盖它。

3、添加HTTP请求

【JMeter】——压力测试框架_第4张图片

【JMeter】——压力测试框架_第5张图片

Http请求主要参数详解:

  1. Web服务器 
    协议:向目标服务器发送HTTP请求协议,可以是HTTP或HTTPS,默认为HTTP 
    服务器名称或IP :HTTP请求发送的目标服务器名称或IP 
    端口号:目标服务器的端口号,默认值为80 
    2.Http请求 
    方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。 
    路径:目标URL路径(URL中去掉服务器地址、端口及参数后剩余部分) 
    Content encoding :编码方式,默认为ISO-8859-1编码,这里配置为utf-8
  2. 同请求一起发送参数 
    在请求中发送的URL参数,用户可以将URL中所有参数设置在本表中,表中每行为一个参数(对应URL中的 name=value),注意参数传入中文时需要勾选“编码”

4、添加查看结果树

【JMeter】——压力测试框架_第6张图片

这时,我们运行Http请求,修改响应数据格式为“HTML Source Formatted”

【JMeter】——压力测试框架_第7张图片 5、添加用户自定义变量

【JMeter】——压力测试框架_第8张图片

【JMeter】——压力测试框架_第9张图片 6、添加响应断言

右键点击“测试接口” -> “添加”-> “断言” -> “响应断言” 

【JMeter】——压力测试框架_第10张图片

【JMeter】——压力测试框架_第11张图片

7、断言结果

右键点击“测试接口” -> “添加”-> “监听器” -> “断言结果” 

【JMeter】——压力测试框架_第12张图片

【JMeter】——压力测试框架_第13张图片

8、添加聚合报告

【JMeter】——压力测试框架_第14张图片

【JMeter】——压力测试框架_第15张图片 这样,我们就完成了一个完整Http接口的JMeter性能测试脚本编写。

四、执行测试实例

1、配置线程组

【JMeter】——压力测试框架_第16张图片

2、执行查看结果

【JMeter】——压力测试框架_第17张图片

聚合报告参数详解: 
1. Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值 
2. #Samples:请求数——表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100 
3. Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间 
4. Median:中位数,也就是 50% 用户的响应时间 
5. 90% Line:90% 用户的响应时间 
6. Min:最小响应时间 
7. Max:最大响应时间 
8. Error%:错误率——错误请求数/请求总数 
9. Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数 
10. KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

你可能感兴趣的:(JMeter,TECHNOLOGY)