性能测试学习线路图(建议)

1 概览

纵向划分3颗子树:vugen,controller,monitor。优先学习vugen脚本开发以及调试。

横向划分为2层:基础知识以及高级应用。

2 基础知识

2.1 Loadrunner工具使用

2.1.1 建议学习路径

Vugen开发脚本(函数使用)->controller场景设置->monitor增加计数器

http://www.cnblogs.com/jackei/archive/2006/10/20/534684.html

2.1.2 Loadrunner 认证

更多见

http://www.51testing.net/BWF_DIY/mercury/mercury_051107_1.htm

http://www.51testing.net/BWF_DIY/mercury/mercury_060104_11.htm

2.1.3 Vugen常用增强函数

增加事务:lr_start_transaction/:lr_end_transaction

检查点: web_reg_find

关联web_reg_save_param web_set_max_html_param_len

日志: lr_error_messagelr_log_messagelr_output_message …

选项设置: web_set_timeout

http header: web_add_auto_header

以及更改runtime setting。

2.1.4 Loadrunner 架构图

概览图

详细架构图:

2.2 Html/http协议

HTML 4.01 Specification:

http://www.w3.org/TR/html4/

http://www.eygle.com/digest/2006/12/html_xml_and_internet.html

对性能测试而言,META http-equiv控制http头、浏览器行为,故最为重要。

http协议:

http://www.faqs.org/rfcs/rfc2616.html

客户端发送请求:

服务器响应:

2.3 C 语言基础编程

Loadrunner常用的c函数主要集中在内存分配/释放、字符串操作、文件读写。

如: malloc/free

Sprintf/strcmp/strlen/

Fopen/fread/fwrite

2.4 Linux 性能分析初步

核心指令:

Top

Sar

Vmstat

Iostat

Sar -n DEV

/proc文件系统

分析经验性步骤:

首先查看 CPU 使用情况,按照诊断 CPU、内存或磁盘瓶颈的指导进行操作。对于下面的每个步骤,查找一端时间内的趋势,从中收集系统运行性能较差时的数据。另外,只有将这些数据与系统正常运行时收集的数据进行比较时才能进行准确的诊断。

步骤 1

# sar -u [interval] [iterations]
(示例: sar -u 5 30)
%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? (不同os有不同的阀值)

是 -> 以后记住这个值。它可能表示磁盘或磁带瓶颈。转至步骤 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 系统 (free * 4k) 是否小于 2 MB,
(对于 s700 系统 free * 4k 是否小于 1 MB)? 
(值 2 MB 和 1 MB 指示大概的指南,真正的 LOTSFREE 值,即系统开始发生 paging 的值是在系统引导时计算的,它是基于系统内存的大小的。)

不是 -> 如果步骤 1 中的 %idle 较低,系统则很可能发生了 CPU 瓶颈。
转至部分 3,部分 A,调整发生了 CPU 瓶颈的系统。
如果 %idle 不是很低,则可能不是 CPU、磁盘 IO或者内存瓶颈。
请转至部分 4,其他瓶颈。
是 -> 系统上存在内存瓶颈,转至部分 3 部分 C,调整发生内存瓶颈的系统。

2.5 Windows 性能分析初步

同windows perfmon。

同样集中在 cpu,内存,io,网络上。

一般经验值:

网络

网络利用率阀值没有统一。 <30% or 80%?

冲突率: <1%

Packets Received Errors < 1%

I/O:

Disk Time % <90%

Avg. Disk Bytes/Read + Avg. Disk Bytes/Write <20K

Avg. Disk sec/Transfer <0.3 sec

队列长度:Queue Length <2

Avg. Disk sec/Transfer <18 milliseconds

内存

Available Mbytes >25%

Page in+out <20 次

内存泄露以及错误:

Pool Nonpaged Bytes : an increase of 10 percent or more from its value at system startup

Server -> Pool Nonpaged Failures shows the number of times allocations from nonpaged pool have failed - indicates that the computer `s physical memory is too small. 应为0

Server -> Pool Paged Failures indicate that either physical memory or a paging file is near capacity. 应为0

Server -> Pool Nonpaged Peak shows the maximum number of bytes in nonpaged pool the server has had in use at any one point. Indicates how much physical memory the computer should have.

处理器

利用率 <85%

每个CPU队列长度 <2

Context Switches/sec <5000次 或者<5% of total threads

3 高级应用

3.1 性能建模

从business layer、function layer、session layer、customer layer出发,借助日志分析工具挖掘系统负载模型、用户行为模型。

Mercury End User Management正是一个从client视觉出发的业务监控解决方案。

3.2 网络嗅探器

如ethreal,fiddler,以及 http debuger工具,诊断网络问题。

3.3 Loadrunner troubleshooting

各个环节都可能有问题。 (client,通信,服务器)

经验性步骤:

诊断vugen脚本、loadrunner场景设置、客户端硬件资源是否充足

判断服务器端各层是否达到资源上限

借助ethereal等网络嗅探器判断c/s通信问题

3.4 Linux性能分析与调优

深入了解:

进程/多线程编程

同步机制

Gdb 调试core

内核参数

3.5 Windows性能分析与调优

Windows 其他计数器

3.6 C语言调用dll 扩展测试脚本

Dll编写格式:

int __stdcall lr_getLinuxIOwait_end()

{

clnt_destroy(clnt);

}

.def文件

EXPORTS

lr_getLinuxIOwait_end @3

loadrunner调用dll函数:

lr_load_dll("my.dll");

3.7 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

3.8 计算机性能评测研究方向

Ø 相关理论研究(泊松分布排队论、MaKov模型、Monte carlo模拟、自相似理论)

Ø 负载特性Workload Characteristic的研究(Commercial Workload/ Technical Workload)

Ø 基准程序Benchmark的研究

Ø 性能指标的研究(全生命周期/高效能/TPO Total Productivity Ownership/SLA Servcie Level Agreement/QoS)

Ø 模拟器的研究(SimpleScalar/SimOS/SandOS)

Ø 测试系统的研究(Benchmark Factory/ServerScope/Benchmark Studio/LoadRunner/Forecast toolset)

Ø 监控系统Perfomance Evaluation(Intel Vtune/ EMon/ TeamQuest Lite/ ServerScope-Monitor/ Grid-View)

Ø 性能评测与体系结构的结合(Computer architecture analysis using workloads)

参见 http://www.cnblogs.com/jackei/archive/2006/11/20/565527.html

3.9 Mercucy performance center

http://www.mercury.com/us/products/performance-center/

4 性能测试书籍

《Microsoft .NET Web应用程序性能测试》

《软件性能测试过程详解与案例剖析》

《WEB性能测试实战》

《J2EE性能测试》

《  LoadRunner性能测试实战》

5 测试网站

http://www.51tester.cn

转载自:http://www.ptesting.com/archives/167.html

时间: 2024-07-29 02:22:08

性能测试学习线路图(建议)的相关文章

Linux运维工程师初级到高级学习线路图

51CTO推出的一系列Linux培训教程(绝大部分免费),适合Linux系统管理.开发.尤其适合Linux下系统运维! 通过这个线路图的学习,可以快捷.有目标性的指导Linux运维人员快速的成长. ...... --Linux基础入门的简介 --Linux系统目录及文件权限认识 --Linux系统常用命令操作 --Linux系统下简单服务的构建 --Linux Shell编程学习 --Linux主流服务及集群构建 --Linux系统内核优化 --Linux架构优化及深入编程 --自动化运维开发

IT兄弟连 HTML5教程 HTML5的学习线路图 第一阶段学习网页制作

学习HTML5技术可并不是简单学会几个新增的标签而已,HTML5现在可以说是前端所有技术的代名词.需要学习的语言和工具不仅多,对于刚接触他们的新人会感觉很乱.另外,前端开发也会细分很多个开发岗位,不同的岗位所涉及的技术也会有差别,所以先要确定自己的发展定位,收集要学习的内容,整理好学习的顺序.很多时候,成功除了勇气.坚持不懈外,更需要方向.也许有了一个好的方向,成功来得比想象的更快.如果在错误的路上奔跑,再怎么努力也是白搭.学习Web前端也是如此,首先应该选择一个正确的学习路线.HTML5学习线

资深大牛推荐学习路线建议

一位资深程序员大牛给予Java初学者的学习路线建议 java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍.这一部分的内容,同样适用于一些希望转行到Java的同学. 在大家看之前,我要先声明两点.1.由于我本人是Java后端开发出身,因此所推荐的学习内容是Java Web和Java后端开发的路线,非Java Web和J

性能测试学习笔记-如何管理loadrunner的临时文件

lr默认保存一些乱七八糟的文件到C:\Documents and Settings\wushi\Local Settings\Temp文件夹下,时间长了会占用大量空间. 在每台loadrunner的客户端机器上,都设置了一个lrtemp文件(可能是d:\lrtemp:也可能是e:\lrtemp).在打开controller后,到result settings设置一下路径,指到这个lrtemp文件下.等你保存好报告后,请将lrtemp里所产生的临时文件删除掉.这样就能避免这些临时文件占用大量空间了

对于源码学习的建议

banq老师对于源码学习的建议: 关于源码学习的问题,我的建议是:先用,再改,边改边学. 如果象读课本一样去读源码,毫无意义,书本知识是为了让读者容易理解而写,不是所有软件的源码都是为了让读者更容易理解而写. 边改边学边前进是一种黑客文化hackway, facebook奉行黑客文化

2015第16周六学习java建议

学习Java 建议: 尽量用 google 查找技术资料. 有问题在 stackoverflow 找找,大部分都已经有人回答. 多看官方的技术文档. ibm developerworkers 的文章质量整体上有保障. 平时花一些时间在 github 上阅读优秀项目源码. 入门(1-2 个月) 目标:参与简单的项目开发. 技能: 掌握 Java.经典的<Java 核心技术:卷1 基础知识>(或者<Java 编程思想>)必看,跳过其中的图形和 applet 章节.习惯查阅 Java A

转载:一位资深程序员大牛给予Java初学者的学习路线建议

一位资深程序员大牛给予Java初学者的学习路线建议 java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍.这一部分的内容,同样适用于一些希望转行到Java的同学. 在大家看之前,我要先声明两点.1.由于我本人是Java后端开发出身,因此所推荐的学习内容是Java Web和Java后端开发的路线,非Java Web和J

小小的学习FPGA建议

学习FPGA,一点小小的 建议或者总结分享. 语法层面搞懂阻塞和非阻塞语句,以及Verilog语言的时序描述方法,把自己想象成编译器,尝试去编译自己写的Module,不断总结自己设计的逻辑会综合出怎么样的电路. 搞明白同步和异步,最后,一定要熟练地掌握状态机的设计.这是最初级也是最基本的要求. 有人说语法太简单了,这是非常片面的说法,或者非常浅显的说法,虽然verilog类似C语言,但本质上区别很大.Verilog语言并不简单,尤其Module之间时序不能同步,本该同相的信号输出有相位差的时候,

测试人员学习线路图

你是谁?为什么你需要学习 你是一个测试行业的从业人员,目前主要的工作是功能测试和一些五花八门的专项测试. 你需要经常做一些重复性的工作,这让你感到未来很苍白:你需要晚上留下来加班验证缺陷写测试报告,这让你感觉很疲惫:当项目发布上线时你需要对天祈祷,祈求不要有严重的缺陷发生,这使你感到很没安全感. 这时候你想到了:也许学习一点新的技能会对现在的生活有所改变. 长远一点学习可以让你有更好的未来,感性一点学习让你会更多的安全感,现实一点学习也许能让你赚的很多. 这个线路图可以让你以比较平滑的曲线上升为