性能测试总结Word文件下载.docx
《性能测试总结Word文件下载.docx》由会员分享,可在线阅读,更多相关《性能测试总结Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
测试则同时强调howmuch和howfast。
配置测试(ConfigurationTesting。
配置测试是指在不同的软件、硬件以及网络环境配置下,运行一种或多种业务,在一定的虚拟用户数量情况下,获得不同配置的性能指标,用于选择最佳的设备及参数配置。
通过产生不同的配置,来得到系统性能的变化状况。
基准测试(BenchmarkTesting)。
基准测试是指在一定的软件、硬件及网络环境下,模拟一定数量的虚拟用户运行一种或多种业务,将测试结果作为基线数
据,在系统调优或系统测评的过程中,通过运行相同的业务场景比较测试结果,确定调优的结果是否达到预期效果或者为系统的选择提供决策数据。
基准测试一
般基于配置测试,通过配置测试得到数据,并将这个数据作为基准来比较每次调优后的性能是否有所改善(EVERESTUltimat工具获取当前内存的读写速度)。
并发测试(ConcurrencyTesting。
并发测试是指通过模拟多个用户并发访问同一个应用、存储过程或数据记录及其他并发操作,测试是否存在死锁、数据错
误等故障。
为了避免数据库或函数方法在并发下的错误,需要专门针对每个模块
进行并发测试。
理想情况下,性能测试应该在哪些阶段介入,见下图。
并发测试
压力测试
编
码
容量测试
负载测试
配置测试
测I基准测试
试
编码阶段(压力/并发),编码-测试之间(容量测试),测试阶段(负载/配置/基准)。
性能指标:
①响应时间:
响应时间反映完成某个业务所需要的时间。
②吞吐量:
吞吐量反映单位时间内能够处理的事务数目。
③服务器资源占用:
服务器资源占用反映在负载下系统的资源利用率。
3性能测试基本过程
性能测试的基本过程如图所示
性能测试需求分析
典型的性能测试过程
性能测试需求分析:
把客户的真正需求搞清楚,是性能测试最关键的过程。
性能测试计划:
在性能测试计划中,需要阐述产品、项目的背景,将前期的需要测试性能需求明确,并落实到文档中。
指出性能测试可参考的文档,并将这些文档的作者、编写时间、获取途径逐一列出,形成一个表格,这些文档包括用户需求规格说明书、会议纪要(内部讨论、与客户讨论等最终确定的关于性能测试内容)等性能测试相关需求内容文档。
系统性能测试的环境要尽量和客户上线的环境条件相似。
性能测试用例:
性能测试用例应结合用户应用系统的场景,设计出相应的性能测试用例,用例应能覆盖到测试需求。
测试脚本编写:
要着重强调几点,①协议的正确选用,②测试脚本不仅可以使用性能测试工具来完成,在必要的时候,可以使用其他语言编程完成同样的工作,③在应用工具录制或者编写脚本完成以后,还需要去除脚本不必要的冗余代码,对脚本进行完善,需要加入集合点、检查点、事务以及对一些数据进行参数化、关联等处理,④在编写测试脚本的时候,需要注意编码的规范和代码的编写质量问题,⑤将脚本纳入配置管理。
测试场景设计:
测试场景设计是以性能测试用例、测试脚本编写为基础的,脚本编写完成,需要在脚本中进行如下处理,如需要进行并发操作,则加入集合点;
考察某一部分业务处理响应时间,则需要插入事务;
为检查系统是否进行正确的执行相应功能而设置的检查点;
输入不同的业务数据,则需要进行参数化。
关于测试场景的设计要着重强调几点,①性能测试工具都是用进行或者线程来模拟多个虚拟用户,按进程运行每个虚拟用户,将会占用大量RAM,按线程运行
每个虚拟用户,将共享父驱动进程的内存,②场景设计如果存在有执行次序依赖关系的脚本,在场景设计时不要弄错顺序,③场景的相关设置项也是需要关注的重要内容,以LoadRunner为例,如需要虚拟IP,需要选中菜单“EnableIPSpoofe”,
如应用了集合点,需要单击菜单“Rendezvous”进行集合点策略的设定,如需要多台负载机进行负载,需要单击“LoadGenerators••”进行负载机的连接测试。
工具名称
功能简介
开源性能测试工具
Jmeter
Jmeter可以完成针对静态资源和动态资源
(Servlets、Perl脚本、Java对象、数据查询、FTP服务等)的性能测试,可以模拟大量的服务器负载、网络负载、软件对象负载,通过不同的加载类型全面测试软件的性能、提供图形化的性能分析
OpenSTA
OpenSTA可以模拟大量的虚拟用户,结果分析包括虚拟用户响应时间、Web服务器的资源使用情况、数据库服务器的使用情况,可以准确地度量负载测试的结果
DbMonster
DbMonster是一个生成随机数据,用来测试SQL数据库的压力测试工具
TpTest
TpTest提供测试Internet连接速度的简单方法
商业性能测试工具
MercuryLoadRunner
MecruryLoadRunner是一种预测系统仃为和性能的工业级标准性能测试负载测试工具。
通过模拟上千万用户实施并发负载及实时性能检测的方式来确认和查找问题,LoadRunner能够对整个架构进行测试。
支持Web(HTTP/HTML、WindowsSocketsFileTransferProtocol(FTP、MediaPlayer(MMS)、ODBCMSSQLServe等协议
IBM
Rational
Performanee
Tester
适用于团队验证Web应用程序的可伸缩性的负载和性能测试工具,引入了新的技术进行负载测试的创建、修改、执行和结果分析
免费性能测试工具
MicrosoftApplieationCenterTest
它可以对Web服务器进行强度测试,分析Web应用程序(包括ASPX页及其使用的组件)的性能和可伸缩性问题。
通过打开多个服务器连接并迅速发送HTTP请求,ApplicationCenterTest可以模拟大量用户
MicrosoftWeb
ApplieationStressTool
由微软公司的网站测试人员开发,专门用来进行实际网站压力测试的一套工具。
可以以数种不同的方式建立测试指令:
包含以手工、录制浏览器操作的步骤,或直接录入IIS的记录文件、录入网站的内容及录入其他测试程序的指令等方式
测试场景运行:
测试场景运行时关系到测试结果是否准确的一个重要过程。
场景运行监控:
关于场景的监控需要注意几点,①性能测试负载机可能有多少台,负载机的时钟要一致,保证在监控过程中的数据是同步的;
②场景的运行
监控也会给系统造成一定的负担,因为在操作过程中需要搜集大量的数据,且存储到数据库中,所以尽量搜集与系统测试目标相关的参数信息,无关内容不必进行监控;
③通常,只有管理员才能够对系统的资源等进行监控;
④运行场景的监控需要对要监控的数据指标有非常清楚的认识,同时还要对性能测试工具非常熟悉。
运行结果分析:
性能测试执行过程中,性能测试工具搜集相关性能测试数据,待执行完成后,这些数据会存储到数据表或者其他文件中。
为了定位系统性能问题,需要系统学习这些性能测试结果。
目前,广泛被大家应用的性能分析方法就是“拐点分析”。
“拐点分析”方法是一种利用性能计数器曲线图上的拐点进行性能分析的方法。
它的基本思想就是性能产生瓶颈的主要原因就是因为某个资源的使用达到了极限,此时表现为随着压力的增大,系统性能却出现急剧下降,这样就产生了“拐点”现象。
当得到“拐点”附近的资源使用情况时,就能定位出系统的性能瓶颈。
系统性能调优:
在进行性能调整的时候,最好一次只调整一项内容或者一类内容,避免一次调整多项内容而引起性能提高却不知道是由于调整哪项关键指标而改善性能的。
进行系统的调优过程中好的策略是按照由易到难的顺序对系统性能进行调优。
系统调优由易到难的先后顺序如下:
①硬件问题;
②网络问题;
③应用服务器、数据库等配置问题;
④源代码、数据库脚本问题;
⑤系统构架问题。
很多情况下,系统性能不是十分理想的一个重要原因就是,没有对应用服务器、数据库等软件进行调优和设置引起的,如对tomcat系统调整堆内存和扩展内存的大小,数据库引入连接池技术等。
但是由于涉及源代码的改变有可能会引入缺陷,所以在调优后,不仅需要性能测试,还要对功能进行验证,以验证是否正确。
性能测试总结:
性能测试总结不仅使我们能了解到如下内容:
性能测试需求覆盖情况;
性能测试过程中的问题;
如何分析、调优、解决的;
测试人员、进度控制与实际执行偏差;
性能测试过程中遇到的各类问题是如何控制的。
而且,还能描述经过该产品/项目性能测试后有哪些经验和教训等内容。
通常一份性能测试总结报告需要阐述产品、项目的背景,将前期的性能测试需求明确,并落实到文档中。
指出性能测试可参考的一些文档,并将这些文档的作者、编写时间、获取途径逐一列出,形成一个表格,这些文档包括:
用户需求规格说明书、会议纪要(内部讨论、与客户讨论等最终确定的关于性能测试内容)等与性能测试相关的需求内容文档。
4Vuser类型
1.所有协议(AllProtocols):
所有可用的协议列表。
2.应用程序员部署方案(ApplicationDeploymentSolution):
适用于Citrix_ICA协议。
3.客户端/服务器(Client/Server):
适用于DB2CL、DomainNameResolution
(DNS、Informix、MSSQLServerODBCOracle(2Tier)、SybaseCtlibSybaseDblib和WindowsSockets协议。
4.自定义(Custom):
适用于CVuser、JavaVuser、JavaScriptVuser、VBScriptVuser和VisualBasicVuse类型的脚本。
5.分布式组件(DistributedComponents):
适用于COM/DCOMCORBA-Java和Rmi-Java协议。
6.电子商务(E-BusinesS:
适用于FileTransferProtocol(FTF)、ListingDirectoryService(LDAF)、PalmWeb(HTTP/HTML、WebService和Web/WinsocketDualProtocol协议。
7.企业级JavaBean(EnterpriseJavaBean):
适用于EnterpriseJavaBeans
(EJB和Rmi-Java协议。
8.ERP/CRM适用于Bean、OracleApplications、OracleNCA、PeoplesolfEnterprise、Peoplesoft-TuxedoSAP-WebSAPGUSAPGUI/SAP-WebDualProtocol>
Siebel-DB2CLISiebel-MSSQLSiebel-Oraclde和Siebel-Web协议。
9.传统(Legacy):
TerminalEmulation(RTE协议。
10.邮件服务(MailingService®
:
InternetMessaging(IMAP)、MSExchange
(MAPI)、PostOfficeProtocol(POP3和SimpleMailProtocol(SMTF)协议。
11.中间件(Middleware):
Jacada和Tuxedo6和Tuxedo7协议。
12.流(Streaming):
适用于MediaPlayer(MMS)和Real协议。
13.无线(Wireless):
适用于i-Mode、VoiceXML和WAP协议。
性能测试调节参数汇总:
isp调整过:
mom、console、in、out、router、nodeproxy调节内存关掉debug关掉info等的日志
节点参数调整(节点管理节点管理节点参数列表)
IN、OUT
message_buffer_size1000thread_pool_size500(参考并发用户数)esb.container.frame.poolsize500参考并发用户数)esb.container.context.poolsize500参考并发用户数)
esb.container.timeout60000(in:
60000out:
55000)
其他节点
message_buffer_size1000
thread_pool_size500(参考并发用户数)
5、操作系统参数调整
找到/etc/sysctl.conf
注释掉该文件里的原有的所有参数,修改配置最下面添加
net.ipv4.ip_local_port_range=102465000
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_max_tw_buckets=30000
net.ipv4.tcp_syn_retries=3
net.ipv4.tcp_retries2=5
然后执行
sysctl-p
通过
sysctl-a查看这些参数是否被修改成功,不用重起应用,所有登陆的会话
可以生效
6•修改文件句柄数
编辑/etc/security/limits.conf文件:
添加以下行:
*softnofile65535
*hardnofile65535
*softnproc65535
*hardnproc65535
nofile为最大打开文件数,nproc为用户可建最大线程数/进程数(nproc只对一般用户有效,root无限制)
修改/etc/security/limits.d/90-nproc.conf文件:
保存后新开一个shell即生效
使用ulimit-a查看:
maxnumberofprocesses(nproc)
用ulimit-a命令查看:
(blocks,-c)0
(kbytes,-d)unlimited(-e)0
(blocks,-f)unlimited(-i)128574(kbytes,-l)64(kbytes,-m)unlimited(-n)1024(512bytes,-p)8
(bytes,-q)819200(-r)0
(kbytes,-s)8192
(seconds,-t)unlimited
(-u)128574(kbytes,-v)unlimited(-x)unlimited
6LoadRunner
6.1LoadRunner工具组成
脚本生成器VirtualUserGenerator
VirtualUserGenerator简称VuGen,提供了基于录制的可视化图形开发环境,可以方便、简介地生成用于负载的性能脚本。
压力调度和监控系统Controlller
负责对整个负载的过程进行设置,指定负载负载的方式和周期,同时提供了系统监控的功能。
压力生成器LoadGenerator
LoadGenerator简称LG负责将VuGen脚本复制成大量虚拟用户对系统生成负载。
结果分析工具Analysis
通过Analysis可以对负载生成后的相关数据进行整理分析。
6.2性测试原理
用户行为模拟
不同用户使用不同的数据(LoadRunner通过“参数化”实现);
多用户并发操作(LoadRunner通过“集合点”实现);
用户请求间的依赖关系(LoadRunner通过“关联”实现);
请求间的延时时间(LoadRunner通过“思考时间”实现)。
性能指标监控
请求响应时间监控(LoadRunner通过“事务”实现);
服务器处理能力监控(LoadRunner通过“事务”计算吞吐量获得);
服务器资源利用率监控(LoadRunner提供全面简洁的计数器接口)。
性能调优
http捕获:
HTTPWatch(监控录制所有http请求的插件),
http回放:
IBMRationalHTTPRequestEditor
6.3用户行为模拟
LodRunner11对于tree模式有了一定的功能加强,在该模式中提供了HTML
View和HTTPView两种模式。
单协议(NewSingleProtocolScript):
在单协议情况下,所要录制的对象只使用唯一的协议。
多协议(NewMultipleProtocolScript):
在需要录制的对象使用多于一种协议的情况下,应该选择多协议,并且将这些协议都进行添加,否则会因为漏选协议而无法回放脚本。
录制脚本
回放验证脚本
参数化使得脚本运行
添加关联处理动态数据
添加事务捕获响应时间
添加集
合点形
成并发
VuGen用户行为模拟流程
录制用户行为录制流程
VuGen录制流程
6.4性能测试实践
6.4.1计划测试
明确定义概念
性能测试计划阶段流程
分析系统:
网络数据包拦截软件常见的有Wireshark、Omnipeek等。
HttpWatch是一个基于浏览器的插件,可以帮助我们拦截HTTP的数据包;
而这里的网络拦
截工具是基于网卡的底层扫描的。
定义测试目标:
通过用户提供的数据进行分析,通过系统日志,通过参考同类业务,通过80/20原则。
明确定义概念:
编写性能测试计划,编写性能测试方案,编写性能测试用例
***系统性能测试计划
文档目的
描述***性能测试流程、范围、环境、风险等因素作为性能测试依据。
项目背景介绍
术语及缩写
输入
《项目计划文档》
《性能需求规格说明书》
《系统架构设计文档》
《系统测试计划》
入口标准
无
系统运行环境
1)网络拓扑图
2)软硬件配置
测试内容
非测试内容
角色和职责
性能测试工具列表进度安排
Project甘特图
出口标准
交付件
风险
假设
性能测试计划
***系统性能测试方案
描述***性能测试目的、策略、测试用例、流程等因素作为性能测试依据。
测试目的
测试策略
第一轮测试:
第二轮测试:
第三轮测试:
第四轮测试:
第五轮测试:
业务抽取(测试脚本)
需要进行测试的主要业务
用户行为模型及性能指标(测试场景)
监控方式
场景检查
性能测试方案
6.4.2搭建测试环境
测试环境搭建手册
性能测试环境搭建手册
虚拟机设置
安装介质说明
安装步骤
基准测试数据
6.4.3创建脚本
6.4.4创建场景
Linux平台下,负载较大时,推荐使用NMON工具
6.4.5
运行场景
6.4.6
分析性能数据
6.4.7
性能测试报告
定性型性能测试报告、分析型性能测试报告、比较型性能测试报告
6.4.8
注意事项
性能测试时,注意记录数据,女口CPU利用率、内存利用率、网络利用率、平均事务数、平均响应时间等具体细节的数据。