JMeter性能测试[1]

01 性能测试性质
02 性能测试指标
03 性能测试步骤
04 性能测试JMeter要点介绍
05 JMeter性能测试演示

一、性能测试性质

性能测试就是测试系统有没有性能问题。从时间、空间两方面可进行考虑,即服务端资源是否足够?响应时间是否超时?系统是否足够稳定?

1.1 性能测试的核心原则

基于协议、多线程、场景设计

  • 协议:所有的请求都是基于协议发出去 http,https,udp,tcp
  • 多线程:压力测试是基于多线程原理,通过线程去模拟用户的行为
  • 场景:控制器+定时器设计各种场景满足压测要求。(并发场景 负载场景 稳定性 压力测试)

并发场景(压力测试):是指程序长时间运行的稳定性
例子:程序,在运行1天,1个月,一年关注他们的各项指标是否都在正常指标内,是否会内存溢出,是否出现功能性故障等等。压力测试分为稳定性测试和破坏性测试。

负载场景(负载测试):是指对程序不段增加压力,增加后,程序的性能情况
例子:登录接口,我们先10个用户访问,后100个用户访问,然后1000个用户访问,关注程序的响应时间,所耗资源,直到超时或关键资源耗尽

区别:负载测试是不关注稳定性的,压力测试是关注稳定性的

1.2 性能测试

性能测试是通过自动化的测试工具,模拟正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

系统的性能是一个很大的概念,对一个软件系统而言包括执行效率、资源占用率、稳定性、安全性、兼容性、可扩展性、可靠性等等。

性能测试主要用来保证产品上线或发布后系统的性能满足用户需求,在软件质量保证中起重要作用。

广义:在同一个时间段内,不同的用户使用系统不同的功能,给系统造成的压力。
狭义:在同一个时间段内,不同的用户使用系统相同的功能,给系统造成的压力( LR 就是采用这种狭义的概念)。

1.3 性能测试指标

响应时间 、并发用户数 、吞吐量、系统性能计数器、思考时间

快速记忆法:多、快、好、省、思
多——>支持最大的用户访问量(并发)
快——>响应时间快(延时、响应时间)
好——>越多越快运行持久性越好(稳定性)
省——>资源省(资源使用率)
思——>思考时间

  • 响应时间: 对请求做出响应所需要的时间,是用户感知软件性能的主要指标
    在这里插入图片描述
    由图可知:响应时间包括用户客户端响应时间、请求/响应数据网络传输时间、应用服务器处理时间和数据库系统处理时间

当我们在客户端发出请求时,在传输过程中会有损耗,所以不存在真正意义上的并发。在测试中添加集合点,也不能解决并发问题,集合点只是在客户端模拟并发,到达服务器的时间已经不是并发

  • 并发用户数: 同时访问系统的用户数

用户数:
系统用户数:软件系统注册时用户总数 做系统性能环境时 需要初始化环境,注册的用户数据储存在磁盘,主要跟磁盘有关系。
在线用户数:某段时间内访问的用户数,这些用户只是在线,但是不一定同时做某一件事情。在线用户数跟内存有关 web-session 会话。一个用户在线就得保持session会话,会话占用内存。
并发用户数:某一个事件同时向软件系统提交请求的用户数 场景不一定是同一个 。秒杀 双十一做秒杀 ,查询,付款等,行为相同的并发,行为不同的并发。

并发:用于从业务角度模拟真实用户访问,同时访问
在C/S或B/S结构的应用,系统的性能主要由服务器决定。服务器在大量用户同时访问时,压力最大。
并发用户数是可以通过公式计算而来,并发用户数峰值计算。

  • 吞吐量
    从业务角度看:
    吞吐量可以用:请求数/秒,页面/秒 人数/天 或 处理业务数/小时等单位来衡量
    从网络角度看:
    吞吐量可以用字节/s来衡量
    对于交互式应用来说
    吞吐量指标反映的是服务器承受的压力,能够说明系统的负载能力。

TPS: 每秒事务数 -> 吞吐率
以不同方式表达的吞吐量可以说明不同层次的问题
以字节数/秒方式:表示要受网络基础设施,服务器架构,应用服务器制约等方面的瓶颈。
以请求数/秒方式:主要是受应用服务器和应用代码的制约体现出的瓶颈。

  • 性能计数器: 描述服务器或操作系统性能的一些数据指标,如内存,CPU磁盘等资源使用率
    在这里插入图片描述

  • 思考时间: 消息和消息之间发送的间隔时间
    从业务角度来看,这个时间指用户进行操作时每个请求之间的时间间隔
    在做性能测试时,为模拟这样的时间间隔,引入了思考时间这个概念更加真实的模拟用户的操作。

引入思考时间的原因:
(1)业务需求。比如不能连续发帖,为了防止灌水现象的发生。
(2)更加真实的模拟用户操作行为。在现实环境中,用户在操作的时候,不可能实现没有间隔的连续操作,通常输入用户名,登录密码或者选择查询条件等的操作中是需要有停顿时间输入或者选择。此时加入一些思考时间更接近真实场景,思考时间可以是固定的,也可以是某一范围内的随机值

思考时间对性能测试的结果不会有本质意义的影响,不会因为添加思考时间后,系统该有的那些瓶颈就
不会暴露。

二、性能测试步骤

1. 性能测试准备
1)需求分析
2)明确性能测试目标(指标值)
3)了解软件功能指定测试计划
4)设计编写测试用例
5)执行测试用例并得到测试报

2. 搭建性能测试环境
1)工具选型与准备
2)被测系统环境搭建(服务器,服务版本更新,数据库数据准备)
3)网络配置

3. 性能脚本开发
1)选取协议
2)制作脚本
3)调试脚本
4)验证脚本

4. 性能测试脚本执行
5. 结果分析与调优
1)分析依据:结合图标
2)分析思路:服务器硬件瓶颈-> 网络瓶颈->服务器瓶颈(参数配置,数据库,web服务器) -> 应用瓶颈 (sql语句,数据库涉及,业务逻辑,算法)
3)调优
4)修改脚本或场景
注意: 性能测试的必要条件:性能测试服务器的配置尽可能要和生产服务器配置相近
6. 测试报告与结果追踪

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值