性能测试学习线路图(建议)
由安博测试空间技术中心http://www.btestingsky.com/提供
概览
纵向划分3颗子树:vugen,controller,monitor。优先学习vugen脚本开发以及调试。
横向划分为2层:基础知识以及高级应用。
基础知识
Loadrunner工具使用
建议学习路径
Vugen开发脚本(函数使用)->controller场景设置->monitor增加计数器
http://www.cnblogs.com/jackei/archive/2006/10/20/534684.html
Loadrunner认证
更多见
http://www.51testing.net/BWF_DIY/mercury/mercury_051107_1.htm
http://www.51testing.net/BWF_DIY/mercury/mercury_060104_11.htm
Vugen常用增强函数
增加事务:lr_start_transaction、lr_end_transaction
检查点:web_reg_find
关联:web_reg_save_param,web_set_max_html_param_len
日志:lr_error_message,lr_log_message,lr_output_message…
选项设置:web_set_timeout
httpheader:web_add_auto_header
以及更改runtimesetting。
Loadrunner架构图
概览图
详细架构图:
Html/http协议
HTML4.01Specification:
http://www.w3.org/TR/html4/
http://www.eygle.com/digest/2006/12/html_xml_and_internet.html
对性能测试而言,METAhttp-equiv控制http头、浏览器行为,故最为重要。
http协议:
http://www.faqs.org/rfcs/rfc2616.html
客户端发送请求:
服务器响应:
C语言基础编程
Loadrunner常用的c函数主要集中在内存分配/释放、字符串操作、文件读写。
如:malloc/free
Sprintf/strcmp/strlen/
fopen/fread/fwrite
Linux性能分析初步
核心指令:
Top
Sar
Vmstat
Iostat
Sar-nDEV
/proc文件系统
分析经验性步骤:
首先查看CPU使用情况,按照诊断CPU、内存或磁盘瓶颈的指导进行操作。对于下面的每个步骤,查找时间内的趋势,从中收集系统运行性能较差时的数据。另外,只有将这些数据与系统正常运行时收集的数据进行时才能进行准确的诊断。
步骤1
#sar-u[interval][iterations](示例:sar-u530)%idle是否很低?这是CPU未在运行任何进程的时间百分比。在一端时间内%idle为零可能是CPU瓶颈的第一个指示。
不是->系统未发生CPU瓶颈。转至步骤3。是->系统可能发生了CPU、内存或I/O瓶颈。转至步骤2。
步骤2
%usr是否较高?很多系统正常情况下花费80%的CPU时间用于用户,20%用于系统。其他系统通常会使用80%左右的用户时间。
不是->系统可能遇到CPU、内存或I/O瓶颈。转至步骤3。是->系统可能由于用户进程遇到CPU瓶颈。转至部分3,部分A,调整系统的CPU瓶颈。
步骤3
%wio的值是否大于15?
是->以后记住这个值。它可能表示磁盘或磁带瓶颈。转至步骤4。不是->转至步骤4。
步骤4
#sar-d[interval][iterations]用于任何磁盘的%busy是否都大于50?(请记住,50%指示一个大概的指南,它可能远远高于您系统的正常值。在某些系统上,甚至%busy值为20可能就表示发生了磁盘瓶颈,而其他系统正常情况下可能就为50%busy。)对于同一个磁盘上,avwait是否大于avserv?
不是->很可能不是磁盘瓶颈,转至步骤6。是->此设备上好像发生了IO瓶颈。转至步骤5。
步骤5
系统上存在磁盘瓶颈,发生瓶颈的磁盘上有哪些内容?
原始分区,文件系统->转至部分3,部分B,调整发生磁盘IO瓶颈的系统。Swap->可能是由于内存瓶颈导致的。转至步骤6。
步骤6
#vmstat[interval][iterations]在很长的一端时间内,po是否总是大于0?对于一个s800系统(free4k)是否小于2MB,(对于s700系统free4k是否小于1MB)?(值2MB和1MB指示大概的指南,真正的LOTSFREE值,即系统开始发生paging的值是在系统引导时计算的,它是基于系统内存的大小的。)
不是->如果步骤1中的%idle较低,系统则很可能发生了CPU瓶颈。转至部分3,部分A,调整发生了CPU瓶颈的系统。如果%idle不是很低,则可能不是CPU、磁盘IO或者内存瓶颈。请转至部分4,其他瓶颈。是->系统上存在内存瓶颈,转至部分3部分C,调整发生内存瓶颈的系统。
Windows性能分析初步
同windowsperfmon。
同样集中在cpu,内存,io,网络上。
一般经验值:
网络
网络利用率阀值没有统一。<30%or80%?
冲突率:<1%
PacketsReceivedErrors<1%
I/O:
DiskTime%<90%
Avg.DiskBytes/Read+Avg.DiskBytes/Write<20K
Avg.Disksec/Transfer<0.3sec
队列长度:QueueLength<2
Avg.Disksec/Transfer<18milliseconds
内存
AvailableMbytes>25%
Pagein+out<20次
内存泄露以及错误:
PoolNonpagedBytes:anincreaseof10percentormorefromitsvalueatsystemstartup。
Server->PoolNonpagedFailuresshowsthenumberoftimesallocationsfromnonpagedpoolhavefailed-indicatesthatthecomputer`sphysicalmemoryistoosmall.应为0
Server->PoolPagedFailuresindicatethateitherphysicalmemoryorapagingfileisnearcapacity.应为0
Server->PoolNonpagedPeakshowsthemaximumnumberofbytesinnonpagedpooltheserverhashadinuseatanyonepoint.Indicateshowmuchphysicalmemorythecomputershouldhave.
处理器
利用率<85%
每个CPU队列长度<2
ContextSwitches/sec<5000次或者<5%oftotalthreads
高级应用
性能建模
从businesslayer、functionlayer、sessionlayer、customerlayer出发,借助日志分析工具挖掘系统负载模型、用户行为模型。
MercuryEndUserManagement正是一个从client视觉出发的业务监控解决方案。
网络嗅探器
如ethreal,fiddler,以及httpdebuger工具,诊断网络问题。
Loadrunnertroubleshooting
各个环节都可能有问题。(client,通信,服务器)
经验性步骤:
诊断vugen脚本、loadrunner场景设置、客户端硬件资源是否充足
判断服务器端各层是否达到资源上限
借助ethereal等网络嗅探器判断c/s通信问题
Linux性能分析与调优
深入了解:
进程/多线程编程
同步机制
Gdb调试core
内核参数
Windows性能分析与调优
Windows其他计数器
C语言调用dll扩展测试脚本
Dll编写格式:
如
int__stdcalllr_getLinuxIOwait_end()
{
clnt_destroy(clnt);
}
.def文件
EXPORTS
lr_getLinuxIOwait_end@3
loadrunner调用dll函数:
lr_load_dll("my.dll");
Apache/jboss/weblogic/oracle性能优化
参见各个产品tuning文档
http://httpd.apache.org/docs/2.0/misc/perf-tuning.html
http://httpd.apache.org/docs/1.3/misc/perf-tuning.html
http://edocs.bea.com/wls/docs81/perform/
http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossASTuningSliming
http://www.jboss.org/index.html?module=bb&op=viewforum&f=121
计算机性能评测研究方向
相关理论研究(泊松分布、排队论、MaKov模型、Montecarlo模拟、自相似理论)
负载特性WorkloadCharacteristic的研究(CommercialWorkload/TechnicalWorkload)
基准程序Benchmark的研究
性能指标的研究(全生命周期/高效能/TPOTotalProductivityOwnership/SLAServcieLevelAgreement/QoS)
模拟器的研究(SimpleScalar/SimOS/SandOS)
测试系统的研究(BenchmarkFactory/ServerScope/BenchmarkStudio/LoadRunner/Forecasttoolset)
监控系统PerfomanceEvaluation(IntelVtune/EMon/TeamQuestLite/ServerScope-Monitor/Grid-View)
性能评测与体系结构的结合(Computerarchitectureanalysisusingworkloads)
参见http://www.cnblogs.com/jackei/archive/2006/11/20/565527.html
Mercucyperformancecenter
http://www.mercury.com/us/products/performance-center/
性能测试书籍
《Microsoft.NETWeb应用程序性能测试》
《软件性能测试过程详解与案例剖析》
《WEB性能测试实战》
《J2EE性能测试》
《??LoadRunner性能测试实战http://www.51testing.com/
http://www.17testing.com/
http://www.wilsonmar.com/1loadrun.htm
http://www.avoka.com/resources/white_papers.shtml
http://www.qaforums.com
http://support.mercury.com
10
|
|