欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Jmeter压力测试入门

程序员文章站 2022-07-07 12:28:04
...

1 新建测试计划

启动Jmeter,点击 File ->New,新建测试计划

2 添加 Thread Group,控制模拟多少用户

右键点击 Test Plan > Add > Threads(Users) > Thread Group

Jmeter压力测试入门

线程组主要包含三个参数:线程数、准备时长(Ramp-Up Period(in seconds))、循环次数

  1. Number of Threads(users): 一个用户占一个线程, 200个线程就是模拟200个用户

  2. Ramp-Up Period(in seconds): 设置线程需要多长时间全部启动。如果线程数为200 ,准备时长为10 ,那么需要1秒钟启动20个线程。也就是每秒钟启动20个线程。

  3. Loop Count: 每个线程发送请求的次数。如果线程数为200 ,循环次数为10 ,那么每个线程发送10次请求。总请求数为200*10=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。

3 添加HTTP Request,构造请求

右键点击 Thread Group > Add > Sampler > HTTP Request

取样器(Sampler)是与服务器进行交互的单元。一个取样器通常进行三部分的工作:
1. 向服务器发送请求
2. 记录服务器的响应数据
3. 记录相应时间信息

Jmeter压力测试入门

一个HTTP请求有着许多的配置参数,下面将详细介绍:

公共选项卡

  1. Name:本属性用于标识一个取样器,建议使用一个有意义的名称。
  2. Comments:对于测试没有任何作用,仅用户记录用户可读的注释信息。

Basic 选项卡

  1. Protocol : 向目标服务器发送HTTP请求时的协议,可以是http或者是https ,默认值为http 。
  2. Server Name or IP :HTTP请求发送的目标服务器名称或IP地址。
  3. Port Number:目标服务器的端口号,默认值为80 。
  4. Method:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
  5. Path:目标URL路径(不包括服务器地址和端口)
  6. Content encoding :内容的编码方式,默认值为iso8859
  7. Rediret Automatically:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 自动重定向到新的页面。
  8. Use keep Alive : 当该选项被选中时,jmeter 和目标服务器之间使用 Keep-Alive方式进行HTTP通信,默认选中。
  9. Use multipart/from-data for POST :当发送 POST 请求时,使用Use multipart/from-data方法发送,默认不选中。
  10. Parameters : 在请求中发送URL参数,对于带参数的URL ,jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的 name=value)。
  11. Body Data: 直接写文本格式作为参数
  12. Files Upload:在请求中发送文件,通常,HTTP文件上传行为可以通过这种方式模拟。

Advanced 选项卡:

  1. Embedded Resources from HTML Files:当该选项被选中时,jmeter在发出HTTP请求并获得响应的HTML文件内容后,还对该HTML进行Parse 并获取HTML中包含的所有资源(图片、flash等),默认不选中,如果用户只希望获取页面中的特定资源,可以在下方的Embedded URLs must match 文本框中填入需要下载的特定资源表达式,这样,只有能匹配指定正则表达式的URL指向资源会被下载。
  2. Save response as MD5 hash :选中该项,在执行时仅记录服务端响应数据的MD5值,而不记录完整的响应数据。在需要进行数据量非常大的测试时,建议选中该项以减少取样器记录响应数据的开销。

4 添加统计报表

右键点击 Thread Group > Add > Listener > Aggregate Graph
Jmeter压力测试入门

5 运行测试

Jmeter压力测试入门

聚合报告的解释:
Label :各个模拟测试的名称
Samples :各个测试的样本总数
Average :每个请求的平均响应时间
Median :中值,即50%请求的平均响应时间
90% Line :90%请求的响应时间
Min :最小响应时间 ,Max :最大的响应时间
Error% :错误响应的概率。即无法响应的概率。
ThroughPut :吞吐量 – 默认情况下表示每秒完成的请求数(Request per Second)。
KB/Sec :每秒从服务器端接收到的数据量。

6 使用参数

6.1 新建参数文件,内容如下

[ahcj@localhost jmeter-test]$ vim /home/ahcj/jmeter-test/params.csv

Hello,Beijing
Welcome,Shanghai
Beautiful,Anhui
Nice,Liuan

6.2 添加参数文件到测试计划

右键点击 Thread Group > Add > Config Element > CSV Data Set Config
填写如下内容

Filename: /home/ahcj/jmeter-test/params.csv
Variable Names: hello,city

随后可以使用${hello} ${city} 引用 csv文件第一列和第二列内容

Jmeter压力测试入门

6.3 添加 View Results Tree

右键点击 Thread Group > Add > Listener > View Results Tree

6.4 修改 Http Request

修改 Http Request 中的 Path为

/baidu?wd=${hello}+${city}

重新运行,可以看到我们发出的请求已经携带了自定义参数

Jmeter压力测试入门

相关标签: 压力测试