性能测试
一、软件性能测试指标来源
测试依据是产品的需求规格说明书,如果用户没有提出性能指标则根据用户需求、测试设计人员的经验来设计各项测试指标。
二、性能测试的目的
目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。
包括以下几个方面:
1.评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。
2.识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。
3.系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。
检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。
4.验证稳定性(resilience)可靠性(reliability):在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。
三、性能测试的种类
性能测试一般包括峰值测试、负载测试、压力测试、强度测试、容量测试、并发测试、可靠性测试、配置测试。
四、测试流程
测试出系统最好的性能值->分析出影响性能的因素及什么影响->以场景为单位,测试出每个场景下的性能
五、性能测试常见的词汇释义
并发用户、用户并发数量
多个用户在同一时刻做相同操作
简称VU ,指的是现实系统中操作业务的用户,在性能测试工具中,一般称为虚拟用户数(Virutal User),注意并发用户数跟注册用户数、在线用户数有很大差别的,并发用户数一定会对服务器产生压力的,而在线用户数只是 ”挂” 在系统上,对服务器不产生压力,注册用户数一般指的是数据库中存在的用户数。
请求响应时间
指客户端发出请求到得到相应的整个过程所用的时间。
事务响应时间
事务可能由一系列请求组成,主要是针对用户而言,主要是为了向用户说明响应时间
事务
用户自定义的一个标识,用来衡量不同的操作所花费的时间,事务时间反映的是一个操作过程的响应时间。
事务=响应时间+传输时间+网络延迟时间
吞吐量
在一次性能测试过程中网络上传输的数据流量的总和。吞吐量/传输时间=吞吐率
吞吐率
指单位时间内网络上传输的数据流量,在特定条件下也可以指单位时间内处理的客户端请求数量,是衡量网络传输性能的重要指标。
TPS(Transaction Per Second)
每秒钟系统能处理的交易或事务的数量,用来衡量系统业务处理能力的重要指标
QPS
Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
TPS
Transactions Per Second的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
RPS
Requests Per Second的缩写,每秒能处理的请求数目。
点击率
每秒钟用户向服务器提交的http请求数。(web)
资源利用率
对不同系统资源的使用情况,如:服务器的CPU利用率、磁盘利用率等
时延
时延是指一个报文或分组从一个网络的一端传送到另一个端所需要的时间。它包括了发送时延,传播时延,处理时延,排队时延。(时延=发送时延+传播时延+处理时延+排队时延)一般,发送时延与传播时延是我们主要考虑的。对于报文长度较大的情况,发送时延是主要矛盾;报文长度较小的情况,传播时延是主要矛盾。
时延是指数据包第一个比特进入路由器到最后一比特从路由器输出的时间间隔。在测试中通常使用测试仪表发出测试包到收到数据包的时间间隔。时延与数据包长相关,通常在路由器端口吞吐量范围内测试,超过吞吐量测试该指标没有意义。
时延就是对一个网址发送测试数据包,看对方网址是否有响应并统计响应时间,以此测试网络。
六、总结
1.系统的性能由TPS决定,跟并发用户数没有多大关系。
2.系统的最大TPS是一定的(在一个范围内),但并发用户数不一定,可以调整。
3.建议性能测试的时候,不要设置过长的思考时间,以最坏的情况下对服务器施压。
4.一般情况下,大型系统(业务量大、机器多)做压力测试,10000~50000个用户并发,中小型系统做压力测试,5000个用户并发比较常见。