性能测试总结

性能测试总结
最近在做性能测试的东西,⽹上内容纷杂,以下以个⼈之见做⼀些整理总结。
⼀、什么是性能测试?
性能测试、压⼒测试、负载测试是经常提到的三个概念,这三个名词的含义常常混淆,我们来看⼀下他们的概念解释:
负载测试
系统正常⼯作时所能承受的最⼤负载,也可称为“容量测试”。模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟⽤户的数量)或其它加载⽅式来观察不同负载下系统的响应时间和数据吞吐量、系统占⽤的资源(如CPU、内存)等,以检验系统的⾏为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。负载测试更多地体现了⼀种⽅法或⼀种技术。
压⼒测试
在什么极限情况下系统会崩溃,是否具有⾃我恢复性。在强负载(⼤数据量、⼤量并发⽤户等)下的测试,查看应⽤系统在峰值使⽤情况下操作⾏为,从⽽有效地发现系统的某项功能隐患、系统是否具有良
好的容错能⼒和可恢复能⼒。压⼒测试分为⾼负载下的长时间(如24⼩时以上)的稳定性压⼒测试和极限负载情况下导致系统崩溃的破坏性压⼒测试。在⾼负载情况下来对系统的稳定性进⾏测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。
性能测试
为了获得系统在某种特定的条件下(特定的负载条件下)的性能指标数据。性能测试会在不同负载情况下进⾏。
乍⼀看其实三者之间的区分不⼤,提炼⼀下可以总结为:负载测试是性能测试、压⼒测试所使⽤的⼀种⽅式⽅法。不同的是,压⼒测试的⽬的是为了看在怎样的条件下系统会崩溃以发现各个组件的不⾜,⽽性能测试的⽬的则是为了看不同负载情况下的系统表现,我认为可以说压⼒测试是⼀种极限的性能测试⽅式。
不同的⾓⾊对于性能测试的理解是不⼀样的:
对于⽤户⽽⾔
对于开发者⽽⾔
对于管理员⽽⾔
⽽对于测试⽽⾔,性能是质量保证的⼀部分,需要从以上各个⾓度考虑。
⼆、涉及的基础概念
1. 响应时间
从⽤户发送⼀个请求到⽤户接收到服务器返回的响应数据的时间就是响应时间。冰鲜台
2. 吞吐量
每秒系统处理的请求数量。吞吐量⼤表明系统单位时间能处理的请求数越多。
TPS:Transactions Per Second,每秒事务数。它是软件测试结果的测量单位。⼀个事务是指⼀个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使⽤的时间和完成的事务个数。
QPS:Queries Per Second,每秒查询率。它是⼀台服务器每秒能够相应的查询次数,是对⼀个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
区别及理解:
a. TPS即每秒处理事务数,包括:”⽤户请求服务器”、”服务器⾃⼰的内部处理”、”服务器返回给⽤户”,这三个过程,每秒能够完成N个这三个过程,TPS也就是3;
b. QPS基本类似于TPS,但是不同的是,对于⼀个页⾯的⼀次访问,形成⼀个TPS;但⼀次页⾯请求,可能产⽣多次对服务器的请求,服务器对这些请求,就可计⼊QPS之中。
c. ⼀般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量。系统整体处理能⼒取决于处理能⼒最低模块的TPS值。
d. QPS对应fetches/sec,即每秒的响应请求数,也即是最⼤吞吐能⼒。
3. 错误率
错误请求数量与总请求数量之⽐。负载增加,可能会出现请求处理不过来的情况,错误数量就会不断增加。
4. 资源利⽤率
    定义:指的是对不同系统资源的使⽤程度,通常以占⽤最⼤值的百分⽐来衡量
    通常需要关注的服务器资源如下:
     a. CPU
定义:中央处理器是⼀块超⼤规模的集成电路,是⼀台计算机的运算核⼼(Core)和控制核⼼( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。CPU Load: 系统正在⼲活的多少的度量,队列长度。系统平均负载。
标准:CPU指标主要指的CPU利⽤率,包括⽤户态(user)、系统态(sys)、等待态(wait)、空闲态(idle)。CPU 利⽤率要低于业界警戒值范围之内,即⼩于或者等于75%;CPU sys%⼩于或者等于30%, CPU wait%⼩于或者等于5%。单核CPU也需遵循上述指标要求。CPU
Load要⼩于CPU 核数。
     b. 内存
定义:与CPU进⾏沟通的桥梁。计算机中所有程序的运⾏都是在内存中进⾏的,因此内存的性能对计算机的影响⾮常⼤。
标准:现代的操作系统为了最⼤利⽤内存,在内存中存放了缓存,因此内存利⽤率100%并不代表内存有瓶颈,衡量系统内有有瓶颈主要靠SWAP(与虚拟内存交换)交换空间利⽤率,⼀般情况下,SWAP交换空间利⽤率要低于70%,太多的交换将会引起系统性能低下。
     c. 磁盘吞吐量
定义:磁盘吞吐量是指在⽆磁盘故障的情况下单位时间内通过磁盘的数据量。
标准:磁盘指标主要有每秒读写多少兆,磁盘繁忙率,磁盘队列数,平均服务时间,平均等待时间,空间利⽤率。其中磁盘繁忙率是直接反映磁盘是否有瓶颈的的重要依据,⼀般情况下,磁盘繁忙率要低于70%。
     d. ⽹络吞吐量
定义:⽹络吞吐量是指在⽆⽹络故障的情况下单位时间内通过的⽹络的数据数量。单位为Byte/s。⽹络吞吐量指标⽤于衡量系统对于⽹络设备或链路传输能⼒的需求。当⽹络吞吐量指标接近⽹络设备或链路最⼤传输能⼒时,则需要考虑升级⽹络设备。
标准:⽹络吞吐量指标主要有每秒有多少兆流量进出,⼀般情况下不能超过设备或链路最⼤传输能⼒的70%。耳包
三、常⽤⼯具
1.JMeter
之前⽤JMeter做压⼒测试的总结:
spank站点集合营线程组:⽤来设置并发的数量和模式。是⽤来模拟⽤户并发的组件。JMeter 的每个任务都是⽤线程来处理的。
线程数:要并发的请求数量。
Ramp-Up Period: 在多次时间内把这些并发的请求发送完,单位秒
循环次数:这些并发⼀共要循环测试多少次
调度器:
启动时间:测试计划什么时候启动,启动延迟会覆盖它。当启动时间已过,⼿动运⾏脚本时当前时间也会覆盖它(但启动时间页⾯显⽰不会变)。
结束时间:测试计划什么时候结束,持续时间会覆盖它。
持续时间(秒):测试计划持续多长时间,会覆盖结束时间。
启动延迟(秒):测试计划延迟多长时间启动,会覆盖启动时间。
配置元件:
CSV Data Set Config: ⽤来做参数化
HTTP Cookie 管理器: ⽤来⾃动保存cookie
HTTP信息头管理器:把http header中所有请求都⽤到且相同的属性设置在这⾥。
HTTP请求默认值:把http request中所有请求都⽤到且相同的属性设置在这⾥。
⽤户定义的变量:定义变量,并给出默认值。
Sampler:
HTTP请求:添加要测试发送给服务器的http请求。
通风柜控制
前置处理器:
BeanShell PreProcessor:⽤java编写在http请求执⾏前⼀些参数的设置和修改
后置处理器:
BeanShell PostProcessor:⽤java编写在http请求执⾏后⼀些参数的设置和修改
断⾔:
设置检查当前Request返回的Response需要满⾜的标准,若不满⾜,则认为Request失败。
:⽤来查看测试的结果
⽤表格察看结果:显⽰每个http request执⾏时间和状态
察看结果树:显⽰每个http request执⾏的response和request信息
聚合报告:显⽰整体测试的执⾏情况,平均值等。
2. Apache ab
Apache的ab命令模拟多线程并发请求,测试服务器负载压⼒。 ab命令对发出负载的计算机要求很低,既不会占⽤很多CPU,也不会占⽤太多的内存,但却会给⽬标服务器造成巨⼤的负载。但注意不要⼀次上太多的负载,造成⽬标服务器直接因内存耗光死机,⽽不得不硬重启。
3. LoadRunner
4. Locust
对⽐总结
描述JMeter LoadRunner
架构原理通过中间代理,监控和收集并发客户端的指令,把他们⽣成脚本,再发送的应⽤服务器,再监
控应⽤服务器反馈的过程
同JMeter
LoadRunner安装包⽐较⼤,安装⽐较⿇烦,⼯具
安装简单,解压即可,⽐较灵活本⾝相对⽐较笨重
⽀持的协议⽀持多种协议:HTTP、HTTPS、SOAP、FTP、Database via JDBC、JMS等,但相对LR
射频调制器还是不够全⾯,由于此原因相对来说jemter⽐较灵活,轻便
⽀持的协议⾮常多,⽐较全⾯,但正因此显得⼯具
本⾝⽐较笨重,不够灵活
脚本录制提供了⼀个利⽤本地ProxyServer(代理服务器)来录制⽣成测试脚本的功能,也⽀持
badboy录制再⽣成JMeter脚本
⾃带录制功能强⼤,可直接录制回放
并发模型通过增加线程组的数⽬,或者是设置循环次数来增加并发⽤户
⽀持多种并发模型,通过在场景中选择要设置什么
样的场景,然后选择虚拟⽤户数
分布
式测
⽀持,可设置多台代理,通过远程控制实现多台机器并发压⼒同JMeter
资源
监控
通过JMeterPlugins插件和ServerAgent实现⾃带资源监控功能
报告
分析
通过与Ant集成,⽣成HTML报告⾃⾝⽀持⽣成HTML、Word报告
虚拟
IP
不⽀持⽀持
⽹速
模拟
不⽀持⽀持
扩展
开源,可根据需求修改源码通过扩展函数库实现
学习成本主要是⾃学官⽹上的资料
⽹上资料和相关培训很多,购买正版的话,还有技
术⽀持
四、⼀个完整的性能测试流程
什么时间做
在系统功能测试完成、趋于稳定的情况下再进⾏性能测试。⽤什么做
上述常⽤⼯具。
怎么做
五、参考链接
张紧轮
性能测试基础理论:
基础概念:
Apache ab:
全链路压测:

本文发布于:2024-09-21 10:45:49,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/248849.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:测试   系统   负载   请求   时间
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议