邢台做网站公司排名,网站收录突然减少,北京网站优化多少钱,福建seo顾问根据学习全栈测试博主的课程做的笔记
一、说明
若未特别说明#xff0c;涉及术语都是jmeter来说#xff0c;线程数#xff0c;就是jmeter线程组中的线程数 二、软件性能是什么
1、用户关注#xff1a;响应时间
2、业务/产品关注#xff1a;响应时间、支持多少并发数、…根据学习全栈测试博主的课程做的笔记
一、说明
若未特别说明涉及术语都是jmeter来说线程数就是jmeter线程组中的线程数 二、软件性能是什么
1、用户关注响应时间
2、业务/产品关注响应时间、支持多少并发数、对业务的处理能力
3、运维关注响应时间是否有超时的请求、资源利用率、稳定性等
4、dba关注响应时间慢sql或者死锁关注数据库的资源利用情况表空间的资源使用情况
5、开发关注:响应时间(代码逻辑的处理快慢特别是锁锁的力度不合理导致后来的请求响应时间长
6、架构师关注架构是否涉及合理是否具备扩展能力
7、测试关注关注6类用户关注的响应时间、处理能力TPS、稳定性、什么时候进行扩展等
三、几个性能测试相关得概念
1、 负载测试不同客户端线程数下服务器处理的能力 客户端线程数下即就是jmeter下的线程数 模拟客户端向服务器发送压力 2、容量测试:强调的是容量测试、业务混合容量tps当前支持的最大容量、对未来容量的规划 数据库容量即就是数据库的数据量 3、递增测试强调的是递增连续递增加压看服务器的处理能力
4、 强度测试用大量的客户端并发线程看服务端表现情况
5、性能测试在某个特点的硬件、软件、网络设计场景模拟并发请求通过监控分析进行调优达到性能测试目标
6、总结 前面的四种强调的是不同的性能测试方式性能测试场景的设计。可以将四种测试设计在里面。负载测试场景就是阶梯加压每个阶梯对应的就是客户端的线程数对应的负载再测一个最大值。 递增测试连续阶梯加压。 强调测试连续阶梯加压测试最大值。 四、性能测试中的关键术语
1、 并发、线程、tps
1.1公司要求500并发、500并发表示什么
1.2并发分类、以及线程、tps的关系
1.2.1绝对并发–狭义表示服务端某一个时刻物理的请求数。处理的请求数和什么有关系 如某一个服务器是16c64g,某一个时刻处理多少请求和逻辑cpu有关系实际测试时服务端做并发。 1.2.2相对并发-广义/tps 某一个时间段内处理的请求数相对并发才是真正服务器的处理能力。不是站在服务器逻辑cpu的角度。 平时的并发就是相对并发就是tps。 tps就是每秒钟处理多少个请求1s是时间段。 为什么并发是tps 解释并发tps需要站在客户端和服务端的视角下。 上面两个并发仅站在服务端的角度tps是要站在客户端和服务端的视角下。把并发分为客户端并发和服务端并发。 很多都是认为客户端jmeter处的线程数就是并发数.,其实没啥问题但是需要认定为客户端并发而并不是服务端并发。还把并发分为客户端并发和服务端并发。 1.2.3客户端并发 此处的jmeter中的线程数是模拟大量请求对服务端产生压力,此时的数值在性能测试中是没有参考意义的。 此处并不能说明值设计的越大性能就越好。而是需要看服务器的处理情况(服务器的tps、成功率、响应时间 一般说的并发说的是服务端的并发。 并发不等于线程数,为什么? 举例若每秒的线程数为10每个线程数1s内可以完成10个事务循环发10次请求。此处完成的请求是100个看性能需要看服务端而不是客户端服务端相当于是10个线程完成了10个事务循环发了10个事务的请求服务端都进行了处理。即并发–100则tps是100。 线程是否是用户 10个线程不等于10个用户(虚拟用户 领导要求500并发并不是说jmeter客户线程数设置就是500.jmeter的线程数是可以随意设置的最好的就是连续加压可以看到每个阶梯的tps使用情况再看监控。 每个线程1s阶梯加压到50个线程时tps就是500。 前提tps服务器处理请求随着jmeter线程数增加而线性增加。 压测不仅要压目标tps还需要压测出最大的tps. 50个线程已经达到500目标tps。假设在200个线程时线程增加时最大的目标tps则为2000继续加压时tps则下降这时已经超过服务器的最大处理能力请求都在排队响应时间增长。 所以如果一个系统的响应比较快1个线程1s时间内可以完成10个事务需要设置的线程数是小于客户端jmeter的线程数。 并发客户端的并发只是为了模拟用户给服务端加压力他是没有参考意义的是需要服务端的并发,服务端的并发是tps 线程是否用户(虚拟用户 线程不等于用户为什么 因为线程做了用户的动作线程的每一次迭代才称为用户即jmeter处的循环次数发一次请求服务端给一次响应这个是迭代。 注册场景 1s内1个线程可以发10次请求注册时用户名需要不一样此时假设已经参数化并且参数是足够多1个线程1s可以发10次请求就相当于10个用户进行注册10个线程就是发100个请求即就是100个用户进行注册100个用户用户名不同。并发用户数此时是100tps100压力线程数是10. 可以这么理解 线程只是执行用户的操作线程的每一次迭代是模拟了用户的操作。 事务关注流程,整个流程就为请求若不关注流程一个请求就是一个事务就是 1.2.4服务端并发站在业务层面站在服务器的处理能力进行谈并发 客户端并发只是为了向服务端发送压力并没有什么参考意义。 服务端并发的前提是需要保证事务的成功率具体是多少看行业要求涉及到金钱事务的成功率是100%涉及到其他一般是项目组定(如99.9% 1.2.5线程和tps的瞬时计算 线程和tps的瞬时计算并不是整个的计算 此处表面3个线程1s可以完成5次请求3个线程即就是3*515 tps15总请求数/并发时间15/1s3531000ms/200ms 总请求数/并发时间线程数*(1000/rt每个请求的响应时间) rt是瞬时值 2、QPS和TPS的区别 QPSQuery Per Second:每秒钟的查询 TPSTransaction per Second)每秒钟的处理事务数 3、响应时间rt判断业务快慢的指标 正常的性能压测响应时间都是从低到高 刚开始压力小时服务器都能进行处理响应也比较快。随着压力越来越大处理不过来请求排队。 3.1rt增加、表示开始出现性能瓶颈
3.2补充瓶颈分析 此处简单介绍后面详细解释 3.2.1简单架构 对于简单架构一般是通过服务器的资源情况进行判断是否出现瓶颈。 3.2.2复杂架构微服务 对于复杂架构 就需要进行去分解响应时间看什么地方耗时多。 对时间的分解的方式日志打点计时器,通过日志去查看请求的时间 对于微服务最后是链路监控工具skywalking) 4、 线程、tps、rt三者的关系
4.1线程、tps、rt三者关系图 jmeter线程数增加发送的请求增加刚开始都能处理随着增加线程逐渐增加服务器的资源利用率就会增加cpu、mem此图tps随着线程数的增加是线性增加到了一定阶段后服务器出现了瓶颈后响应时间开始增加tps达到最大值后tps增幅趋于平稳或者下降 4.2连续阶梯加压场景设计图这个是用插件实现的 图上斜的就是启动线程启动多少线程 启动后又可以平稳的运行一段时间 五、性能指标 怎么衡量系统的性能以下指标 1、tps、rt、成功率 tps是用来衡量服务器的处理能力,而在jmeter中就是压测那段时间内总的请求数/压测的时间tps rt:jmeter中有平均响应时间、90%、95%、99%的响应时间 成功率也有进行统计。 2、也可以加上技术指标sql耗时不能超过200msfgc在多少时间范围内不能超过多少次服务器资源使用情况