性能测试工具
1、loadrunner环境搭建及功能介绍
1.1、loadrunner的安装和破解
具体安装和破解方法在博客上搜一下,不做赘述。
1.2 、loadrunner基本组成
1.2.1、基本组件
loadrunner由4部分组成,分别是Virtual user generator、Controller、Load Generator、Analysis
(1)用户脚本(Virtual user generator):简称VuGen,录制与编写脚本的地方,就是通过录制或编写脚本来模拟用户的行为,同时会打印出日志信息,方便调试脚本;VuGen也是一个集成开发调试环境,在这里完成脚本开发并调试通过后就可以放到Controller中创建场景。
(2)控制台(Controller):是性能测试场景设计以及监控的地方,设计场景
(3)压力生成器(Load Generator):负责将VuGen脚本复制成大量虚拟用户对系统生成负载;由于生成的负载一般数量比较大,通过一台Controller调用多台Load Generator。
(4)结果分析器(Analysis):是收集测试数据后生成图表报告的地方,帮助我们分析数据并产生图片,方便对负载生成后的相关数据进行整理分析。
1.2.2、 loadrunner自带测试环境
启动系统自带的程序:开始-->HP Loadrunner-->Samples-->Web,先点击“Start Web Server”,启动服务
2、loadrunner脚本录制
2.1、Virtual user generator介绍
2.1.1、Virtual user generator简介
(1)Virtual user generator是一种基于录制回放的工具,可以把操作的步骤录制下来,自动转化为脚本
(2)在VuGen中录制得到用户的行为就好比虚拟了一个用户的行为,所以我们称之为Vuser,脚本称为Vuser Script
(3)Vugen进行用户行为模拟的流程
2.1.2、Virtual user generator 详细介绍
(1)Start Page 界面,这里提供了一些功能,新建脚本、协议探测器以及VuGen新功能介绍
(2)Vuser整个界面结构分为5个部分:菜单栏,工具栏,函数导航栏,脚本详细内容,脚本执行结果输出窗口
2.2、脚本录制
2.2.1、协议探测器
(1)协议选择的重要性:录制脚本之前,选对协议很关键,否则错误的协议会导致Virtual user generator录制不到脚本,或录制的脚本不完整,有些应用可能需要选择多种协议才能完整的记录客户端与服务器端的请求。
(2)如何选择协议:咨询开发设计人员;根据经验判定;自带的协议探测工具
(3)协议探测器的使用:
【1】启动系统自带的程序(HP Web Tours Application);
【2】启动loadrunner协议探测器 步骤
a、在Virtual user generator 下点击“放大镜”图标,或者Virtual user generator>>File>>Protocol Advisor>>Analyze Application
b、在Protocol Advisor界面Application type选择“Internet Applications”
(1)Program to analyze选择程序的路径,这里面我们选择Internet explorer,点击按钮“...”
(2)Internet explorer路径选择可以通过,开始-->Internet Explorer-->属性-->目标,获取路径
(3)复制Internet Explorer路径,在“Select Application”界面,选择“iexplorer.exe”点击打开。
2.2.2、录制脚本操作
a、案例——实现自带web系统功能:登录--退出操作
(1)录制前准备
i、启动测试环境(点击“HP Web Tours Application”,启动loadrunner自带测试程序)
ii、确定被测系统的类型(web(HTTP/HTML))
iii、录制采用的浏览器
iiii、被测服务器地址(http://127.0.0.1:1080/WebTours/)
(2)录制脚本
i、新建脚本选择网络协议
ii、设置录制选项
iii、开始录制(点击OK,开始录制,loadrunner自动打开浏览器http://127.0.0.1:1080/WebTours/,输入登录信息)
iiii、停止录制(点击停止按钮,脚本生成)
iiiii、查看脚本(Script、Tree)
2.2.3、Recording Options(录制设置)
(1)设置打开方式(3种)
i、菜单Tools-->Recoding Options
ii、快捷键 Ctrl+F7
iii、Start Record-->Options
(2)录制模式:分为HTML-based script、URL-based script
i、HTML-based script:HTML-based 方式对每个页面录制形成一条语句
ii、URL-based script:将每条客户端发现的请求录制成一条语句;在该模式下,一条语句只能建立一个到服务器的连接,并将通信过程中的很多隐藏的信息都录制出来。
a、两种录制模式的优点对比:
i、HTML录制级别会为每一个HTML用户动作产生一个单独的步骤,而且HTML方式产生的脚本非常简洁和直述,易于阅读。
ii、URL录制级别吧对服务器每个对象的请求,都录制成一个单独的请求,对业务过程有更好的控制。
b、如何选择两种模式
i、基于浏览器的应用程序推荐使用HTML-Based Script;
ii、不是基于浏览器的应用程序推荐使用URL-Based Script;
iii、基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-Based Script方式录制。
c、注意事项
i、脚本录制过程中,可以根据需要在HTML级别和URL级别之间灵活地切换,以获得最佳效果。
ii、解决录制过程中乱码:HTTP Properties-Advance-Support Charset:UTF-8
(3)HTML高级配置(两种录制方法)
i、根据界面录制的脚本
ii、根据接口方式录制的脚本
2.3、脚本的组成及函数
(1)了解Vugen脚本组成
(2) 了解函数的使用
2.3.1、Vugen脚本组成
(1)vuser_init:虚拟用户初始化;运行1次
(2)action:具体操作
(3)vuser_end:结束操作;运行1次
(4)总结:
i、vuser_init 和 vuser_end 都只能存在一下
ii、Action可分成无数多个部分
iii、在迭代执行测试脚本时,Vuser_init 和 vuser_end 中的内容只会执行一次,迭代的是ActionAction 内容。
2.3.2、函数
在脚本模式下,每行脚本都是函数,函数中的参数记录了客户端发送给服务器(请求request)的数据。
(1)web_url:直接请求了一个网页
(2)web_submit_data:用来生成表单的get或post请求
(3)web_image:通过单击图片链接请求打开一个网页
2.4、脚本回放流程
2.4.1、脚本运行及查看结果
(1)了解脚本回放及查看结果
(2)脚本运行
i、点击run或F5
II、查看结果(Output Window):包含录制、回话、关联等相关信息的输出管理
(3)lr一共包括4类日志文件(查看结果)
i、Replay Log(回放日志):是脚本回放是lr记录的日志信息,包括客户端与服务器之间的通信日志和HTML源码录制时的快照信息。
ii、Recording Log(录制日志):是录制脚本时产生的日志;是客户端和服务器端通信时的一些交互信息。
iii、Correlation Results(关联结果):是当脚本需要关联时,在回放脚本过程中会记录录制和回放时需要关联内容的值。
iiii、Generation Log(生成日志):脚本生成时产生的日志。
2.4.2、运行设置
(1)Run-time Settings(运行时设置)
(2)访问方式(三种方式)
i、菜单栏Vuser-->Run-Time Settings
ii、快捷键F4
iii、工具栏
(3)运行设置
i、运行逻辑(run logic):用来设置运行时脚本的迭代次数;设计Action脚本如何运行。
ii、Pacing:配置脚本运行中每次迭代之间的等待时间,如果需要周期性在脚本中重复做某些事情,可以通过Pacing来实现。
a、with与at的区别:
with是指前一次ending iteration到下一次Sarting Iteration之间的时间
at是指前一次Sarting Iteration到下一次Sarting Iteration之间的时间,所 以A包含了前一次迭代执行的时间
iii、log:要用于设置脚本回放时的日志格式,提供了一定的调试分析基础,脚本的回放验证很多时候都是依靠日志来实现的。
a、Enable logging:查看日志(需要勾选),然后设置日志输出标准,这个设置在调试的时候非常有用。
b、Send messages only when an error occurs:当脚本回放时出现错误信息时才收集日志,也即只收集错误日志信息。
c、Always send messages:收集所有日志信息,不管是正确的还是错误的日志信息
d、Standard Log(标准日志)
e、Extended Log(扩展日志):
Parameter substitution:将参数赋值操作为日志输出(输出内容为蓝色)
Data returned by server:表示不仅包括Parameter substitution的信息,还包括服务器返回到客户端的信息也会被记录。
Advanced trace:高级跟踪日志,所有虚拟用户信息及函数调用输出到日志文件中。
iiii、think time 思考时间:是指每个HTML请求之间的时间间隔。
a、ignore think time:运行脚本时忽略思考时间,即上一个http请求结束后,直接运行下一个http请求,不等待。
b、replay think time:
(1)as recorded:按录制时的思考时间来回放,即如果录制时间思考为9s,那么回放时也按9s来计算
(2)multiply record think time by:根据录制时思考时间的整数倍来运行。
(3)use random percentage of recorded think time:按录制思考时间的随机倍数来回放。
(4)limit think time to:设置think time的最大值,如果上面的设置项,在回放时使用的思考时间超过所限制的时间,那么以该限制时间为准进行回放。
综合上述,设置为忽略思考时间时,对服务器的压力最大,因为在同样的场景执行时间内,http请求之间的时间缩短说明向服务器提交的请求数增多了,所以服务器的压力增加;如果进行压力测试时,可以选择该项设置。
2.5、流程介绍
目标:了解loadrunner运行的流程:需求分析-->测试计划及方案-->测试执行-->结果分析
(1)运行流程:Vuser--> Controller(Load Generator)--> Analysis
Vuser:创建测试脚本
Controller:运行测试场景;监控测试场景
Analysis:分析测试结果
标签:loadrunner、性能测试工具