Jmeter

[JM_03]JMeter性能测试基础实战之QPS检测过程解析

2018-07-29  本文已影响473人  Fighting_001

目录结构

一、测试需求
二、测试步骤
    1.添加线程组
    2.添加HTTP请求
    3.设置QPS限制
    4.添加监视器
    5.运行脚本
    6.聚合报告分析

一、测试需求

需求:测试20个用户访问Baidu首页(https://www.baidu.com),当负载达到30QPS时的平均响应时间。

QPS:Query Per Second,每秒查询率。是一台查询服务器每秒能够处理的查询次数,经常用QPS来衡量域名系统服务器性能。

以下先对整个测试流程作梳理,然后再作具体的实战检测:

二、测试步骤

1.添加线程组

Thread Group

Thread Group(线程组),主要包含以下3个参数:

1)线程数:Number of Threads(users),虚拟用户数
1个虚拟用户占用1个进程or线程,需要多少个虚拟用户就设置对应数量的线程数。

2)准备时长:Ramp-Up Period(in seconds),表示设置的虚拟用户数全部启动所需的时间
如:线程数=20个,准备时长=10s ==> 20/10=2 (个/s),即每秒启动2个线程

3)循环次数:Loop Count,每个线程发送请求的次数
如:线程数=20个,循环次数=5次 ==> 总请求数目=20×5=100 (个)
PS:若勾选"forever",则线程会一直发送请求,直至选择停止运行脚本

2.添加HTTP请求

添加HTTP Request HTTP Request--Basic HTTP Request--Advanced

HTTP Request 配置参数

位置 参数名 配置说明
顶部通栏
Name 名称。用于标识一个取样器,建议使用一个有意义的名称
Comments 注释。对于测试没有影响,仅用于记录用户可读的注释信息
Basic
Web Server Protocol 协议。默认为http协议
Server Name or IP 服务器名称/IP。表示HTTP请求发送的目标服务器名称/IP地址
Port Number 端口号。目标服务器的端口号,http请求默认端口为80,https请求默认端口为443
HTTP Request Method 请求方法。发送HTTP请求的方法,如:GET、POST、PUT、OPTION、TRACE、DELETE
Path 路径。目标URL路径(不包括服务器地址和端口),如http//127.0.0.18001/dvwa/的Protocol为http,Server Name为127.0.0.1,端口8001,Path为/dvwa/
Content encoding 内容的编码方式,默认值为ISO8859
Redirect Automatically 自动重定向。选中则表示,当发送HTTP请求后若响应为301/302,Jmeter会自动重定向到对应的新页面,但不会记录重定向的请求和响应内容
Follow Redirects 跟随重定向。默认选中,表示响应为301/302时,会自动跳转到目标页,Jmeter会记录重定向过程中的所有请求和响应
Use KeepAlive 保持连接状态。默认选中此项,表示Jmeter和目标服务器之间使用Keep-Alive方式进行HTTP通信
Use multipart/form-data for POST 发送POST请求时,使用multipart/form-data方法发送
Browser-compatible headers 浏览器头部兼容设置
Parameters 通请求一起发送的URL参数。对于带参数的URL,可将所有参数设置在该表中,每一行代表一个参数值对
Body Data
Files Upload 同请求一起发送的文件。在请求中发送文件,HTTP文件上传可通过此方式模拟
Advanced
Client implementation Implementation 客户端实现:HttpClient4、Java
Timeouts(ms) Connect 连接超时时间(ms)
Response 响应超时时间(ms)
Embedded Resources from HTML Files Retrieve All Embedded Resources 从HTML文件获取所有的有内容资源。默认不选中,若选中则表示发出请求后获得响应的HTML文件内容,会对该HTML进行分析并获取其中的所有资源(图片、flash…)
Parallel downloads.Number
URLs must match 获取页面中特定的资源。根据正则表达式获取匹配的资源
Source address IP/Hostname
Device
Device IPv4
Device IPv6
Proxy Server Server Name or IP 代理服务器的服务器名称/IP
Port Number 端口号
Username
Password
Optional Tasks Save response as MD5 hash 记录服务端响应数据MD5值,不记录完整的响应数据(适用于大数据量测试时可减少取样器记录响应数据的成本)

3.设置QPS限制

JMeter提供了一个非常有用的定时器,常数吞吐量定时器(Constant Throughput Timer),可控制给定的取样器发送请求的吞吐量

image.png

Constant Throughput Timer属性

属性名称 取值or选项 配置说明
Name 定时器名称
Comments 注释
Delay before each affected sampler
Target throughput
(in samples per minute)
目标吞吐量(请求数/60s)。实际填写数值为:QPS×60 [请求数/s]
Calculate Throuthput based on 吞吐量所依赖的计算方式
this thread only 控制每个线程的吞吐量。此时,[总吞吐量=每线程吞吐量×线程数]
all active threads 将设置的目标吞吐量分配在每个活跃的线程(同一时刻同时运行的线程,可能分布在不同的线程组)上,每个活跃线程在上一次运行结束后等待和合理的时间后再次运行
all active threads in current thread group 将设置的目标吞吐量分配在当前线程组每个活跃的线程上(若Test Plan中只有1个线程组,则此时和All active threads选项的效果一致)
all active threads(shared) 每个活跃线程都会在所有活跃线程(分布在所有线程组)上一次运行结束后等待合理的时间后再次运行
all active threads in current thread group(shared) 每个活跃线程都会在所有活跃线程(分布在当前线程组)上一次运行结束后等待合理的时间后再次运行

4.添加监视器

JMeter使用监听器手机取样器记录的数据,并以可视化方式呈现。
如:聚合报告(Aggregate Report),可更为直观查看测试结果

5.运行脚本

RUN(Ctrl+R)

6.聚合报告分析

Term Definition
Label Jmeter中元件的Name属性值
Samples 本次测试一共发出的请求数
(如:模拟10个用户,每个用户循环6次,则总请求数=10×6=60)
Average 平均响应时间(ms)。默认情况是每个Request的平均响应时间;
若使用Transaction Controller,则表示每个Transaction显示的平均响应时间
Median 响应时间的中位数。表示50%用户的响应时间
90%Line 90%用户的响应时间
Min 最小响应时间
Max 最大响应时间
Error% 出现错误的请求数占比[(错误请求数/请求总数)×100%]
Throughput 吞吐量。默认表示每秒完成的请求数(Request per second);
若使用Transaction Controller,则表示每秒处理的事务数(Transaction per second)
Received KB/sec 每秒从服务端接收到的数据量
Sent KB/sec 每秒向服务端发送的数据量

PS:
以上响应时间的单位为:毫秒(ms)

上一篇下一篇

猜你喜欢

热点阅读