资讯详情

JMeter性能测试实战之QPS检测过程解析

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

一、测试要求

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

:Query Per Second,每秒查询率。是每秒查询服务器可以处理的查询次数,常用QPS测量域名系统服务器的性能。

先梳理整个测试过程,再进行具体的实战测试:

二、测试步骤

1.添加线程组

Thread Group

Thread Group(线程组)主要包括以下三个参数:

一个虚拟用户占用一个过程or设置相应数量的线程数需要多少虚拟用户。

如:线程数=20,准备时间=10s ==> 20/10=2 (个/s),即每秒启动两个线程

如:线程数=二十,循环次数=5次 ==> 总请求数目=20×5=100 (个)PS:若勾选"forever",在选择停止运行脚本之前,线程将始终发送请求

2.添加HTTP请求

添加HTTP Request

HTTP Request--Basic

HTTP Request--Advanced

位置 参数名 配置说明
顶部通栏
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
Dvice 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

属性名称 取值or选项 配置说明
Name 定时器名称
Comments 注释
Delay before each affected sampler
Target throughput(in samples per minute) 目标吞吐量(请求数/60s)。实际填写数值为: [请求数/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)

转自:https://www.jianshu.com/p/b22c57ceb52b

】获取精选干货视频教程

】加入疑难问题攻坚交流群

】获取内存溢出问题分析详细文档教程

】获取用java写一个能赚钱的微信机器人

】获取程序员副业攻略一份

标签: ceb螺栓式铝电解电容

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台