首页 > 其他分享 >性能测试介绍

性能测试介绍

时间:2023-07-01 12:46:52浏览次数:36  
标签:压测 性能 介绍 并发 tps 测试 线程

1. 简介

1.1 说明

如未特殊说明,涉及工具的理论都是基于jemter来说的

问题 性能测试能不能模拟客户操作,发现服务器性能问题?  很难

1.2 什么是软件性能

从相关角色的角度关注点来看

用户:只关心操作快慢

业务或产品:关注产品快慢,响应时间

运维:关注快慢、响应时间、监控各种资源、确保生产环境稳定性

dba:关注数据库各种资源利用率 、死锁、慢sql

开发:关注响应时间、代码有没有性能问题,有没有不合理的逻辑导致响应时间慢

架构:关注架构方面的问题,扩展性问题,高并发、高可用、稳定性

测试关注:以上所有问题

1.3 如何理解性能测试时的各种测试

性能测试:根据性能需求、业务模型,设计性能测试方案,准备性能测试数据,开发脚本,设计性能测试场景和性能监控,以合适的加压方式来进行压测同时监控去发现性能问题,根据监控去分析定位,最后优化性能(TPS、响应时间、资源使用率),达到性能需求。

负载测试:不同的客户端线程对服务端发起压力,看服务器处理情况

容量测试:是系统承受超额的数据容量(如数据库、业务容量),测试系统是否能够正常处理,通常和数据库有关。

递增测试:不断加压,在系统各项指标合理的情况下,找出系统最大tps

强度测试:测试系统的极限,最大能测多少

等等

2.性能测试现状

压测目标:不明确

执行压测:不专业

性能报告:无参考价值

例如:

1.领导说我们系统有几百个微服务,某某给我做个性能测试,然后你就去用jmeter压测了一下,给了一个结果,这不叫压测,连门都没入

2.领导说我们系统有几百个微服务,某某给我做个性能测试,你是用命令监控了服务器资源,数据库,压力机,给出了慢sql,索引问题,说tps低,io有问题。粗略定位到了,没给出调优建议,让开发自己去解决。这只是入了门,算初级性能测试。

3,领导说我们系统有几百个微服务,某某给我做个性能测试,你用grafana搭建了监控环境,通过监控环境,给出了慢sql,给出了索引有问题,定位到了业务方法层面,对配置给出了调优建议。这算中级性能测试。但面对微服务,复杂的系统,不能精准定位。

4.领导说我们系统有几百个微服务,某某给我做个性能测试。你搭建了全链路监控环境,定位到了慢sql,索引问题,给出了优化建议。通过链路监控精确定位到中间件问题调优了中间件,精确定位到了代码层级的问题,给出了优化建议。这才算是真正的性能测试。

3.一些概念

3.1 什么是并发?(线程?tps?)和用户、并发用户数、服务端线程池大小的区别是?

并发分为绝对并发和相对并发

绝对并发:同一时刻对系统发起的同一请求的数量(单场景)

相对并发:一个时间段内对系统发起的请求数

线程:一个客户端请求就是一个线程

tps:每秒服务器能处理成功的事务数(某一时刻tps=处理总请求/并发时间=线程数*(1000/rt))

用户:有业务含义的tps

并发用户数:有业务含义的tps的大小

压力线程、服务端线程池大小:服务器能同时处理的业务数

线程是否是虚拟用户?否,线程的每次迭代才是一个用户

压力线程数是否是并发用户数?否,压力线程数是客户端线程数,具有业务含义的并发就是并发用户数

rt:响应时间,压测时间从低到高(响应时间变长)

3.2 再说说其它几个ps:qps、tps、rps、hps的区别

QPS(Query Per Second 每秒查询数):有些公司只做查询业务的压测,这样的话tps=qps

RPS(Request Per Second 每秒请求数):客服端每秒能发送的请求数,无意义的指标

HPS(Hits Per Second 每秒点击数):一次请求可能包含多次点击

TPS(Transaction Per Second 每秒事务数):衡量服务器的处理能力,通常测试人员理解的并发

3.3 tps,rt,三者的关系

TPS随线程数线性增加,一段时间后,TPS增加速度越来越小,可能出现TPS下降,rt变得越来越长。需要找到性能拐点,这个拐点处就是最优tps

3.4 性能指标

tps、rt、成功率,服务器资源使用率

并发度=tps/在线用户数

活跃度=在线用户/存量用户,活跃度一般又分为日活跃度,周活跃度,月活跃度

3.5 准确理解术语

参数化:

  • 数据库不允许提交重复值(唯一性约束)
  • 避免查询缓存
  • 模拟真实场景需要不同用户数据

关联:下一个请求的入参依赖上一个请求的返回值

断言/检查点:判断一个请求是否成功,需要用到断言/检查点

吞吐量/吞吐率:时间段内传输的数据量/每秒吞吐量

定时器/思考时间:为了模拟用户的等待时间(不建议加)

集合点:模拟大量用户同时向服务器发起请求(秒杀、抢购)

标签:压测,性能,介绍,并发,tps,测试,线程
From: https://www.cnblogs.com/lgs-tech/p/17519114.html

相关文章

  • 电池充放电测试仪行业市场调查及策略分析报告2023-2029
    2023-2029全球电池充放电测试仪行业调研及趋势分析报告2022年全球电池充放电测试仪市场规模约亿元,2018-2022年年复合增长率CAGR约为%,预计未来将持续保持平稳增长的态势,到2029年市场规模将接近亿元,未来六年CAGR为%。从核心市场看,中国电池充放电测试仪市场占据全球约%的市场份......
  • 为什么面试官这么爱问性能优化?
     笔者是一个六年前端,没有大厂经历,也没有什么出彩的项目,所以今年以来,前端现在这种行情下并没有收到多少面试,但是为数不多的面试中,百分之九十都问到了性能优化的问题,而且问题都出奇的一致:平时的工作中你有做过什么性能优化?对于这个问题其实我的内心os是(各位轻喷~):你们怎么都这么爱问......
  • 碰撞测试(附源码)
    这里没有办法展示动态效果,具体动态效果请复制到浏览器并在浏览器控制台上查看具体效果:CSS部分:<style>*{margin:0;padding:0;}div{position:absolute;top:0;left:0;......
  • 网络安全 | 密码基础知识介绍
    概述密码介绍安全问题保密性:对发送的消息进行获取完整性:对发送的消息进行篡改身份伪造:对发送的主体身份进行篡改,a发的消息,篡改为b发的行为抵赖:对发送的消息进行否认,丧失行为的可追溯性密码技术保密性完整性真实性不可否认性密码发展史密码起源:狼烟、虎符,基于“密语”古典密码:凯撒密......
  • 量子力学介绍——揭开自然界最微妙的秘密
    亲爱的读者,欢迎来到这个独特而神奇的旅程,这是一个关于量子力学的系列文章。我们将一同探索这种改变了我们对自然世界理解的理论,这是一个我们只能通过数学和实验来理解的微观世界。量子力学,这个名字看起来可能有些吓人,它可能让你想起了复杂的数学公式和难以理解的实验。但是请不......
  • 开源通用高性能的分布式id序列组件
    原文地址:https://ntopic.cn/p/2023062101/Gitee源代码仓库:https://gitee.com/obullxl/sequence-jdbcGitHub源代码仓库:https://github.com/obullxl/sequence-jdbc分布式id序列说明业务数据的存储,少不了数据记录的id序列。id序列(或称序列)的生成方式有很多种,比如当前时间戳、......
  • SAP HANA性能优化与分析(持续更新中)
    本文描述了可以用来识别和解决特定性能问题的措施,并向您展示了如何在以下方面提高SAPHANA数据库的性能:•主机资源(CPU、内存、磁盘)•数据结构的大小和增长•事务性问题•SQL语句性能•安全性、授权和许可•配置......
  • webservice 入门介绍
    WebService是帮助多个应用程序与平台和编程语言之间以独立的方式互相通信的标准化技术。它是利用标准XMLmessaging(主要SOAP)技术,可以访问网络上的其他计算机的记述多种操作的软件接口。此接口主要由WSDL(WebServiceDescriptionLanguage)记述,可以处理多种多样的系统运作。......
  • Debug Golang源码中的单元测试
    goland配置如上,既可以debuggolang源码中的单元测试。......
  • 关于Linux系统-内核-live-patching-的介绍
    关于Linux,我们可以使用RedHatEnterpriseLinux内核实时修补解决方案在不重启或者重启任何进程的情况下对运行的内核进行补丁先看一下官网的一段关于Applyingpatcheswithkernellivepatching的介绍:YoucanusetheRedHatEnterpriseLinuxkernellivepatchingsol......