LoadRunner
1. 学习过程:工具入门-》系统业务-》性能需求-》监控-》调优-》脚本开发
(1) 录制、回放、负载、得到结果。
(2) 理解协议原理、熟悉系统业务架构。
(3) 负载测试结果分析出问题、编写测试报告。
(4) 监控系统定位分析问题。
(5) 针对问题调优、学习操作系统原理、数据库等知识。
(6) 工具开发脚本。
2. 服务器测试,时间、空间。
3. 分类:狭义性能测试-在特定的运行条件下验证系统的能力的状态。验证系统是否有他宣
称的能力。
负载测试-被测系统上不断加压,直到性能达到极限。例:响应时间
压力测试-系统饱和状态下,cpu,内存系统能处理会话的能力,以及系统是否会出错。
并发测试-多用户同时访问同一应用,同一模块是否存在死锁或者其他性能问题。
配置测试-不同软硬件环境对性能的影响。
可靠性测试-在给系统加载一定业务的情况下运行一段时间,以检测系统是否稳健。一般选3天。
4. 性能测试指标:并发用户数、响应时间、单位时间内请求的事务数(TPS transction per second)、资源利用率。
(1) 响应时间:发起请求到服务器处理完成返回结果到客户端的时间。网络传输时间+服务器处理时间,不包括浏览器渲染时间。
(2)cTps: transaction per second (其他常见的 hps: hits per second每秒请求数、吞吐量:服务器处理能力。)
(3) 资源利用率:CPU利用率——不允许超过70%-80%
对列长度——队列越长,CPU利用率越高。
Mem利用率——80%以下
页交换频率——物理内存和虚拟内存交换频繁程度。
带宽利用率——100Mbps=12.5MB/s 1Byte=8bit
注:如果资源利用率太低,会造成资源浪费。
(4) 用户数:并发用户数,同一时间向服务器发送请求的用户数量。
注:和每秒的并发请求数不同,一定要确认需求的目的是并发用户数还是并发请求数。
5.性能测试流程
(1) 需求分析——测试对象: 常用的,核心的重要的、数据量、并发量。例如:登录、注册、搜索、添加购物车、支付、下单。
确定性能指标:吞吐量、响应时间、用户数、资源利用率。例如:每天完成交易额2亿,估算平均值客单价200-500,以300计算,求每秒最大交易数?28定律,80%的用户请求都集中在20%的热点数据上,或时间段。
总交易数:200000000/300=666666.66667总交易数量
80%的交易 666666.66667*80%=533333.33334
20%的时间 533333.33334/(24*20%)=111111.11111 每小时的交易数
每秒的交易数: 111111.11111/3600=30.8
测试的场景:单一场景。例如:登录、注册、搜索、添加购物车、下单、支付。
混合场景。例如:用户使用场景、系统使用场景。
(2) 测试计划:
测试目标
测试人员组织
测试进度安排
压力机配置、要求、数量
测试风险
(3) 测试方案
测试工具:Loadrunner:QTP(UFT) 、ALM
Jmeter
测试环境:尽量满足和生产环境一样。
测试策略:单一场景、混合场景。
监控工具:Linux : nmon, rpc, jvisua/vm, spotlight
Windows :Spoight, perfmon:exe
(4) 用例设计:
测试脚本:基于脚本的测试用例
场景设计:基于场景的用例。
(5) 测试执行
脚本编写:
场景监控设计:
运行场景:
场景监控:
测试报告:
(6) 定位分析问题
后端方面:代码、软件,如数据库、应用服务器
前端问题:
网络问题
6. Loadrunner 安装:windoes家庭版不能安装,支持IE9以下,不要安装杀毒软件、防火墙关闭。
7. Loadrunner组件: VuGen
Controller
Analysis
8. 协议探测器。打开首页后点击搜索图标。
9. Loadrunner脚本录制流程:
IE不能启动时 :64位的操作系统,选择program files(X86)下的IE浏览器
IE浏览器设置为默认浏览器
IE版本为IE9以下。
更换低版本的火狐浏览器。
卸载杀毒软件。
初始化开始,执行,初始化结束。Action可以有多个,vuser_init和vuser_end只能有一个。
10. 运行脚本及结果查看
View->test results->action summery 响应页面信息。
11. html不同录制级别
Options – recording – http/html level
Html based script:每一步打开网页的请求的操作封装成一个函数,无论有几个请求。接口形式web_url,不依赖上下文 页面形式 web_image,依赖上下文. 接口形式更准确。
url based script:每一步url请求都封装成函数
12. Loadrunner 流程简介
Tools->Crate Controller Scebario 创建场景。一般选择手工场景 Manual scenanio
13. 错误处理函数
viod lr_continue_on_error(0) 和 lr_continue_on_error(1 ) 配和使用。
14. lOadrunner录制java脚本,最高支持jdk1.6
15. java录制脚本适用范围
(1) 不太适合录制的业务功能点的测试,例如视屏播放,http文件下载。
(2) 利用java语言开发的应用系统
16. 脚本编写最佳实践
(1) Generate 录制或开发脚本
(2) SUSI 运行录制或生成的脚本,解决可能存在的关联性问题。
(3) SUMI 参数化脚本,在run_time 中设置迭代,再次运行,验证参数化问题。单用户多循环
(4) MUSI Controller里多用户运行脚本,验证脚本中可能存在的多线程同步问题。多用户单循环。
(5) MUMI 多用户多循环,即性能测试开始。
注:1-3是在VU中进行的,4-5是在Controller中进行的。
17. Loadrunner常见错误的处理方法
(1) 当一台主机上安装多个浏览器,录制脚本时经常遇到浏览器打不开的情况,解决办法:启动浏览器,打开Internet对话框,切换到高级,去掉启用第三方浏览器扩展的勾选,重启浏览器,再次运行VuGen.
注:可能是安装了杀毒软件,或者时安装了火狐,谷歌都会默认勾选。
(2) 录制的脚本存在乱码问题:录制之前,打开录制选项配置对话框record_options,进入advanced,勾选support charset ,然后选择支持utf-8,再次录制。
(3) error -26377:no match found for the request parameter ……if the data you save exceeds 1024bytes,use web_set_max_html_param_len to increase the parameter size.
参数化前把web_set_max_html_param_len(999999)值加大,
在关联函数前添加“NotFound=warning”
Web_reg_save_param_ex(
“ParamName=CorrelationParameter_1”,
“LB=114936.3”,
“RB=f”,
“NotFound=warning”,
……
)
(4)录制脚本为空
协议选择错误、没有选择jar包、检查防火墙和杀毒软件。
(5) Action c(16) :Error -27728:stept download timeout(120 second) has expired when downloading non-resource(s)
因为Http默认超时时间为120s,客户端发送一个请求到服务器端,如果超过120s没有接收到服务器返回的结果,则出现超时错误。解决办法:将超时时间设置的长一些,再设置发、多次迭代运行,如果还有超时现象,需要在“runtime setting> internet protocol:prefernces>advanced>options>”修改”HTTP-request connect timeout,http-request receive timeout,step downlod timeout ”的值,再次回放是否成功。
18. 关联设置
应用程序使用动态值,每次访问时值都会变化。Loadrunner将关联的值保存在参数中, 录制时使用。
19. Controller 简介
一般先进行负载测试,然后进行稳定性测试。
一般场景设计、场景监控。场景一般分为手工场景和目标场景。
(1)手工场景:
自行设置虚拟用户的变化,通过设计用户的添加和减少过程,来模拟真实的用户请求模型,完成负载的生成手工场景“定量型”性能测试,掌握负载的变化过程中系统各个组件的变化情况,定位性能瓶颈,并了解系统的处理能力,一般在负载测试和压力测试中应用,手工场景的核心就是设置用户负载方式。
20. 负载生成器
每生成一个虚拟用户,需要花费负载生成器2-3M的内存空间,通常运行controller的主机很少用作负载生成器,由其他主机担任,如果负载生成器的内存使用率大于70%,负载生成器就会变成系统的瓶颈,导致测试性能下降。
链接其他PC的负载生成器:
1.其他PC安装Load Runner
2. 进行代理设置,HP LoadRunner ->Advnced Settings ->Agent Configuration
3. 允许远程服务配置。
21. 系统资源监控 windows resource
1. 定位性能瓶颈
2. windows resource 右击 选择 add measurements
性能项 | 资源 | 评价 |
CPU占用率 | <70% | 好 |
70%~85% | 坏 | |
90%+ | 很差 | |
磁盘 | <30% | 好 |
30%~40% | 坏 | |
40%~50% | 很差 | |
网络 | <30%贷款 | 好 |
运行队列 | <2*cpu数量 | 好 |
内存 | 没有页交换 | 好 |
每个cpu每秒10个页交换 | 坏 | |
更多的页交换 | 很差 |
注:内存分页将虚拟内存空间和物理内存空间皆划分为大小相同的页面,如4kb,8kb,16kb,并以页面作为内存空间的最小分配单位,一个程序的页面可以存放在任何一个物理页面。