基于Web软件的性能测试研究
2019-08-27刘红
刘红
摘要:当下正处于互联网高速发展时期,更快、更稳定、更安全的系统已成为用户选择软件系统的一个重要因素,这使得更多的公司在软件服务创新的同时,更加重视应用系统的性能特性。本文结合日常性能工作,主要从性能测试的定义,类型,方案的制定,流程,测试结果的指标进行说明。
关键词:性能测试;loadrunner压测
近年来,互联网、移动互联飞速发展,与此同时,随着公司业务的发展,软件需要更多的关注日渐增多的用户数量,更加多层的交互场景及使用软件产生的数据量,这就要求服务器能够更加快速和及时地响应用户请求。为了解决以上软件公司所面临的挑战,我们可以利用性能测试检测系统的成熟度和客户需求进行对比,确认系统是否满足用户对软件在功能和性能上的需求。本文着重从性能测试的类型、流程,性能测试结果的系统指标进行说明。
1 性能测试的定义及类型
1.1 性能测试定义
性能测试是通过模拟真实环境(多用户)测试系统应用,通过多种较极端的情况对测试系统进行攻击。观察应用软件的系统指标(如:响应时间、吞吐量、每秒事务数、事务成功率等)和空间资源是否达到预期标准,如果未达到预期,需对结果指标进行分析,得出系统瓶颈,为软件调优提供解决方案。
1.2 性能测试类型
常见的性能测试类型包括以下几种:
(1)并发测试:通过模拟多用户同时做同一操作,观察系统的性能和是否存在错误。
(2)压力测试:系统在饱和状态下,不断给给定系统加压,检查系统长时间在较大压力下的响应情况。
(3)综合场景测试:是最能模拟真实业务场景的测试,综合场景包括几个常见要点:多个用户、多个脚本、在线运行较长一段时间,观察系统性能情况。
2 性能测试的流程
2.1 性能测试的流程
对系统进行性能测试时,应按照以下流程进行测试:
(1)分析性能测试需求,进行工作评估,制定性能测试方案,编写测试计划
(2)根据测试方案,准备测试脚本、测试环境及测试数据
(3)创建场景,执行测试
(4)运行、监控场景,收集性能数据,进行缺陷管理
(5)分析性能测试结果,编写测试报告,提供系统调优方案
2.2 性能测试工具loadrunner三大组件工作原理
(1)对于给定的被测系统,Visual User Generator根据选定协议(Windows Sockets,Http/Html,MS SQL Server等协议),捕获和记录客户端行为、生成脚本,用户可进行脚本调试(如添加检查点、事务、集合点等)。
(2)在VuGen中针对脚本,可以设置Run-time Settings
(3)在controller中设置场景:根据需求,选择脚本,设置运行场景和runtime setting,并可以通过负载生成器模拟大量用户进行负载和压力测试。。
(4)运行场景,通过analysis组件查看报告,包括summary和多个graph,通过多种方法(如:合并图表、网页细分图、钻取、水晶报表等方法)分析性能测试结果数据,提供性能调优的数据依据。
3 性能测试指标分析
3.1 响应时间
响应时间是指服务器对请求作出响应所消耗的时间。注意区分用户的感性时间和真正的响应时间,感知时间是指从客户端向系统提交请求开始返回信息的时间;实时响应时间是指从请求发送出去到页面展示所有数据的时间。
3.2 吞吐量
吞吐量是指单位时间内服务器处理的字节数。如果一段时间内,用户数量持续增加,而吞吐量趋于平衡甚至有略微减少不见递增,说明该用户数量即为当前系统所能承受的最大用户数量,系统处理能力已经达到瓶颈。
3.3 TPS:
TPS是指服务器每秒处理的事务数,tps值越大,系统处理能力越强。
4 性能测试结果分析
性能测试数据可以通过性能测试工具loadrunne的analysis组件进行分析,得出系统瓶颈。常见的分析方法包括:合并图表法、网页细分图、钻取技术、硬件指标分析。下面结合性能测试经验,提出几个可能导致tps过低的原因:
(1)网络带宽
在压力测试过程中会通过负载生成器模拟大量用户,此时会产生大量对地请求,传输过程中的数据包需要较大带宽,如果超出带宽能力,则会造成响应不及时。
(2)硬件资源达到瓶颈
包括CPU(%Processor Time、Processor queue length)、内存(Avalible Mbytes)、磁盘(%Disk Time、page fault)、网络(Bytes Total/sec)。
(3)数据库设置的最大连接数不足
(4)連接池
连接池连接不够,会导致请求响应不过来,造成排队等待。
随着公司业务的发展,软件产品愈加复杂,公司会面临更多日渐增多的用户数量,更加多层的交互场景及超大数据量等诸多问题。如何提高软件的性能,解决实际业务中的问题,也是我们做性能测试的根本目标。在性能测试过程中,我们应该制定更加合理的性能测试方案,监控性能测试流程,对软件做更加充分的测试,定位问题,找出瓶颈,为软件调优提供解决方案,提供更好的软件服务。
(作者单位:江西软件职业技术大学)