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. 测试报告与结果追踪

JMeter性能测试[1]相关推荐

  1. Jmeter性能测试 入门

    Jmeter性能测试 入门 原文:Jmeter性能测试 入门 Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jme ...

  2. jmeter性能测试入门简介

    Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件.相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工 ...

  3. JMeter性能测试的基础知识和个人理解

    JMeter性能测试的基础知识和个人理解 1. JMeter的简介   JMeter是Apache组织开发的开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常 ...

  4. Jmeter性能测试-GC相关

    2019独角兽企业重金招聘Python工程师标准>>> https://www.cnblogs.com/danqiu/p/6009016.html Jmeter性能测试-GC相关 1 ...

  5. spring cloud微服务间限流,使用jMeter性能测试高并发

    有关网关限流方式查看上一篇博客:spring cloud网关(zuul)限流,使用jMeter性能测试高并发 在网关限流后,有可能有些微服务与网关山的限流不一致,比如网关限流100QPS,而微服务只能 ...

  6. spring cloud网关(zuul)使用RateLimiter限流,使用jMeter性能测试高并发

    原理:使用令牌桶. 固定时间内产生一定数量的令牌,比如设置1秒产生50个令牌,但是1秒内出现了100个用户并发访问,此时只有50个用户能拿到令牌,剩余50直接阻挡,被限流. 核心代码,zuu编写PRE ...

  7. JMeter性能测试,完整入门篇(自己做测试了)

    原文转自:https://blog.csdn.net/lovesoo/article/details/78579547 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件 ...

  8. JMeter性能测试工具简介

    JMeter性能测试工具简介 本文简单介绍了什么是性能测试,以及如何通过Jmeter工具开展性能测试. Jmeter里面的常用元素包含线程组,取样器,监听器,配置元素和一些其他元素 Jmeter原理 ...

  9. jmeter性能测试_JMeter性能测试,接口测试,最全的JMeter资料,共计3.16G

    前言 JMeter是Apache组织开发的基于Java的压力测试工具.JMeter 可以用于对服务器.网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能.另外,JMeter能够对 ...

  10. Jmeter性能测试云平台搭建

    本篇文章主要讲解Jmeter性能测试云平台搭建,这是我们在进行DevOps云平台中性能测试一部分,后期结合docker容器技术进行集群的动态扩展.

最新文章

  1. LINUX 下 WEBlogic集群的搭建-01
  2. Unknown CMake command add_compile_definitions
  3. 利用css‘content实现指令式tooltip文字提示
  4. 使用SQLite数据库存储数据(1)-操作SQLite数据库
  5. [Objective-c 基础 - 2.5] .h和.m文件,点语法,成员变量作用域
  6. 干货!全网最全一套目标检测、卷积神经网络和OpenCV学习资料(教程/PPT/代码)...
  7. ubantu分区知识
  8. 工业嵌入式移动软件设计
  9. 取消桌面上计算机控制板网络三个系统图标,大神处置win10系统桌面图标“计算机 控制面板 网络”怎么不见了的解决方的步骤...
  10. 3D美术人员Technical Artist(TA技术美术)的学习之旅(3)
  11. 服务器操作系统密码忘记,服务器操作系统密码忘记了
  12. 华东理工大学2022计算机考研,2022社会学考研经验贴
  13. 瑞士名表排名介绍及手表品牌识别
  14. java基础之接口_繁星漫天_新浪博客
  15. 博弈论 (入门)CSU2209 记忆化搜索
  16. 物联网开发之智慧农业解决方案
  17. Python汉字转拼音,火车头Python汉字转拼音插件开发
  18. 寒门女孩清华毕业 希望改变家乡教育现状
  19. 华为如何分屏_3199元起!华为MatePad 5G发布:麒麟820芯片
  20. 计算机技术对视力的影响,电子屏幕对视力有哪些影响

热门文章

  1. matlab实现阶跃响应变换,z域的阶跃响应matlab
  2. 抢购活动php,php结合redis实现高并发下的抢购、秒杀功能
  3. 编程语言python用什么笔记本最好_这六种编程语言最适合初学者学习 不骗你!...
  4. python计算趋肤深度
  5. 电气化铁路变电站自动化安全监控传输方案
  6. 【训练题23:中国剩余定理】猜数字 | P3868 [TJOI2009]
  7. 扒一扒龙虎榜,交易公开信息探索
  8. arduino 休眠 节能_认识与实验Arduino的睡眠模式
  9. 初学CAD制图时,不同制图工具的技巧分析
  10. MySQL查询数据后加上百分号%