性能测试报告
- 格式:doc
- 大小:679.00 KB
- 文档页数:13
压测示例接口性能测试报告
1.概述
1.1项目背景
本次测试为一次探索性测试,目的是想通过对片单接口的通用业务的压力测试来了解大量用户并发访问片单接口对服务器相关性能指标及业务请求响应时间的影响,并且尽可能到找到影响这些要素的瓶颈。
1.2适用对象
此报告为项目经理、项目组开发人员、软件测试人员及其他与此项目相关的人员提供参考数据。
1.3测试目标
本次测试通过对压测示例接口进行压力测试,并监控其服务器的资源消耗情况,了解在高并发用户的压力请求下,服务器的业务处理能力和响应时间是否满足要求,服务器的资源性能指标是否存在瓶颈,是否影响用户和其他系统的使用(如系统能否及时处理所有的接口数据请求、内存是否存在泄露和不够、CPU是否高负载运行、接口请求的数据响应时间是否过长)。
1.4术语定义
表1.4 术语说明表1.5参考资料
无
2.测试环境
2.1服务器软硬件环境
服务器软硬件环境配置:
表2.1-1 服务器软硬件配置信息说明表
程序配置说明:
表2.1-2 程序配置信息说明表
2.2压力机软硬件环境
表2.2 压力机软硬件环境配置说明表
2.3测试网络环境
网络环境概述:
测试的网络环境公司的内网测试环境。
网络环境拓扑图:
3.测试案例
根据性能测试的选取原则,并结合片单接口的业务模型分析,共选择了典型的业务1个:
表3 测试案例说明表
4.测试场景
测试机编号约定
负载机编号:F1
负载机IP :127.0.0.1
场景编号格式约定
直接压力机编号+用户数+日期+执行编号
表4 测试场景说明表
5.测试工具
表5 测试工具说明表
6.测试策略
本次压力测试的测试策略是使用Loadrunner结合典型的被测接口业务数据流,通过生成一定数量的虚拟用户负载,模拟真实在线用户访问接口获取数据的业务模型,测试业务场景的事务响应时间和相关服务器的资源消耗情况。
测试过程中的测试脚本生成,主要是用Loadrunner录制生成。选择合适的通信协议(Web HTTP/HTML协议)和浏览器(FireFox)访问业务接口录制测试脚本,录制完成后分析测试脚本,优化脚本,去除不必要的内容,根据实际情况设置事务点、集合点和参数化。最后回放测试脚本,检查脚本是否有错误,从而得到一个可以执行的完整的测试脚本。
测试程序中的数据参数化,主要根据业务接口访问的逻辑,选取被参数化的数据对象,以便更真实的模拟实际的业务场景,即不同用户访问不同的接口逻辑获取不同的业务数据,而不
是单一的访问获取相同数据,具体的脚本中参数化的对象在测试场景中详细加以描述。
测试中需要的测试数据(如参数化的数据来源),主要从实际生产环境中获取,以保证测试数据的真实有效,数据的大小和数量根据实际场景情况进行选取。
由于本次测试使用成熟的性能测试工具Loadrunner进行测试,故简要介绍其测试流程:
1.通过Loadrunner录制测试脚本和准备测试相关数据(参数化需要的数据源)。
2.创建场景并对场景进行设置:设置用户加压方式、持续运行时长和执行完成后减压方式,设置
集合点的释放策略、设置运行时设置(Rum-time setting),添加系统资源计数器或者使用nmon 在服务器上监控服务器资源。
3.运行场景。
4.场景运行完成后生成测试结果,结合测试结果及搜集的相关资源指标进行深度分析。7.测试结果
7.1场景一结果
1.分析概要:
从分析概要中可以看出,场景并发用户数为1000 个虚拟用户;平均每秒点击数572.419;总点击数4,297,720;
2.事务概要:
3.每秒请求数(Hits per Seconds):
从图中可以看出,点击率平均为572;
4.Total TPS分析(Total Transaction per second):
图中可以看出,所有接口的平均每秒处理成功的事务数为572左右,确实与每秒请求数保持一致;
5.TPS分析(Transaction per second):
6.吞吐率分析(Throughtput):
从吞吐率来看,平均每秒的吞吐为1.355MB
再来看一下吞吐率和点击率的组合图:
从图中可以看出两者的图线基本重合,说明服务器能正确处理客户端请求并返回结果。
7.接口服务器资源使用分析:
使用atop查看运行时系统服务器资源的使用情况
刚开始运行时:
运行一个小时后
A)CPU
从上图可以看出运行时cup占用在35%左右
B)内存和磁盘
从上图可以看出总内存为:15.5G,空闲内存=free+cache=2.3G左右,提示内存不足,SWP(交换空间)在内存不足的时候会使用,交换空间的剩余量在不断减小,当运行十几个小时的时候,交换空间会被占满;
DSK磁盘也显示繁忙,a盘的使用率为63%;PAG虚拟内存分页情况出现问题,换出内存的页数远大于换入内存的页数,影响速度
C)JAVA线程与JAVA进程
通过pstree实时监控JAVA线程:pstree -p pid |wc -l
D)NETWORK
通过nmon监控30分钟:./nmon –f -t –s10 –c500
从图中可以看出,网络流量读达到2MB/s左右,写达到3MB/s左右,占用的网络带宽不高。
E)TCP连接数
通过netstat实时监控:while true;do netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}';echo "******************************************";sleep 1;done
从图中可以看出,当前等待连接数约44765,当前已连接数约1166;等待数量太多,建议优化;8.结果分析与总结
如下为对压测示例接口进行压力测试的概况:
1、统计结果看出,在进行1000并发时,各类事务的响应时间已超过1秒,TotalTPS低于1000,不满足基本需求;
2、从服务器资源占用方面考虑,1000并发时CPU占用约35%,network占用约5MB;满足满足基本需求;