您的当前位置:首页性能测试报告

性能测试报告

来源:小侦探旅游网


压测示例接口性能测试报告

1. 概述

1.1 项目背景

本次测试为一次探索性测试,目的是想通过对片单接口的通用业务的压力测试来了解大量用户并发访问片单接口对服务器相关性能指标及业务请求响应时间的影响,并且尽可能到找到影响这些要素的瓶颈。

1.2 适用对象

此报告为项目经理、项目组开发人员、软件测试人员及其他与此项目相关的人员提供参考数据。

1.3 测试目标

本次测试通过对压测示例接口进行压力测试,并监控其服务器的资源消耗情况,了解在高并发用户的压力请求下,服务器的业务处理能力和响应时间是否满足要求,服务器的资源性能指标是否存在瓶颈,是否影响用户和其他系统的使用(如系统能否及时处理所有的接口数据请求、内存是否存在泄露和不够、CPU是否高负载运行、接口请求的数据响应时间是否过长)。

1.4 术语定义

术语名称 虚拟并发数 术语解释 单位时间内同时利用性能测试工具进行请求的用户数量 响应时间指的是从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应平均响应时间 结束,这个过程所耗费的时间。单位:秒。 事务处理数 单位时间内服务器处理的交易数量。 吞吐量指的是单位时间内处理的客户端请求的数量,通常情况下,吞吐量用请求数/吞吐量 秒或页面数/秒来衡量。 每秒点击率 平均每秒时间内客户端向服务器发送的界面请求数量。 表1.4 术语说明表

1.5 参考资料

2. 测试环境

2.1 服务器软硬件环境

服务器软硬件环境配置:

127.0.0.1(web服务器) 环境 事项 服务器型号 单项参数 参数值 说明 Dell Inc. PowerEdge J3F7DF2 R430 操作系统 CentOS release 6.8 el6.x86_64 (Final) 型号 Intel(R) Xeon(R) CPU *****************个数 硬件 CPU 核数(单个) 总核心数 主频(单个) 内存 容量(GB) 容量(TB) 磁盘 转速(转/秒) 1 4 4 2.50GHz 16GB 4001.6GB 172.45 MB/sec sginfo -g /dev/sda查不到硬盘转数 hdparm -t /dev/sda 查看硬盘转速

表2.1-1 服务器软硬件配置信息说明表

程序配置说明:

服务域名/软件名称 Kouling.ceshi.com mysql 版本信息 1.0 5.7 IP地址 127.0.0.1 127.0.0.1 配置说明 表2.1-2 程序配置信息说明表

2.2 压力机软硬件环境

设备用途 设备型号 操作系统 Microsoft Windows ThinkServer 负载机1 RD540 2008 R2 Standard Server 2.50GHz LoadRunner/11.0 16G CPU E5-2609 v2 0 2TB *2 Intel(R) Xeon(R) 软件/版本 内存 CPU 硬盘 表2.2 压力机软硬件环境配置说明表

2.3 测试网络环境

网络环境概述:

测试的网络环境公司的内网测试环境。 网络环境拓扑图:

3. 测试案例

根据性能测试的选取原则,并结合片单接口的业务模型分析,共选择了典型的业务1个: 用例编号 用例名称 脚本名称 接口访问串样例 QZ001 口令预览 hongbaokouling http://kouling.ceshi.com/b2b/portal/rulesInfoList.htm?lotteryId=1&optype={optype}&callback=test QZ002 查看口令 hongbaokouling http://kouling.ceshi.com/b2b/portal/generate.htm?lotteryId=1&orderType=0&callback=test http://kouling.ceshi.com/b2b/portal/nextPreview.htm?lotteryId=1&callback=test http://kouling.ceshi.com/b2b/portal/ctr.htm?lotteryId=1&userAccount={userAccount}&buttonno={buttonno} QZ003 下一时段口令 hongbaokouling QZ004 点击活动按钮 hongbaokouling 表3 测试案例说明表

4. 测试场景

测试机编号约定

负载机编号: F1 负载机IP : 127.0.0.1 场景编号格式约定

直接压力机编号+用户数+日期+执行编号

场景名称 场景设计 在1台负载机上加压1000个用户 场景一 负载机1:(F1_1000 _20170509_001) 场景运行策略: 每秒起5个用户,持续运行2小时,结束时,每秒结束10个用户。 LoadRunner事务设置:

脚本设置每个接口分别为一个事务,设置虚拟用户为1000 Vusers LoadRunner集合点策略:未设置集合点 LoadRunner思考时间策略:忽略思考时间 LoadRunner参数化设置:已进行参数化设置 资源监控设置: 在应用服务器和数据库服务器上使用nmon监控服务器的系统资源消耗 表4 测试场景说明表

5. 测试工具

工具名称 LoadRunner Nmon nmon analyser 版本 11.0 nmon_x86_64_centos6 4.2 表5 测试工具说明表

说明 压力测试工具 Linux系统资源监控工具 Nmon的日志分析工具 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;满足满足基本需求;

从上图可以看出总内存为:15.5G,空闲内存=free+cache=2.3G左右,提示内存不足,SWP(交换空间)在内存不足的时候会使用,交换空间的剩余量在不断减小,当运行十几个小时的时候,交换空间会被占满;

DSK磁盘也显示繁忙,a盘的使用率为63%;PAG虚拟内存分页情况出现问题,换出内存的页数远大于换入内存的页数,影响速度

3、通过TCP连接数可以看出,等待连接数目已达到4万9千以上,等待数较多,磁盘io平均时间为0.2ms;

9. 附件

(一)

LoadRunner中的一些术语的官方解释:

Web Resources中的Page Down Time Breakdown(页面下载时间分解图)中各个时间定义如下: Name DNS Resolution Description Displays the amount of time needed to resolve the DNS name to an IP address, using the closest DNS server. The DNS Lookup measurement is a good indicator of problems in DNS resolution, or problems with the DNS server. Connection Displays the amount of time needed to establish an initial connection with the Web server hosting the specified URL. The connection measurement is a good indicator of problems along the network. It also indicates whether the server is responsive to requests. First Buffer Displays the amount of time that passes from the initial HTTP request (usually GET) until the first buffer is successfully received back from the Web server. The first buffer measurement is a good indicator of Web server delay as well as network latency. Note: Since the buffer size may be up to 8K, the first buffer might also be the time it takes to completely download the element. SSL Handshaking Displays the amount of time taken to establish an SSL connection (includes the client hello, server hello, client public key transfer, server certificate transfer, and other—partially optional—stages). After this point, all the communication between the client and server is encrypted. The SSL Handshaking measurement is only applicable for HTTPS communications. Receive Displays the amount of time that passes until the last byte arrives from the server and the downloading is complete. The Receive measurement is a good indicator of network quality (look at the time/size ratio to calculate receive rate). FTP Authentication Displays the time taken to authenticate the client. With FTP, a server must authenticate a client before it starts processing the client’s commands. The FTP Authentication measurement is only applicable for FTP protocol communications. Client Time Displays the average amount of time that passes while a request is delayed on the client machine due to browser think time or other client-related delays. Error Time Displays the average amount of time that passes from the moment an HTTP request is sent until the moment an error message (HTTP errors only) is returned.

Web Resources中的Time to first Buffer Breakdown(第一次缓冲时间分解)各时间定义:

因篇幅问题不能全部显示,请点此查看更多更全内容