性能测试工具- LoadRunner

环境搭建

LoadRunner只能在windows操作系统上运行,MAC操作系统不支持,如果使用MAC操作系统,需要在MAC操作系统上安装一个虚拟机,再装上windows操作系统之后安装loadrunner,比较费事

360极速浏览器下载地址:http://chrome.360.cn/web/newfeature_7_2.html?w
注意是360极速浏览器,不是360浏览器

  1. 下载安装包

提前下载安装文件,必须下。
链接:https://pan.baidu.com/s/1Qqq3qPXZTj7CzaVaWFjk6A?pwd=kbfw
提取码:kbfw

  1. 安装loadrunner

注意,以下教程仅展示需要特别注意的步骤,其他步骤省略,没有特殊说明直接下一步即可
双击HP_LoadRunner_12.02_Community_Edition_T7177-15059.exe,弹出安装界面。
2、安装程序开始解压,选择默认路径即可,点击install
3、Loadrunner程序会使用到Visual C++的库,如果缺少这些库,安装程序会提示安装,这时选择“确
定”进行安装即可,过程中如果提示重启,按要求重启即可,重启后会继续进行安装过程。
4、按照默认操作一步步进行安装
5、安装过程中会有如下的提示。若无指定代理使用的证书,则去掉勾选。
image.png
安装完成后,界面出现三个图标,如图:
image.png

Loadrunner的基本概念

功能:LoadRunner是一种适用于许多软件体系架构的自动负载测试工具,从用户关注的响应时间、吞吐量,并发用户和性能计数器等方面来衡量系统的性能表现,辅助用户进行系统性能的优化。
原理:LR启动以后,在任务栏会有一个Agent进程,通过Agent进程,监视各种协议的Client与Server端的通讯,用LR的一套C语言函数来录制脚本,所以只要LR支持的协议,就不会存在录制不到的,然后LR调用这些脚本向服务器端发出请求,接受服务器的响应。至于服务器内部如何处理,它不关心。
LoadRunner通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,优化性能和加速应用系统的发布周期。

组成:LoadRunner主要包括三个前台功能组件,分别为VuGen(虚拟用户脚本生成器)、Controller(测试控制器)和Analysis(结果分析器)。系统会自动调用后台功能组件LG(负载生成器)和Proxy(用户代理)来完成性能测试工作。
VuGen 是录制与便携脚本的地方。通过录制或编写脚本来模拟用户的行为。
Controller 是执行负载测试管理和监控的中心。在这里指定具体的性能测试方案,执行性能测试,收集测试数据,监控测试指标。监控工具将测试过程中收集到的客户机、服务器和网络性能指标数据显示在监控页面上,便于测试人员对系统表现进行随时掌握。 (设计脚本运行场景)
Analysis 在测试完成后,对测试过程中收集到的各种性能数据进行计算、汇总和处理,生成各种图表和报
告,为系统性能测试结果分析提供支持。(产生性能测试报告)
LG 是模拟多用户并发访问被测试系统的组件。模拟多用户访问系统的前提是已经具备了虚拟用户脚本,VuGen是录制和编辑虚拟用户脚本的工具,录制好的脚本是不同语言表达的文本文件,在LG执行时被解析和执行。
Proxy 支持完成的脚本录制和回放过程。

在使用loadrunner之前,先了解一下几个概念:
Scenario:场景。所谓场景,是指在每一个测试过程中发生的事件。
Vusers:虚拟用户。LoadRunner使用多线程或多进程来模拟用户对应用程序操作时产生的压力。
一个场景可能包括多个虚拟用户,甚至成千上万个虚拟用户。
Vuser Script:脚本。用脚本来描述Vuser在场景中执行的动作。
Transactions:事务。事务代表了用户的某个业务过程,需要衡量这些业务过程的性能。
rendezvous:集合。当我们测试多个用户并发时,每个用户执行到该事务脚本的先后顺序是不确
定的,所以得到的测试结果也并不是一个完全 并发的极限测试结果。在开始事务之前 ,插入一
个“集合点”,那么在多用户执行时,就可以将用户请求停下来,直到用户数量达到满足的条件(默
认是100%的用户都到达集合点)。那么,所有的用户都将同时发出接下来的请求。

Loadrunner的性能测试过程:
image.png

制定性能测试计划:
分析应用程序、确定测试目标、计划怎样执行

**开发测试脚本 **
LoadRunner 使用虚拟用户的活动来模拟真实用户来操作Web 应用程序,而虚拟用户的活动就包含在
测试脚本中,所以说测试脚本对于测试来说是非常重要的。
开发测试脚本要使用 VuGen 组件。测试脚本要完成的内容有:

  • 每一个虚拟用户的活动
  • 参数化
  • 定义事物
  • 定义检查点

**设计运行场景 **
运行场景描述在测试活动中发生的各种事件。一个运行场景包括一个运行虚拟用户活动的Load
Generator 机器列表,一个测试脚本的列表以及大量的虚拟用户和虚拟用户组。
**运行、监视测试 **
一切配置妥当,开始运行测试。在运行过程中,需要监视各个服务器的运行情况(DataBase Server、
Web Server 等)。
**分析测试结果 **
所有前面的准备都是为了这一步。我们需要分析大量的图表,生成各种不同的报告,最后会得出结论。
LoadRunner用3个主要功能模块来覆盖性能测试的基本流程。

  • Virtual User Generator
  • Controller
  • Analysis

其中Virtual User Generator使用在创建VU脚本阶段,Controller用在定义场景阶段和运 行场景阶段,
Analysis用在分析结果阶段。

开发测试脚本

以Loadrunner安装时附带的样例程序Web Tours讲解。

  1. \HP\LoadRunner\WebTours,选择StartServer.bat启动服务。

image.png
在浏览器中输入192.168.32.1:1080/WebTours/
![9C5Q5J}I_VH]RXCA)DHJ3(F.png](https://img-blog.csdnimg.cn/img_convert/28dd56ef7be665f3ede33613a320ffc6.png#averageHue=#c7d3e1&clientId=uaa847724-7fce-4&from=paste&height=504&id=ub9c97961&originHeight=630&originWidth=937&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=67315&status=done&style=none&taskId=ub51bef59-a6a0-423f-887a-7b3d6c5fa7b&title=&width=749.6)
相关配置:
1)端口号为什么是1080:
PRWEF[1DMVFX)AC%Z{]_`}A.png
2)关于登录账号和密码
CL6OSUJ(PWIFE~62.png

录制基本的用户脚本

  1. 启动 Visual User Generator 后,选择File ->新建脚本

![T~ [ [ [SC(E]GPT3(YLBQ(V_7.png](https://img-blog.csdnimg.cn/img_convert/44d68fa2c85f20de92448897170447fe.png#averageHue=#f9f7f6&clientId=uaa847724-7fce-4&from=paste&height=355&id=u580cceab&originHeight=444&originWidth=508&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=94477&status=done&style=none&taskId=udd6d14bb-8f10-4bb2-b2b8-99a846218cd&title=&width=406.4)
因为要测试的是web项目,所以选择协议为Web-HTTP/HTML,点击创建后,进入主窗体
RVQH_~%41P2A9W8TDP(U2AV.png
image.png
VuGen 中的脚本分为三部分:vuser_init、vuser_end 和Action。vuser_init用于用户初始化,vuser_end用于用户清理工作。
Action用于具体的需要测试的操作。类似于JUnit等测试框架。

举例说明:
一个测试场景为:用户登录系统,进行搜索操作,再进行退出系统。
这里,一般将登陆放置到vuser_init,退出放置到vuser_end,搜索放置到Action。

在重复执行测试脚本时,vuser_init 和vuser_end 中的内容只会执行一次,重复执行的只是 Action 中的部分。

3、选择录制操作,可以开始一次录制操作,在录制中需要填写URL,这里以http://127.0.0.1:1080/We
bTours/为例。

点击开始录制,loadrunner会自动调用IE,并开始录制操作。这里以注册为例进行录制,录制完毕后,点击停止,录制停止,返回到脚本界面,可以看到已录制的脚本。

![XL F X I ‘ C 9 6 D ! [ W   ) U G 6 M L K B U F 3 FXI`C_96D%U9HRZ[9J_1.png](https://img-blog.csdnimg.cn/img_convert/c7de73b250a6976fce24e640c8ed6f44.png#averageHue=#f7f4f3&clientId=uaa847724-7fce-4&from=paste&height=537&id=ua7ddf55b&originHeight=671&originWidth=826&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=92797&status=done&style=none&taskId=u501efe87-ff95-4a44-8680-37d74c32391&title=&width=660.8) ![W~)UG6MLKBUF3 FXIC96D![W )UG6MLKBUF3ABPYKT)1.png
录制过程中,在屏幕上会有一个工具条出现。录制提供了暂停、停止、新增操作,增加事务、增加集合
点等操作。
![BDL$44I2Z0MUT)40([email protected]
此时,跳转到网页登录页面,输入账号密码,点击登录后,结束脚本录制。
点击运行:
image.png
![0D9X1MUM3G]NR41J)%]]1.png](https://img-blog.csdnimg.cn/img_convert/e2baaf770a9b9cc9e13994d38a2f805b.png#averageHue=#8bc8e3&clientId=u023f5d50-2edb-4&from=paste&height=132&id=uda95bf3c&originHeight=165&originWidth=763&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=28872&status=done&style=none&taskId=u2019a3db-44a8-4037-bf53-259651cf61f&title=&width=610.4)

插入事务

函数:

lr_start_transaction("Login");
lr_end_transaction("Login",LR_AUTO);

事务插入方式:
(1)
![BDL$44I2Z0MUT)40([email protected]
(2)右键
image.png
1689343549410.png

插入集合点 lr_rendezvous(“login”);

插入集合点是为了衡量在加重负载的情况下服务器的性能情况。(测试并发)

image.png
1689343648053.png

插入检查点

在进行压力测试时,为了检查Web 服务器返回的网页是否正确,VuGen 允许我们插入Text 检查点,这
些检查点验证网页上是否存在指定的Text,还可以测试在比较大的压力测试环境中,被测的网站功能是
否保持正确。检查点的含义和JUnit中的断言功能基本上一致。需要注意的是检查点要在请求之前把检查点进行注册
函数:web_reg_find();
通过菜单—查看—快照

web_reg_find("Fail=NotFound",
		"Search=All",
		"Text=Username",
		LAST);

1689344372730.png

参数化输入

如果用户在录制脚本过程中,填写提交了一些数据,比如要增加数据库记录。这些操作都被记录到了脚
本中。当多个虚拟用户运行脚本时,都会提交相同的记录,这样不符合实际的运行情况,而且有可能引
起冲突。为了更加真实的模拟实际环境,需要各种各样的输入。
参数化输入是一种不错的方法。
用参数表示用户的脚本有两个优点:

  • ① 可以使脚本的长度变短。
  • ② 可以使用不同的数值来测试你的脚本。例如,如果你企图搜索不同名称的图书,你仅仅需要写提交函数一次。在回放的过程中,你可以使用不同的参数值,而不只搜索一个特定名称的值。

参数化包含以下两项任务:

  • ① 在脚本中用参数取代常量值。
  • ② 设置参数的属性以及数据源。

参数化仅可以用于一个函数中的参量。你不能用参数表示非函数参数的字符串。
1689344686593.png
1689344793670.png
1689344827049.png
1689344897837.png
1689345046929.png
密码同样。
设置日志:选中扩展日志
1689345536759.png
运行数:
1689345585428.png

1689345727066.png
1689345990983.png

插入日志(两种)

lr_log_message("**************************login_end*******************************");
lr_output_message("***********************50行************************************");

1689346077747.png
1689346221791.png

插入函数

VuGen 中可以使用C 语言中比较标准的函数和数据类型,语法和C 语言相同。下面简单介绍一下比较常
用的函数和数据类型。
image.png

1689346543641.png

猜你喜欢

转载自blog.csdn.net/qq_53869058/article/details/131744229