《LoadRunner性能测试巧匠训练营》——3.2 场景设计实战

3.2 场景设计实战

Controller可以完成多种场景设计,如快增长、慢增长、组模式等,基本可以满足日常的性能测试场景需求。启动Controller后的新建场景界面如图3-1所示。

下面解释图3-1中的主要选项。
1)Select Scenario Type:选择场景类型。根据需要,可以选择手工场景和基于目标的场景。各子选项含义如下。

  • Manual Scenario:手工场景。就是手工指定场景如何运行,比较灵活,可以完成绝大多数的场景需求。此处还有一个选项,是否使用百分比模式,一般情况下不勾选。
  • Goal-Oriented Scenario:基于目标的场景模式。就是要设定一个目标,然后达到这个目标。例如,设定Hits per Second 100,接着设定虚拟用户数的范围(这个是和Manual Scenario不同的地方),最后根据设置的时间运行,如果没有达到既定目标,则可以选择停止运行或继续运行,如图3-2所示。

https://yqfile.alicdn.com/f346dc0cc3dc87a1d1517f1c0cb06fb8920eb683.png
" >

2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse按钮选择。
3)Scripts in Scenario:当选中要加入场景的脚本后,单击Add按钮,即可把脚本加入场景并在该列中显示。
此处小白选择了最常用的手工场景,并将之前练习的脚本加入场景,详细学习Controller。
3.2.1 集合点实战
下面将从什么是集合点、如何启用集合点和集合点的应用策略方面进行讲解。

  1. 理解集合点
    集合点是什么呢?仍以前面的跑步为例。所谓集合点,就是10名运动员从起点出发,要跑3圈,规定再次经过起点时要等待所有运动员全部到达后,才能进行第2圈的赛跑。集合点就是这个道理,它的意义在于最大程度地模拟并发。

    集合点并不能模拟真正意义上的并发,因为即使是通过集合点的虚拟用户,但由于网络等多种因素的影响并不能同一时刻到达服务器,仍有先后差异。
    
  2. 启用集合点
    在LoadRunner中启用集合点需要在编写脚本时加入,集合点函数为lr_rendezvous("集合点名称");。只需把集合点函数放到脚本的某个事务或操作之前即可。只有完成这步操作后,才能在Controller中启用集合点,方法为依次单击Insert→Rendezvous菜单项,如图3-3所示。

集合点不要添加到事务中,要放到事务外,否则事务的统计会把集合点的等待时间也统计进去。

  1. 集合点策略
    经过上面的操作就可以进入集合点策略设置界面,如图3-4所示。

图3-4中主要选项含义如下。
1)Rendezvous:集合点的列表,可通过下方的Disable Rendezvous按钮来启用或关闭。
2)Scripts:当前脚本的名称。
3)Vuser:当前设置的并发用户数,可通过下方的Disable VUser按钮来启用或关闭虚拟用户。
4)Policy(集合点策略):单击后进入策略设置对话框,如图3-5所示。

https://yqfile.alicdn.com/c5728fa1f161fdc5429a8aef6ec797451256ed1b.png
" >

图3-5中显示了常见的3种策略,其含义如下。

  • 当所有用户的X%到达集合点时释放。
  • 当所有正在运行的用户的X%到达集合点时释放。
  • 当X个用户达到集合点时释放。
  • 超时设置。表示等待用户超时的设定,如果在X秒内还没有满足要求的用户到达,则释放集合点。

到这里小白并没有停止思考,而是想到了以跑步为例再次理解集合点的3种策略。假设有100个运动员跑步,设置的集合点策略百分比均为100%,但这100个运动员并不是一开始就共同跑的,而是每隔1min加入10个运动员,即10min后才有100个运动员在跑步。这里100就是所有运动员数,而不同时间正在跑的运动员数量是不同的。对应到图3-5中,从上至下的策略(policy)作用如下。
第一个策略:是指当全部运动员都运行到了集合点函数时才释放。
第二个策略:是指当前时间如果只有10个运动员在跑步,那么只要这10个运动员都运行到了集合点函数就释放。
第三个策略:当到达集合点的运动员数达到设置的数量后就释放。
这下小白可算真正理解了集合点的含义以及策略的精髓了。
3.2.2 IP欺骗实战
下面将从以下几个方面来讲解IP欺骗的实践。

  1. 理解IP欺骗
    看到这个搞笑的命名小白心里一乐,这功能看着貌似很好玩。IP欺骗就是使不同用户有不同IP地址,这样最真实地模拟了现实场景。但有一点必须明白,对于一般系统而言,是否使用IP欺骗并不会影响性能测试。只有在特殊的要求下才会使用,如下面两种情况。

1)某系统限制了同一个IP用户在短时间内对系统进行恶意或大量的请求访问。
2)负载均衡策略是根据IP规则分配的。

  1. 启用IP欺骗
    想要启用IP欺骗需要做一项前置工作,就是本地的IP地址不能设置为“自动获取”,必须指定一个静态IP地址,否则会弹出如图3-6所示的提示。

静态IP地址指定好之后就可以设置IP欺骗了,步骤如下。
1)依次单击HP LoadRunner→Tools→IP Wizard进入设置对话框,如图3-7所示。

2)选择Create new setting,单击“下一步”按钮,出现如图3-8所示界面。
3)输入服务器的IP地址,或者留空也可以,单击“下一步”按钮,出现如图3-9所示界面。

4)单击Add按钮,弹出添加IP的对话框,如图3-10所示。
5)修改From IP为192.168.3.9,Number to add为5,单击OK按钮,出现如图3-11所示界面。

6)单击“完成”按钮,出现如图3-12所示界面。

7)单击“Save as”按钮可以将本次增加的IP地址保存成.ips 文件,下次再使用时就可以直接选择此文件了。单击OK按钮后完成设置。
8)进入Controller中,选择Scenario→Enable IP Spoofer,完成IP欺骗设置的全部操作。
如果想验证结果,那么可以在VuGen中编写代码(参见代码清单3-1),然后运行即可。

代码清单3-1 获得IP地址
Action()
{
char *ip;
ip = lr_get_vuser_ip();
if( ip )
lr_output_message("IP地址为%s" , ip);
else
lr_output_message("IP欺骗不可用");
return 0;
}
  1. 释放IP欺骗
    IP欺骗使用完成后千万别忘了释放,做事情一定要有头有尾,这样才完整。释放的操作十分简单,重复图3-9~图3-12所示的操作,并在图3-9中,单击Remove按钮,移除后再单击“完成”按钮即可。最后别忘了重启计算机,这样就完成了IP的释放。

3.2.3 添加Windows和Linux压力机实战
既然Controller是LoadRunner的“心脏”,那么压力产生也必然是它发起的,通过压力机来对被测系统产生压力。一般压力机分为Windows和Linux。当并发量比较大时建议使用Linux。

  1. 添加Windows压力机
    添加Windows压力机的步骤相对来说简单些,具体如下。

1)保证要添加的压力机上安装了LoadRunner Agent,并启用(状态栏中会有一个小卫星)。
2)添加的压力机与Controller所在机器要在同一个网段,建议把防火墙关闭。
3)本地系统的RPC服务要开启(在“控制面板”→“管理工具”→“服务”中开启,建议改为自启动)。
4)之后从Controller所在的机器上登录到压力机,验证是否可以连通。单击Windows系统的“开始”菜单,选择“运行”,在弹出的对话框中输入“\机器名”,如果不报错则成功。

建议关闭360等各类管理软件、杀毒软件,同时要拥有足够的权限。

5)进入Controller,依次单击Scenario→Load Generators菜单项,出现如图3-13所示界面,默认会有一台压力机,即本机。
6)如果想添加其他压力机,单击Add按钮,出现如图3-14所示界面。

图3-14中各选项的含义如下。

  • Name:这里很多人都会输入机器的名称,其实应该输入压力机的IP地址。
  • Platform:默认为Windows即可。

7)单击OK按钮,完成压力机的添加,然后单击图3-13右侧的Connect按钮,可以测试能否连通,如果连通,则会显示Ready状态。
8)最后可以把压力机分到对应的脚本上,如图3-15所示。

  1. 添加Linux压力机
    添加Linux压力机稍微复杂些,需要有一定的Linux基础,还好小白平时也经常使用Linux,所以心里松了一口气。添加步骤如下。

1)到HP官网下载HP_LoadGenerator,解压到本地后上传到Linux中,文件名为Linux。
2)在控制台输入chmod -R +x Linux/*命令,用于修改文件的权限。
3)在控制台输入cd Linux命令,进入Linux目录。
4)在控制台输入./installer.sh命令,进行安装,按照提示操作即可。
5)在控制台输入useradd -g 0 -s /bin/bash besttest命令,用于新增一个名为besttest的用户。
6)在控制台输入vi /root/.bashrc命令,用于编辑.bashrc文件,添加如下内容。

export PRODUCT_DIR=/opt/HP/HP_LoadGenerator
export M_LROOT=$PRODUCT_DIR
export LD_LIBRARY_PATH=${M_LROOT}/bin
export PATH=${M_LROOT}/bin:$PATH

7)在控制台输入su - besttest命令,切换为besttest用户。
8)在控制台输入cd /opt/HP/HP_LoadGenerator/bin/命令,用于进入安装后的默认目录中。
9)在控制台输入./verify_generator命令,用于验证配置是否正确。
10)在控制台输入m_daemon_setup start命令,用于启动服务,如果成功,则会显示类似下面的提示。

m_agent_daemon ( 22914 )

11)回到Controller里重复添加Windows压力机的步骤即可。这里需要注意的是,有一点和添加Windows压力机不同,如图3-16所示,要勾选Don’t use RSH复选框。

3.2.4 场景设计实战
场景设计其实就是设置场景的加压方式、运行时间、减压方式等。场景设计并没有好坏之分,因为目的不同,场景就有可能不同,小白学习了如下几种常见的场景设计模型。

  1. 快增长
    快增长的意思就是压力在瞬间启动并达到最大。设置方法为在Controller中的Schedule区域分别双击Start Vusers和Stop Vusers,然后选择Simultaneously,单击OK按钮即可,如图3-17所示。

这样的设置在场景中运行,会瞬间启动20个虚拟用户,持续5min后,瞬间停止这20个虚拟用户。

  1. 慢增长
    慢增长的意思就是压力按照设定的规则慢慢增加,当到达设置点后持续运行一段时间,然后慢慢减压。设置方法同快增长,如图3-18所示。

https://yqfile.alicdn.com/74a3d678597759ecbb71e5f65ca866e205b5132e.png
" >

这样的设置在场景中运行,会以每分钟增加5个虚拟用户的策略增长,当达到20个虚拟用户后,持续运行5min,然后再以每分钟停止5个虚拟用户的策略结束。

  1. 指定运行次数
    这里的运行次数是以虚拟用户数来判断的。例如,如果虚拟用户数是10,选择此种场景策略,则场景运行完10个虚拟用户数后自动结束。双击Duration并选中Run until completion即可,如图3-19所示。

如果对测试数据没有特别的要求,完全可以利用“指定运行次数”这样的场景策略来制造测试数据。
  1. 组模式
    组模式也比较容易理解,仍然以BestTest论坛为例。一些水军经常会注册登录论坛,然后发一些垃圾帖子,管理员要删除这些帖子。对于这样有先后顺序的场景选用组模式。

组模式中的策略有3种,分别如下。
1)在场景开始时启动执行。
2)在场景执行一段时间后开始运行。
3)当某个脚本完成后再运行选定的脚本。

时间: 2024-09-11 16:11:28

《LoadRunner性能测试巧匠训练营》——3.2 场景设计实战的相关文章

《LoadRunner性能测试巧匠训练营》—— 导读

前 言 国内软件测试行业人才缺口已突破20万,并随着需求的不断攀升而挺向30万大关.据悉,国外成熟软件企业,一个软件开发工程师对应1-2个软件测试工程师,而国内软件企业,平均8个软件开发工程师才对应1个软件测试工程师,比例严重失衡.国内测试行业在这一点上与国外的差距比较大.实际上,为了保证软件质量,从项目开始测试人员就要介入,要了解客户需求,参与项目评审,把握测试要点.如果测试人员数量少,软件质量是得不到保证的.测试行业的确需要大量人才,尤其是在性能测试方面有丰富测试经验的人才更加稀缺. 另一方

《LoadRunner性能测试巧匠训练营》——3.3 场景监控实战

3.3 场景监控实战 场景的设计学完后,接下来学习场景的监控,这是很重要的,在学习如下内容的同时要回顾1.3节中的知识. ** 3.3.1 监控信息概览与自定义脚本** 上面学习的都是Controller的Desgin界面中的内容,下面学习Run界面中的内容,这里主要完成场景的实时监控. 1. 虚拟用户数的监控与增加 首先观察左侧的Groups区域,如图3-20所示. 此处显示的是虚拟用户的状态,可显示出虚拟用户从准备.初始化.运行到停止的所有状态过程,同时能统计出成功.失败以及集合点处的虚拟用

《LoadRunner性能测试巧匠训练营》——第3章 LoadRunner Controller实战 3.1 Controller介绍

第3章 LoadRunner Controller实战 结束了LoadRunner学习的第一个里程碑,小白马不停蹄地开始了第二个里程碑的学习,那就是LoadRunner的Controller组件. 3.1 Controller介绍 Controller可谓是LoadRunner的"心脏",承担着多种工作任务.最常见的就是场景的设计.压力机的部署.脚本调度.监控以及数据收集.Controller的工作原理是,通过场景设计来模拟用户的真实操作并调用VuGen中的脚本,再通过设置的压力机产生

《LoadRunner性能测试巧匠训练营》——第2章 LoadRunner VuGen实战2.1 LoadRunner快速安装

第2章 LoadRunner VuGen实战 经过上面的学习,小白已深入理解了性能测试,接下来小白需要通过一个性能测试工具来引导他动手实践,毕竟实践才是王道. 经过查找资料,小白发现性能测试工具貌似比较多,但LoadRunner是目前比较流行的,所以小白决定先学习最流行的性能测试工具.下面就和小白一起来见识下LoadRunner 11的强大功能吧! 2.1 LoadRunner快速安装 在Windows下安装软件一般都是4个步骤:下载.安装.配置.验证.小白到HP的官网找到了LoadRunner

《LoadRunner性能测试巧匠训练营》——2.4 脚本编写实战

2.4 脚本编写实战 知识的学习都是从易到难的,所以小白选择了最简单的场景.以提前注册好的用户名besttest,密码123123完成登录.退出的业务.别小看这么简单的场景,也许你也和小白一样遇到了不少问题呢. 通过"开始"菜单下的HP LoadRunner →Application→Virtual User Generator打开并新建一个空白的Web(HTTP/HTML)协议的脚本,首次会出现Task视图界面,如图2-8所示. 初学者可按照图2-8中的步骤学习.因为这里不使用此视图

《LoadRunner性能测试巧匠训练营》——1.4 性能测试分类详解

1.4 性能测试分类详解 小白在学习过程中发现性能测试的种类繁多,但是实际执行起来又很难严格区分,所以小白觉得理解各种分类的特点和概念即可,没必要咬文嚼字. 1.基准测试 基准最简单的理解就是有基础的标准,这样能通过对比发现系统的不同点与变化.一般情况下,基准测试有以下几种应用场景. 1)可以在制定的标准下通过基准测试建立一个性能基准,这样以后当系统的环境.参数发生变化之后,再进行一次相同标准下的测试,即可看出变化对性能的影响.例如,数据库的基准性能测试. 2)系统进行基准测试可以在较早的阶段发

《LoadRunner性能测试巧匠训练营》——3.4 本章小结

3.4 本章小结 通过这段时间的学习,小白已经掌握了Controller中的关键要领,从场景的设计到监控,以及重要指标的分析都可以熟练完成,也算完成了第二个里程碑的学习,虽然心里很高兴,但也感受到了压力,需要补充学习的知识太多了.在本章的学习中,读者要注意灵活处理,很多东西并不是唯一的,没有对错之分,需要根据自己实际业务灵活调整与试验,切勿死板.下次小白将以实战方式学习LoadRunner的第三大组件Aanlysis并进行数据图表分析,让我们一起期待吧.

《LoadRunner性能测试巧匠训练营》——2.7 VuGen使用技巧

2.7 VuGen使用技巧 至此,小白可以松口气了,常规的录制.放回.设置.脚本编写已经完全掌握了,终于达到了一个里程碑,值得庆祝.不过闲不住的小白还是想利用休息时间继续看看LoadRunner的VuGen中的各种功能.2.7.1 协议嗅探 Portocol Advisor(协议嗅探)功能是LoadRunner 11中的新增功能,只是为了给大家选择协议时提供参考意见而已,这个功能不能全信,只是在我们没有头绪时,可以参考嗅探出的协议.协议嗅探使用步骤如下. 1)单击菜单File→Protocol→

《LoadRunner性能测试巧匠训练营》——1.3 性能术语与指标详解

1.3 性能术语与指标详解 小白理解了性能测试后就开始了性能测试基本概念的学习,首要任务就是深入理解重要的术语和指标,因为对这些术语和指标的理解是否深入.透彻,将直接影响后续的学习效果. 1.并发数 在理解并发数之前,先提出3个常见的概念,分别是系统用户数.在线用户数和并发用户数.小白发现很多人都会把这3个概念混淆,其实是不一样的.以BestTest的论坛作为例子,对应的解释分别如下. 系统用户数:简单地说就是该系统的注册用户数.例如,BestTest论坛里存在6666个注册用户,他们可以是活跃