前言:本文使用 LoadRunner 进行性能测试,针对 LoadRunner 的三大组件分别进行简单的介绍,例如 如何安装,如何进行录制,如何设计场景,如何对脚本分析,产生测试报告。
认识
LoadRunner是一种适用于许多软件体系架构的自动负载测试工具,从用户关注的响应时间、吞吐量, 并发用户和性能计数器等方面来衡量系统的性能表现,辅助用户进行系统性能的优化。
1. 什么是性能测试?
测试人员借助性能测试工具,模拟软件在不同场景下系统性能指标是否满足需求
2. 性能测试和功能测试的区别?
- 功能测试:重点是测试功能,测试功能是否满足客户的需求
- 性能测试:重点是测试性能指标,测试性能指标能否满足客户的需求
3. 性能指标
- 并发:大量用户在同一时间对系统同时进行请求;
- 并发数:上述并发中所有的用户数量就是并发数
- 业务层面的并发用户数:指的是同时向服务器发送请求的用户数量
- 后端服务器层面的并发用户数:指的是同时向服务器发送请求的请求数量
- 系统用户数(与上面进行区别):可以理解为该系统的注册用户数
- 响应时间:应用系统从发出请求开始,到客户端接收完所有的字节数据所消耗的时间
- 用户响应时间:完成某个操作所需要的时间。即从用户发出请求到用户收到响应的时间
- 系统响应时间:从系统收到请求到系统发出响应的时间
- 事务:代表着用户的某个业务过程。例如提交数据,删除数据等等
- 事务响应时间:程序处理一个事务所花费的时间
- 每秒事务通过数:每秒系统能够处理的事务数
- 点击率:用户每秒向Web 服务器提交的HTTP请求数。点击率越大,服务器压力越大。这里的点击并不是鼠标的一次点击,一次点击可能有多次HTTP请求
- 吞吐率:单位时间内系统处理的客户请求的数量;
- 思考时间:模拟正式用户在实际操作时的停顿间隔时间,从业务的角度来讲,思考时间指的是用户在进行操作时,每个请求之间的间隔时间;
- 资源利用率:不同系统资源的使用情况。包含CPU,内存,硬盘,网络等。
性能测试分类
- 基准性能测试:一般的性能测试,针对软件性能进行摸底;
- 负载性能测试:让系统背负一定的压力,观察系统各项性能指标是否出现拐点;
- 压力性能测试:让系统背负巨大的压力,压力测试往往会把系统搞崩溃;
- 可靠性测试:让系统在长时间进行运行,观察系统是否出现了性能相关的问题。
准备
首先进行下载
下载完成之后进行安装
安装注意事项(没提到的统一点击下一步即可):
安装完成之后会出现三个图标:
第一个用于脚本的录制,第二个用于设置测试场景,运行场景,第三个用于对脚本进行分析,产生测试报告
VUG的使用
VUG:即 Virtual User Generator,用于对事务进行脚本录制。
为什么要使用 VUG 而不使用其它的性能测试软件?
- 可以自动的录制脚本
- 可以产生丰富的报告
- 可以设计丰富的测试场景
首先用自带的网站进行脚本的录制:
查看 ip 以及端口号:
打开 WebTours 文件夹,点击 StartServer 里面就会有 ip(在录制过程中需要一直打开该命令框):
端口号:还是在 WebTours 文件中,点击 conf 文件夹,
通过上面的 ip 加端口号,我们就可以使用浏览器打开自带的网站:
可以点击上图中所示的位置进行账号的注册,也可以不用注册账号,LoadRunner 给了一个默认的账号:
以记事本的形式打开,第一行显示的就是密码:
进行脚本的录制
对上述网站的登录事件进行脚本录制;
- 打开 Virtual User Generator (简称 VUG)
- 创建一个新的文件:
创建好后如图:
- 点击小红点就可以开启录制(开始录制后就会自动打开浏览器,只需要进行登录即可)推荐360极速浏览器或者 文件中自带的火狐浏览器:
设置录制配置项:
- 进行登录,登录完成后停止录制
- 录制完需要将无用的代码进行删除
6. 删除完将剩余代码进行编译,然后再运行,检查上述删除是否有误
脚本加强
为什么:因为上述脚本无法完全覆盖性能指标,达不到性能测试的目的。例如 并发数,对 cpu 的监控等等,都无法在上述脚本中体现出来。
首先,需要打开 Steps Toolbox 视图:
在这个视图里面就包含了脚本加强的所需命令。
-
插入事务:为了衡量服务器性能。例如在脚本里面有一个数据查询操作,我们可以在此定义一个事务,而该事务就会在运行测试脚本时记录运行的时间,来反应服务器的性能。
-
插入集合点:为了衡量在加重负载的情况下服务器的性能情况。例如让10000个人同时提交数据,当设置集合点后,走的快的虚拟用户就会在该集合点进行等待,当10000个人都到达集合点时,这10000个人就会同时进行下面的操作。
-
插入检查点:为了检查Web 服务器返回的网页是否正确。这些检查点验证网页上是否存在指定的Text
点击OK后就会设置检查点:
因 Web 页面无 what 所以会报错:
-
参数化输入:用参数代替常量值,模拟实际环境的各种输入
在运行前需要设置一下对参数常量值的显示,这样才能在控制台中看机具体的参数是什么:
-
打印日志:对脚本运行过程中走到哪里或者完成了什么事务进行记录
Controller 组件使用
Controller:用于对 VUG 脚本进行场景测试。在这里指定具体的性能测试方案,执行性能测试,收集测试数据,监控测试指标。监控工具将测试过程中收集到的客户机、服务器和网络性能指标数据显示在监控页面上,便于测试人员对系统表现进行随时掌握。简言之:在这里面是用于设置脚本在什么的样的情况下,有多少虚拟用户运行了多少次,最后是以什么样的方式结束的
打开
- 在 VUG 中可以直接打开
- 还可以直接打开 Controller 软件,进行导入
设置
Initialize:设置脚本运行前如何初始化每个虚拟用户。包含三种方式:
- 同时初始化所有虚拟用户;
- 每隔一段时间初始化一定数量的虚拟用户;
- 在脚本运行之前初始化所有虚拟用户。
Start Vusers:设置虚拟用户加载的过程(指总的虚拟用户数)。包含2种加载方式:
- 同时加载所有虚拟用户
- 每隔一定时间加载一定数目的虚拟用户(在实际测试中一般会选在该方式)
Duration:设置场景执行时间。两种方式:
- 一直运行,直到所有的虚拟用户运行完成后,结束整个场景的运行;
- 设置具体的运行时间(天,小时,分,秒)
Stop Vusers:设置场景执行完后虚拟用户如何退出(只有 Duration 设置为按指定时间运行时才需要设置该项)。两种方式:
- 场景运行结束后,所有虚拟用户同时退出
- 每隔一定时间退出一定虚拟用户
运行
上述设置完成后,就可以转到 Run 页面进行运行了。
- 板块说明
当双击图标的时候,对于图表的详情就会在右侧展示。
2. 监控资源利用率
3. 点击 Start 运行场景
4. 分析场景
当运行完后可以点击如下图所示按钮就会打开 Analysis 组件,生成场景测试报告
Analysis 组件