在软件性能测试中有很多问题时常发生,面对问题如何才能快速解决这就要考验软件测试人员的知识储备量了。今天我们聊聊软件性能测试常见问题,比如说think_time的作用是什么?常见的施压模型有哪几种?性能测试的应用领域有哪些?这些问题在软件测试中经常会出现,您是否可以从容解决呢?下面我们就来具体看看这些问题的答案,按照下面提供的思路来定位和解决问题应该会对您有一定的帮助。
一、think_time的作用是什么?
在业务基准测试中模拟用户的思考时间,在确定性能测试结果可信后,如果发现以下问题,按下面提供的思路来定位问题。
1、响应时间不达标:查看事务所消耗的时间主要在网络传输还是服务器,如果是网络,就结合Throughput(网络吞吐量)图,计算带宽是否存在瓶颈,如果存在瓶颈,就要考虑增加带宽,或对数据的传输进行压缩处理;如果不存在瓶颈,那么,可能是网路不稳定导致。如果主要时间是消耗在服务器上,就要分别查看web服务器和数据库服务器的CPU,内存的使用率是否过高,因为过高的CPU,内存必定会造成响应时间过长,如果是web服务器的问题,就把web服务器对应上对应的用户操作日志取下来,发给开发定位;如果是数据库的问题,就把数据库服务器对应上对应的日志取下来,发给开发定位。
二、常见的施压模型有哪几种?
1、并发模式(虚拟用户模式) 并发是指虚拟并发用户数,从业务角度,也可以理解为同时在线的用户数。从客户端的角度出发,摸底业务系统各节点能同时承载的在线用户数,可以使用该模式设置目标并发,也就是jmeter工具里面的线程数 2、RPS 模式(吞吐量模式) RPS(Requests Per Second)是指每秒请求数。RPS 模式即“吞吐量模式”,通过设置每秒发出的请求数,从服务端的角度出发,直接衡量系统的吞吐能力。
三、性能测试的应用领域有哪些?
能力验证:通过实际的测试结果证明自己系统的预期能力 瓶颈分析:通过一系列的测试手段发现系统的性能瓶颈(并发,负载,压力,失效恢复)性能调优:通过一系列的技术手段优化系统性能,包括响应时间,吞吐量,资源利用率 容量规划:为了符合未来的规划预期(用户数,市场占有率),对资源做相应的调整。
四、jmeter如何设计性能测试场景?
并发测试:基础线程组(强调单位时间的并发,不存在绝对并发)基准测试:反复对比结果,验证调优结果是否通过(tps是否提升,响应时间是否下降)负载测试:持续不断地增加负载,发现性能瓶颈(阶梯加压线程组,Concurrency Thread Group) 并发用户模式的负载:不断增加并发用户数,发现瓶颈吞吐量模式的负载:不断增加每秒请求数(rps)对服务端施压,发现tps瓶颈压力测试:tps瓶颈点上持续负载 稳定性压力测试:tps保持高压稳定。一般取最大tps的80%持续运行破坏性压力测试:目的是只需要服务端出现异常 失效恢复测试:出现异常之后,系统可以很快的恢复 容量规划测试:50万,高峰时间段2小时。
五、tps无法上升原因有哪些?
1、网络带宽 在压力测试中,有时候要模拟大量的用户请求,如果单位时间内传递的数据包过大,超过了带宽的传输能力,就会造成网络资源竞争,导致服务端接收到的请求数达不到服务端的处理能力上限。
2、连接池 可用连接数太少,造成请求等待。连接池一般分为服务器连接池(比如Tomcat)和数据库连接池(或者理解为最大允许连接数也行)。
3、GC 如果堆内存分配的不合理,就会导致频繁的gc,gc会导致线程暂停。尤其是fullgc,会造成线程长时间暂停
4、数据库配置 高并发情况下,如果请求数据需要写入数据库且需要写入多个表的时候,数据库的最大连接数不够,或者写入数据的SQL没有索引,或没有主从分离、读写分离,就会导致数据库事务处理过慢,影响到TPS。
5、硬件资源 包括CPU(配置、使用率等)、内存(占用率等)、磁盘(I/O、页交换等)
6、压力机 单机负载能力有限,如果需要模拟的用户请求数超过其负载极限,会影响TPS(这个时候就需要进行分布式压测来解决问题)
以上我们分享了软件性能测试经常遇到的问题,希望本文能够给您启发,助您解决问题。如果您想了解更多相关信息,请您继续关注中培教育。