Jmeter 性能测试工具简介

一)性能的定义

性能:通过一系列指标来衡量系统的及时性、处理能力等特性。最重要的两个重要指标是响应时间和吞吐量。

二)性能的重要指标

1. 响应时间

    • 响应时间的重要性

响应时间与用户体验息息相关,响应时间对产品有很大的影响。响应时间越短,性能表现越好

    • 响应时间的度量方式

响应时间是指从客户端发起一个请求开始,到客户端接收到从服务端返回的最后一个字节结束,这个过程所耗费的时间。包括网络传输时间和服务处理时间。

2.吞吐量

    • 吞吐量的度量方式

系统在单位时间内正确处理的客户端请求的数量

tps:系统每秒/单位时间内处理的事务数

qps:系统每秒/单位时间内处理的请求数

kb/s:服务端每秒向客户端返回的数据量

3.并发用户数

系统可以同时承载的正常使用系统功能的用户的数量

三)性能测试的重要性

1.提前识别性能缺陷

系统存在性能缺陷可能导致系统瘫痪不可用。性能测试能提前识别性能缺陷,规避性能风险,避免出现瘫痪。

2.提前识别稳定性缺陷

系统存在稳定性缺陷,短时间内正常运行,长时间运行会出错。性能测试能检验产品的稳定性,保障产品长时间无故障运行。

3.验证系统是否能支撑预期用户量

系统无法支撑过量用户访问时,当过量用户访问系统时,系统出错甚至崩溃,大大伤害用户体验。性能测试能模拟大量用户访问,验证系统是否能支撑预期用户量,如果不能,提前进行性能优化,避免上线后无法支撑。

四)性能测试的过程

1.制定预期目标

    • 系统每秒支撑 1w 用户提交数据
    • 提交数据响应时间不超过2s 

2.需求分析

    • 明确测试对象(对访问频繁的页面进行性能测试,比如活动页、用户反馈页)
    • 明确测试内容(吞吐量、响应时间)

3.工具模拟

    • 模拟 1w 用户提交数据
    • 得到测试数据

4.测试分析

    • 达到预期:每秒成功完成 1w 用户提交订单且提交订单响应时间不超过 2s
    • 未达到预期:1w 个用户提交订单,出现大量失败或提交订单响应时间大于 2s

五)Jmeter 

1.简介

是一个基于Java的性能测试工具,免费、开源、跨平台、简单易上手。

2.安装

mac版

下载:https://pan.baidu.com/s/1b11U70,解压后执行bin文件夹下 Jmeter.sh 即可。

3.使用

(1)配置代理服务器

    • Jmeter代理服务器

端口:jmeter代理服务器监听的端口

目标控制器:测试计划–线程组,录制下来的请求会保存在

分组:每组包含一个控制器,将录制下来的请求进行适当的分组。

包含模式:请求的 url 符合正则表达式才会被录制

排除模式:压测时不会压测静态资源(css、jpeg等),可以用来排除该类资源的请求。

    • 本地代理服务器:

端口号与jmeter端口一致,127.0.0.1。

(2)录制请求 -- 测试组件简介

  • tips:
    1. 浏览器由缓存机制,如果已经打开过某一页面,在次打开该页面时不会发送某些资源的请求,会导致漏掉某些请求,所以录制请求前一定要清理浏览器缓存。
    2. 录制请求时不能过快,确保每一个操作的请求全部发送完毕再进行下一个操作,避免只有一个简单控制器,不方便管理。
    • 线程组

线程组是 Jmeter 最核心的测试组件,用来管理执行测试脚本的Jmeter线程(Jmeter线程是用来执行测试脚本里面的操作)

线程数:Jmeter 线程的数量,决定了Jmeter 使用多少个线程同时执行测试脚本,也就是并发数,可以用来模拟并发用户数。

Ramp-Up Period:启动所有线程花费的时间,防止瞬间给被测服务器施加过大压力,让压力平缓的增加。eg:线程数为10,Ramp-Up Period为10,代表10s的时间启动10个线程,每秒钟增加一个线程。

循环次数:每个线程重复执行多少次。

调度器:详细设置线程调度的启动和结束时间。

    • 简单控制器

简单控制器是一个逻辑上的归纳,可以将每一个请求操作录制在一个独立的简单控制器中,方便管理。eg:打开主页过程中,浏览器向服务端发送的请求。

    • 采样器

用来告诉Jmeter向服务端发送一次请求,并等待服务端的响应。请求的url、协议、参数等都在采样器中设置。最常用的采样器就是HTTP请求。

HTTP请求

    • 断言

判断采样器的请求响应结果是否正确。。

最常用的是响应断言,可以判断服务端返回的响应码、响应文本、响应头等。

apply to:指定断言的作用范围,一般选择对当前采样器生效。

要测试的相应字段:测试要检查的目标。(响应文本:服务端返回数据;响应代码:http返回码;响应信息:http响应信息)

    • CSV Data Set Config

可以将数据参数化,方便使用不同的数据进行测试。本地准备 txt 文件,在 CSV Data Set Config 中正确配置即可。

Filename:本地文件路径。

Variable Names:文件的每一列的取的变量名。eg:username,password

Delimiter:文件每一列使用的分隔符。

使用时直接取  ${username},${password},线程会顺序读取文件中的每一行。

    • HTTP Cookie 管理器

为http请求进行cookie管理。可以模拟浏览器的行为,自动存储服务器返回的的cookie信息,后续再向这个服务器发送请求会自动带上相应的cookie。 Cookie 管理器为每个Jmeter线程管理独立的cookie。

4.测试结果收集

(1)监听器

Jmetr 提供各种监听器来收集、展示、保存测试结果。最常用的三种:查看结果树、聚合报告、响应时间曲线。

(2)查看结果树

查看结果树用来记录每个请求的详细信息,开销较大,可以根据测试需求酌情使用。

a. 请求列表:绿色为成功,红色为失败。判断结果依据断言是否成功。

b, 取样器结果:保存相应请求的数据。

  • Thread Name:执行请求的线程组
  • Sample Start:请求的触发时间
  • Load Time:请求从发出到接收到完整返回结果的时间,即响应时间。
  • Latebcy:请求从发出到开始接受返回结果的时间,一般略小于 Load Time。
  • Connect Time:Jmeter 和服务器建立连接花费的时间。
  • 返回头信息

c. 请求、响应数据

(3)聚合报告

为每种请求分别统计聚合结果,包括请求执行的次数、响应时间、错误率等。

Label:请求名称

Sample:请求次数

Avarge:平均响应时间

Median:响应时间的50值

90%Line、95%Line、99%Line:响应时间的90、95、99值

Min、Max:响应时间的最小值和最大值

Error:错误率,请求失败率。

Throughput:吞吐量

KB/sec:请求每秒传输的字节数

(4)响应时间曲线

可以记录每个请求的响应时间趋势图

Interval:对设置的时间内的响应时间取平均值进行展示

过滤标签:eg:^(210).*?

六)压测执行方案

1.测试执行

使用梯度压力测试,并发用户数梯度增加,得到全面的测试数据,更好的分析性能测试结果。

2.压测停止时间

吞吐量不再增加,或增加很少,或出现下降情况。

 

 

压力测试基础知识&Jmeter工具使用简介

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值