日升时奋斗,日落时自省
目录
1、Virtual User Generator (VUG)
1.1、WebTours系统
1.1.1、WebTours启动
1.1.2、WebTours配置
1.2、脚本录制
1.3、编译
1.4、脚本运行
1.5、加强脚本
1.5.1、事务插入
1.5.2、插入集合点
1.5.3、参数化
2、Controller
2.1、通过VUG打开
2.2、双加Controller打开
2.3、场景设计
2.4、运行场景
3、Analysis
LoadRunner基本了解:
LoadRunner是一种预测系统行为和性能的负载测试工具,通过模拟实际用户的操作行为进行实时性能监测,来帮助测试人员更快的查找和发现问题。 LoadRunner适用于各种体系架构,能支持广泛的协议和技术,为测试提供特殊的解决方案
提到LoadRunner不乏会提及到Jmeter,其实使用不会有太多的差别
(1)Jmeter没有录制脚本的功能(LoadRunner的录制功能一会解释)
(2)LoadRunner有很多测试场景相比Jmeter更多
(3)LoadRunner能够产出非常多丰富的测试报告中
LoadRunner下载后会有以下三个组件
Virtual User Generator (VUG):录制脚本(编写脚本)
Controller:设计场景,运行场景
Analysis:产生性能测试报告
三个组件构成的关系 VUG写脚本(同时进行脚本录制) -->Controller(场景运行)-->Analysis(产生测试报告)
WebTours是HP自带的一个测试网站,可以帮助我们更好的了解LoadRunner工具的使用。它是一个基于ASP.net平台的网站,提供了网上订票、查看订票信息、预定机票等功能
LoadRunner在我们下载好以后,WebTours也在其中
找到WebTours文件(这里为了启动WebTours,否则测试网站大体上是打不开的)
双击StartServer.bat(出现下面这样类似的就算是打开了,启动后不要关闭)
WebTours也是有自己的端口的,WebTours-->conf-->httpd.conf(配置文件)
Ctrl + F 搜索 Listen 后面的参数就是端口号
现在就可以访问WebTours网站了 :http://127.0.0.1:1080/WebTours/ (效果如下)
直接注册就行,当然也可以直接查询到当前注册的用户有哪些,先说注册
注册好以后,就可以登录了,当然了,如果忘了,还可以再注册,也可以来这个地方查找
WebTours-->cgi-bin-->users(包含所有用户的信息)
记事本打开后第一行就是密码 这里以jojo为例 ,其实密码就是bean
现在我们开始操作VUG进行脚本录制
进入开始编辑脚本页面:
分别介绍一下左边选项栏中各个选项
vuser_init:初始化(文件从始到终也就意味着脚本开始运行到结束运行过程中只运行一次)
Action:存放录制好的脚本(编写代码)这个文件可以运行一次,也可以运行多次,默认运行一次,初始化完成之后运行
vuser_end:程序退出时执行的,运行时机是action运行完成之后执行
Runtime Settings:设置脚本参数
Parameters:参数化会用到
开始录制后,进行常规登录操作即可,操作完成后,针对下面这个组件的功能进行点击
点击停止录制后 ,会将录制好的脚本加载到Action中(像下面这样,这些都是录制自动生成的)
注:这里很多代码都是没有用的,一般情况我们保留,url是我们需要的访问路径代码段留下来,剩下的代码可以进行删减或者注释掉(如果怕删错了可以注释掉,也可以重新录制),这里是已经删减过的
编译就是能不能正常跑,会不会删除后,误删的错误
前面说到了think_time(思考时间),录制代码会看见类似的,我们有的时删除有的时候可能忘记删除了,如果不想要可以在参数设置里进行忽略
涉及到函数 :
Ir_start_transaction("login")开始事务;
lr_start_transaction("login",LR_AUTO)结束事务:
这里演示在登录操作是设置一个事务
结束事务操作是一样的,都在右侧函数搜索框中找,这里针对结束事务解释一下
注:这里手动输入也是可以的,但是不一定记得住,建议搜索点击,不会出错
给友友们看一下,运行的效果:
集合点就是可以理解为拦截点,每次有很多用户登录,登录到了集合点要求个数之后就会开始拦截,其他用户要进行等待,直到这些用户全部下线结束
主要为了检验并发量的
涉及函数: lr_Rendezvous
注:这里不能体现集合点能容纳多少操作个数,需要到运行场景才能设置(运行场景就是Controller里面设置,后面会详细说Controller)
这里主要就是涉及用户登录的重复操作
如果我们想尝试多个用户登录,那一个一个复制吗(下)
不太方便吧,如果是10个还能勉强,如果一百个,复制一百个吗
这里参数化实现多个用户登录
用户参数化,密码也是要参数化的(方法一样)
这里还没有完,我们想跑多个用户,所以需要添加参数
注:这里我们需要设置一个参数,为了我们日志能看见对应的用户跑起来(看到对应的用户)
设置跑的次数,有几个用户就跑几次(如果为1,就只跑一个用户)
看一下,运行的效果
注:设置参数后,需要去调整日志参数
Controller主要包括场景设计和场景执行两部分,在VUG中编辑完脚本并将脚本加载到Controller组件中,即开始对脚本运行时的场景进行设计,当场景设计完成后,即可执行该场景
针对Controller打开方式有两个,当前脚本就是我们的运行场景或者当前脚本不是我们需要的运行场景
注:压力产生器==施压机器;施压机器:发起请求的角色,用户本地电脑,被压机器:处理请求的角色,服务器(点击ok后会以这么创建显示,稍微等会,可能有点慢)
首先就先来看一下进入之后的主界面
下面我们一个区域一个区域说
测试脚本的基本信息
设置运行相关内容
注:运行场景的设定,右侧图也会跟着变化(这是我修改后的图)
右侧显示:
启动两个程序:(搜索“服务”找到下面这个程序设置成启动)
图表显示:
系统数据监控
运行后的场景,(点击后可以查看详细内容,可以通过图来判断一些资源占用情况是否有问题):
Analysis是LoadRunner中的一个组件,它是对测试结果数据进行分析的组件之一,用来分析性能测试结果的数据图,但并不一定要对每个视图进行分析
如何打开Analysis,是由Controller的运行场景进行产生的(点击这里即可产生)
如何看Analysis生成报告:
点击需要查看的内容,有对应的图像显示:
同时可以添加观测内容图像:
图像合并观察(单个图像不方便观察对比,可以进行合并在一张图上)
例如:这里拿每秒点击量和吞吐量合并(在需要合并的图上点击merge graph)
注:这里需要对这些内容指标有一定了解,这里针对看出问题做出一个举例:
点击数上升,但是吞吐量没有上升,是请求没有发过来,还是请求处理失败了等原因需要自己去多尝试,得出经验