【测试】自动化测试工具LoadRunner的基本使用流程

时间:2024-03-19 11:28:41

1.LoadRunner的基本概念

功能:LoadRunner是一种适用于许多软件体系架构的自动负载测试工具,从用户关注的响应时间、吞吐量,并发用户和性能计数器等方面来衡量系统的性能表现,辅助用户进行系统性能的优化。

组成:LoadRunner主要包括三个前台功能组件,分别为VuGen(Virtual User Generator虚拟用户脚本生成器)、Controller(测试控制器)和Analysis(结果分析器)。系统会自动调用后台功能组件LG(负载生成器)和Proxy(用户代理)来完成性能测试工作。

三个组件:

【测试】自动化测试工具LoadRunner的基本使用流程

 

  • VuGen(Virtual User Generator):录制脚本,录制一个场景(在一个事务中),通过录制或编写脚本来模拟用户的行文;对用户名、密码参数化(使多个用户运行同一脚本,在本地修改用户名密码),到Controller;
  • Controller:设置场景、监控运行场景,收集数据到Controller;
  • Analysis:在测试完成后,对测试过程中收集到的各种性能数据进行计算、汇总和处理,生成各种图表和报告,为系统性能测试结果分析提供支持。

几个概念:

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

LoadRunner性能测试过程:

【测试】自动化测试工具LoadRunner的基本使用流程

 

2.过程

指定性能测试计划

主要有以下内容:分析应用程序、确定测试目标、计划怎样执行

开发测试脚本

LoadRunner 使用虚拟用户的活动来模拟真实用户来操作Web 应用程序,而虚拟用户的活动就包含在测试脚本中,所以说测试脚本对于测试来说是非常重要的。

开发测试脚本要使用 VuGen 组件。测试脚本要完成的内容有:

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

设计运行场景

运行场景描述在测试活动中发生的各种事件。一个运行场景包括一个运行虚拟用户活动的Load Generator 机器列表,一个测试脚本的列表以及大量的虚拟用户和虚拟用户组。

运行、监视测试

一切配置妥当,开始运行测试。在运行过程中,需要监视各个服务器的运行情况(DataBase Server、Web Server等)。

分析测试结果

所有前面的准备都是为了这一步。我们需要分析大量的图表,生成各种不同的报告,最后会得出结论。

LoadRunner用3个主要功能模块来覆盖性能测试的基本流程。(从上到下依次执行)

  • Virtual User Generator
  • Controller
  • Analysis

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

3.具体使用过程

准备

选择StartServer.bat进行启动:

【测试】自动化测试工具LoadRunner的基本使用流程

 

虚拟用户及密码的管理:

【测试】自动化测试工具LoadRunner的基本使用流程

 

可以选择火狐浏览器或者IE:

【测试】自动化测试工具LoadRunner的基本使用流程

 

脚本录制

新建脚本

【测试】自动化测试工具LoadRunner的基本使用流程

 

创建脚本:因为要测试的是web项目,所以选择协议为Web-HTTP/HTML,点击创建后,进入主窗体(还可以在Single Protocol里面找)

【测试】自动化测试工具LoadRunner的基本使用流程

 

在init中初始化,end中释放资源,在action中录制脚本

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

 

【测试】自动化测试工具LoadRunner的基本使用流程

脚本录制

 

【测试】自动化测试工具LoadRunner的基本使用流程

 

【测试】自动化测试工具LoadRunner的基本使用流程

最后结束录制

【测试】自动化测试工具LoadRunner的基本使用流程

也可以在录制脚本中插入事务

法1.在点击插入事务处右击

【测试】自动化测试工具LoadRunner的基本使用流程

 

2.法2

【测试】自动化测试工具LoadRunner的基本使用流程

 

3.法3

【测试】自动化测试工具LoadRunner的基本使用流程

 

注:对于事务要有始有终;

插入检查点

在进行压力测试时,为了检查Web 服务器返回的网页是否正确,VuGen 允许我们插入Text 检查点,这些检查点验证网页上是否存在指定的Text,还可以测试在比较大的压力测试环境中,被测的网站功能是否保持正确。检查点的含义和unittest中的断言功能基本上一致。找页面里面的文本利用快照,做快照时一定要放到鼠标要点击做快照的代码处;

找快照:

【测试】自动化测试工具LoadRunner的基本使用流程

 

文本检查:在想要检查的文本处右击

【测试】自动化测试工具LoadRunner的基本使用流程

文本检查:

【测试】自动化测试工具LoadRunner的基本使用流程

 

 

【测试】自动化测试工具LoadRunner的基本使用流程

生成代码:此时应该确定页面加载好后在进行文本检查,加上"SaveCount=reservation_Count"

【测试】自动化测试工具LoadRunner的基本使用流程

 

编译运行:

【测试】自动化测试工具LoadRunner的基本使用流程

 

参数化

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

参数化输入是一种不错的方法。

用参数表示用户的脚本有两个优点:

① 可以使脚本的长度变短。

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

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

① 在脚本中用参数取代常量值。

② 设置参数的属性以及数据源。

过程:

创建关联

【测试】自动化测试工具LoadRunner的基本使用流程

【测试】自动化测试工具LoadRunner的基本使用流程

 

出现关联:

【测试】自动化测试工具LoadRunner的基本使用流程

 

把让jojo出现的地方都用参数替换:

【测试】自动化测试工具LoadRunner的基本使用流程进行修改替换:

【测试】自动化测试工具LoadRunner的基本使用流程

 

此时脚本中所有的jojo用{username}替换掉了

【测试】自动化测试工具LoadRunner的基本使用流程

 

添加虚拟用户:

首先确保虚拟用户在下面文件中存在,可以自行添加

【测试】自动化测试工具LoadRunner的基本使用流程

 

选中username右击:

 

【测试】自动化测试工具LoadRunner的基本使用流程

出现:

【测试】自动化测试工具LoadRunner的基本使用流程

 

先查看username.dat里面的内容,发现只有一个用户

【测试】自动化测试工具LoadRunner的基本使用流程

 

添加虚拟用户:

两种方法:这种方法比较麻烦,需要一次一次的添加

【测试】自动化测试工具LoadRunner的基本使用流程

 

第二种:

【测试】自动化测试工具LoadRunner的基本使用流程

 

最后查看文件,用户名已经添加进去了

【测试】自动化测试工具LoadRunner的基本使用流程

 

这里要加上"NotFound=warning",否则运行会出错,因为长度有溢出

【测试】自动化测试工具LoadRunner的基本使用流程

 

这样的话,还是不行的,知只是让一个用户去执行,只运行了一次,还需要更改运行时逻辑

此处下面没有确定按钮,直接enter即可:

 

【测试】自动化测试工具LoadRunner的基本使用流程

 

以日志形式输出:

先加上一句话:lr_output_message("username=%s",lr_eval_string("{username}"));

用log日志:

【测试】自动化测试工具LoadRunner的基本使用流程

打印符号,让结果更加明显:

【测试】自动化测试工具LoadRunner的基本使用流程

效果:后面几个是一样的,就是用户名是他自己的用户名

【测试】自动化测试工具LoadRunner的基本使用流程

函数

1.控制脚本流程

if { } else { }

for{ }

while{ }

2.字符串函数

strcmp 比较两个字符串

strcat 连接两个字符串

strcpy 拷贝字符串

注意:在VuGen 中,以char声明的字符串是只读的,如果试图给char类型的字符串赋值的话,编译会通过,但在运行时会产生“Access Violation”的错误。解决这类问题,就是把字符串声明为字符数组,比如char[100]。

3.输出函数

lr_output_message 输出一条消息

4.LoadRunner提供的标准函数

lr_eval_string 该函数功能是得到参数(参数化输入中)当前的值

exg: lr_output_message("temp = %s", lr_eval_string("{WCSParam2}"));

lr_save_string 该函数功能是把一个字符串保存到参数中

操作:判断用户是否为jojo

【测试】自动化测试工具LoadRunner的基本使用流程

结果:

【测试】自动化测试工具LoadRunner的基本使用流程

场景创建

在VuGen中,把之前的用户数改为1进行controller

【测试】自动化测试工具LoadRunner的基本使用流程

因为电脑不太行,所以虚拟用户数只设置了3个人(同时做这个操作的人数有3个)

【测试】自动化测试工具LoadRunner的基本使用流程

自动进入Controller

进行的是并发测试

一般用本台电脑上的loadrunner测服务器上的系统,进行配置:

【测试】自动化测试工具LoadRunner的基本使用流程

  • name为测得系统所在服务器的IP值
  • platform:系统类型

【测试】自动化测试工具LoadRunner的基本使用流程

加完之后点击ok后,还要去检查能不能连接上,点击Connect

【测试】自动化测试工具LoadRunner的基本使用流程

 

  • 点击view script到达virtual user界面
  • 点击run-time Settings到达,和virtual use中的是一样的,也可以在这修改东西

【测试】自动化测试工具LoadRunner的基本使用流程

场景的设置:

从上到下分别设置初始化虚拟用户、虚拟用户开始运行的方式、运行时间、停止运行方式

【测试】自动化测试工具LoadRunner的基本使用流程

 

有多个组的时候选择group:

【测试】自动化测试工具LoadRunner的基本使用流程

1.第一个场景:初始化

选择中间的,初始化一个用户需要多长时间

【测试】自动化测试工具LoadRunner的基本使用流程

2.第二个场景:启动用户

【测试】自动化测试工具LoadRunner的基本使用流程

3.第三个场景:持续运行的时间

(疲劳性测试或者稳定性测试要求持续的时间长)【测试】自动化测试工具LoadRunner的基本使用流程

 

4.第四个场景:退出

【测试】自动化测试工具LoadRunner的基本使用流程

右边的图形曲线的走向和左边的设置是相关的

【测试】自动化测试工具LoadRunner的基本使用流程

场景的运行

两种方法

方法1:

【测试】自动化测试工具LoadRunner的基本使用流程

方法2:

【测试】自动化测试工具LoadRunner的基本使用流程

 

四个窗口

【测试】自动化测试工具LoadRunner的基本使用流程

到达集合点时,点击率最高

错误率=(错误用户数+失败的用户数)/所用的并发用户数

【测试】自动化测试工具LoadRunner的基本使用流程

运行完之后会自动跳转到Analysis:

【测试】自动化测试工具LoadRunner的基本使用流程

然后会生成报告

【测试】自动化测试工具LoadRunner的基本使用流程

 

用户运行时间:在运行时和当初设置的不一样(因为系统复杂性)

【测试】自动化测试工具LoadRunner的基本使用流程

点击率:每秒钟并发用户向服务器发送请求的个数

【测试】自动化测试工具LoadRunner的基本使用流程

信息处理量:

【测试】自动化测试工具LoadRunner的基本使用流程

事务的总结:

【测试】自动化测试工具LoadRunner的基本使用流程

(还有表和图,没有列完)

增加条目:

【测试】自动化测试工具LoadRunner的基本使用流程

【测试】自动化测试工具LoadRunner的基本使用流程

合并图:

【测试】自动化测试工具LoadRunner的基本使用流程