LR的基本知识
1、三大组件:
VUG(virtual user Generator) 虚拟用户发生器,是一个集成开发环境,通过录制的方式记录用户的真实业务操作,并转化为脚本。
Controller 控制器,用于创建、运行和监控场景,并收集整理测试数据
Analysis 压力分析工具。用于展现controller收集到的测试结果。
另外一个特别的组件:
LoadRunner组件:压力产生器。它通过运行虚拟用户产生真实的负载。
2、工作流程(以登陆为例):
1)对一个用户执行登陆操作的过程进行录制,创建出原始的user脚本
2)VUG生产操作脚本以后,用controller完成场景设计、运行、监控等后续测试工作:
选择需要的脚本(做什么)
模拟3万个虚拟用户(哪些人)
添加3台load generator,且每台压力器分担1万个虚拟用户(什么地点)
以每秒加载2个用户的方式(如何做),并于晚上7点整(什么时间)开始执行脚本
上述场景设置完以后,并配置好服务端的相关设置以后,开始运行场景。(controller将脚本送到每个load runner 并进行实时监控)
场景运行结束时,每个压力器上的日志被送回controller,各项性能指标也会返回到controller
3)查看analysis,接收controller整理好的各种数据。通过对比查看或者更高级的配置设置,从而进一步分析测试结果,最终确定系统的性能瓶颈。
3、lr的脚本录制:
lr本身的录制功能:
html 录制
url录制
4、常用函数:
web_add_cookie() 添加cookie的操作
web_link()模拟用户点击一个超链接的操作
web_url() 模拟用户请求,是最常用的函数之一
web_reg_save_param() 关联函数
web_reg_find 用这个注册函数判断某个请求的返回中是否有我们要找的内容,这就是检查点。
web_sunmit_form() 函数会自动检测当前页面上面是不是存在form,然后将后面的itemdata数据对应传送,隐藏的表单数据系统会自行处理发送。
web_submit_data() 和web_submit_form()不同,web-submit_data()函数无需前面的页面支持,直接发送给对应的页面相关数据。当我们使用web_submit-data()函数,隐藏表单的数据会被记录下来作为ITEMDATA数据提交给服务数据
web_custom_request() 当请求比较特别时,LR无法简单使用上诉函数表达时,在录制中会遇到web_custom-request这个函数.该函数的作用是自定义http请求规则。该函数更适合在使用自定义的http请求规则中,处理二进制内容
lr_output_message() 作用是将内容输出到日志中。运行脚本后,相关内容就会显示在Replay Log,这个函数和C语言中的sprintf有些类似,同样在输出内容上是需要考虑格式的
lr_eval_string() 该函数作用是,可以帮助我们从参数中取得对应的值,并且转换成字符串。
lr_start_transaction 开始事务
lr_end_transaction() 结束事务
atoi()函数,将参数内容,转为整型数据类型
lr_rendezvous():设置集合点
lr_think_time():思考时间,即暂停或等待时间
lr_start_timer():记录现在时间作为一个开始时间
lr_end_timer():记录现在时间作为之前已经开始的开始时间的结束时间
lr_wasted_time():记录一个结束时间与开始时间的时间差值
lr_log_message() 向应用程序管理代理日志文件或LoadRunner Vuser日志发送消息。
lr_save_string("192.168.0.0:8080", "ip"). 将前面的值保存到后面的参数当中,供后面使用这个参数
lr_fail_trans_with_error 将打开事务的状态设置为 LR_FAIL 并发送错误消息
5、常用的分析指标:
结果摘要:LoadRunner进行场景测试结果收集后,首先显示的该结果的一个摘要信息,概要中列出了场景执行情况、“Statistics Summary(统计信息摘要)”、“Transaction Summary(事务摘要)”以及“HTTP Responses Summary(HTTP响应摘要)”等。以简要的信息列出本次测试结果。
平均事务响应时间Average Transaction Response Time
90 Percent Time 表示90%的事务,服务器的响应都维持在某个值附近, averagetime 就不是很准确,用这个时间来衡量。比如有三个时间:1秒、5秒、12秒,则平均时间为6秒,而另外一种情况:5秒、6秒、7秒,平均时间也为6秒,显然第二种比第一种要稳定多
业务响应时间
业务成功率(事务成功率):某些行业,如电信,金融,企业资源等需要达到98%以上
业务总数
CPU使用率
内存,·Available Mbytes
Page/sec (Input/Out) 为了解析硬页错误,从磁盘取出或写入的页数
Page Fault 处理器每秒处理的错误页(包括软/硬错误)
每秒点击数:反映了客户端每秒钟向服务器端提交的请求数量
网络
磁盘
6、lr提供了sql sever\ Oracle\DB2的监控方法,但是对mysql则没有,可以寻找第三方的工具,如Spotlight等
7、常见分析:
1、处理器队列堵塞判断方法:如果Processor queue length大于2,而处理器利用率一直很低,则存在处理器堵塞。
2、处理器瓶颈判断方法: 排除内存因素后,如果%processor time持续大于90%,并且%interrupt time的值持续大于15%,同时网卡和硬盘的值比较低,可以断定处理器负荷过重,无法满足业务增长需要,处理器是系统瓶颈点。
3. 监视内存不足的状况,可以通过 page/sec,Available Mbytes、page read/sec、page faults/sec等计数器的指标进行监控,还可以通过使用“页面交换”的频率来衡量。
“页面交换”是使用称为“页面”的单位,将固定大小的代码和数据块从RAM移动到磁盘的过程,从而释放暂时不使用的空间,这些页面文件就是操作系统用来虚拟内存的硬盘空面。操作系统对于虚拟内存主要设置两点,即内存页面文件的大小和页面文件存放的位置,内 存页面文件的大小就是设置虚拟内存最小和最大空间量,而页面位置则是设置虚拟内存使用哪个分区中的硬盘空间。
频繁的页面交换将降低系统性能,如果系统“页交换”频繁,说明内存不足。通过调优配置减少页交换,将显著提高系统响应速度。
4. 通过pages/sec指标判断是否存在内存问题,如果pages/sec持续高于几百,则有可能需要增加内存,以减少换页的需求,此时还应该进一步研究 页交换活动。如果pages/sec指标过高(几百),而硬盘数据流量不高(几百kb/s)则可确定是内存不足问题,如果pages/sec指标较高(几百),而此时硬盘数据流量也很高(几千KB /S),则可以判定是磁盘问题。
5.通过 available mbytes来判断是否存在严重内存泄漏问题,如果该值很小(<4M),则说明计算机上总的内存可能不足,或者某个程序始终占用而没有释放内存,系统存在严重的内存泄漏问题。
6.如果页面读取操作速率page reads/sec指标的值很低,同时%disk time和avg.disk queue length的值却很高,则确定为磁盘瓶颈,但如果Avg.sidk queue length增加的同时page reads/sec页面读取速率指标并未降低,则确定为内存不足。
8图册
Vusers(虚拟用户)图 ——描述虚拟用户在执行场景期间的相关行为
ERROR图——主要显示执行场景期间的错误信息
Transactions(事务)图 ——描述场景执行期间的事务的相关行为
web Resources(WEB 资源)图——深入分析WEB服务器的性能,进行系统的性能衡量和瓶颈分析
Web Page Diagnosticd网页细分图——深入分析网页性能信息,如: 安全性能分析,分析页面机器组件的大小和下载时间,对下载时间进行细分及网络/服务器处理时间衡量等。
System Resources 系统资源图。定位硬件问题
9、报告:
html报告
word报告
Crystal report 水晶报表
10 analysis 的常用操作
服务水平协议配置:SLA。 用于配置性能测试的目标
事务分析选项配置 Analysis Transaction 支持多种开启方式
图的合并
合并方式:叠加,平铺,关联
自动关联
数据的过滤筛选
全局筛选
概要报告筛选
单个图筛选
单个图的筛选(通过图例)