在使用LoadRunner时经常遇到这样一个问题,如果对不同的事务进行不同次数的循环该怎么处理?默认情况下LR对所有的事务都是统一执行的,即虽然有多个事务,但它们被执行的循环次数都是一样的,那么LR如何在一个脚本中实现不同事务不同次数的循环或不同百分比的循环呢?

案例:假设在一个脚本中,想实现注册执行3次,登录执行1次,查询执行2次,怎么办?录3个脚本?每个事务分别在脚本中复制N次?这样是可以解决问题,但不是最好的解决办法,LoadRunner提供了对业务流程的处理方法,即Block(块)技术。

首先,借用LoadRunner自带的订票系统,录制好这三个脚本,录制结束后,脚本如图6-14所示,包含三个业务:注册,登录和查询。

接着,对脚本中的三个业务的迭代次数进行设置,这里使用到的是Block(块)技术。

1)进入菜单Vuser→Run-time Settings,弹出Run-time Settings对话框,选择General→Run Logic选项卡,如图6-15所示。

 
(点击查看大图)图6-14  录制脚本
 
(点击查看大图)图6-15  Run Logic设置

2)选择Run,插入一个Block块,如图6-16所示。

3)选择Block0,点击Insert Action控钮,弹出Select Actions对话框,如图6-17所示,选中要添加的Action,点击OK按钮即可。

 
(点击查看大图)图6-16  插入Block块
 
(点击查看大图)图6-17  为Block块添加Action

4)重复以上操作,再新建两个Block块,分别为Block1和Block2,并为这两个块插入对应的Action,如图6-18所示。

 
(点击查看大图)图6-18  Block块和Action插入完成

5)将Block外面的Action删除,最后得到如图6-19所示的Block块。

 
(点击查看大图)图6-19  删除Block外的Action

6)设置Block properties。这里有两种选择:Sequential和Random。如果选择Sequential,在下面的Iterations中直接填入数值,那么Block中的Action都会按输入的次数执行。如果选择Random,下面还可以设置Block内各Action执行的百分比,如图6-20所示。

 
(点击查看大图)图6-20  Block Properties设置

按照前面的案例,只需要设置3个Block,每个Block中分别插入一个Action,设置执行次数分别为3、1、2即可,设置完成后,结果如图6-21所示。

 
(点击查看大图)图6-21  设置结束

整修Block(块)的设置完成,脚本将按期望的业务模型运行。

值得注意的一点就是业务迭代的总次数=该Block迭代次数×Number of Iterations,如图6-21中Block2中的Search迭代次数为2×1=2次,最终Search这个业务只迭代了2次。

转:Loadrunner——Block(块)技术的更多相关文章

  1. iOS之block块

    Block块. 1.声明Block int (^myBlock)(int n) = ^(int num) 类型 (^名称)(需要传的参数)= ^(参数) 2 __block 变量 在block块中修改 ...

  2. Linux内核系列之Block块层(一)

    .Block块层入口函数为 genhd_device_init(),先对该函数开始分析: 函数实现源码: static int __init genhd_device_init(void) {     ...

  3. 关于block块使用的6点注意事项

    对于刚学习OC新伙伴,block块一直都是一个比较纠结.比较难懂的知识点,不过,在使用一段时间后,就会感觉很酸爽.block块的原理及使用我就不再赘述,网上有很多这方面的资料.我个人使用这么长时间以来 ...

  4. 定义block块

    一: 工程图 二: 代码区 AppDelegate.h #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <U ...

  5. Objective-C中的block块语法

    #import <Foundation/Foundation.h> /* OC不同于Java C++ 它没有字符串对象 只有NS对象 NS就是乔布斯第一个公司NeXt的类集合 被收购之后才 ...

  6. 初探swift语言的学习笔记(闭包 - 匿名函数或block块代码)

    很多高级语言都支持匿名函数操作,在OC中的block也为大家所熟悉,然面在swift里好像是被重新作了一个定义,不叫匿名函数,或 block了,而叫闭包(closure).下面配合代码来理解一下swi ...

  7. 转:LoadRunner中参数化技术详解

    LoadRunner中参数化技术详解 LoadRunner在录制脚本的时候,只是忠实的记录了所有从客户端发送到服务器的数据,而在进行性能测试的时候,为了更接近真实的模拟现实应用,对于某些信息需要每次提 ...

  8. iOS开发之使用block块进行数据遍历的方法

    看了一篇文章,发现遍历数组.字典中的数据时,除了使用for循环外,还可以使用block块进行操作,瞬间感觉iOS的语言代码确实有点高大上的感觉,下面就简单的介绍一下这个方法. 首先是最基本的运用形式, ...

  9. 【Loadrunner】Loadrunner 手动关联技术

    Loadrunner 手动关联技术 录制成功,回放失败,怀疑和动态数据有关: 1 重新录制一份脚本,两次录制的脚本进行比对,确定动态数据,复制动态数据: 2  找到第一次产生该动态数据的响应对应的相应 ...

随机推荐

  1. AFNetworking 关于JSON text did not start with array or object and option to allow fragments not set 错误

    AFHTTPSessionManager *manager =[AFHTTPSessionManager manager]; [manager GET:@"http://www.baidu. ...

  2. setting up a IPSEC/L2TP vpn on CentOS 6 or Red Hat Enterprise Linux 6 or Scientific Linux

    This is a guide on setting up a IPSEC/L2TP vpn on CentOS 6 or Red Hat Enterprise Linux 6 or Scientif ...

  3. linux双线ip设置(不需额外增加路由表)

    linux 双线ip设置(不需额外增加路由表,只需修改下面就ok了)修改   vi /etc/iproute2/rt_tables              (增加电信和网通两个路由表) 增加252  ...

  4. ubuntn安装五笔输入法

    1.首先要把原来的 ibus 卸载掉 sudo apt-get remove ibus 2.添加源 sudo add-apt-repository ppa:fcitx-t(www.111cn.net) ...

  5. webstorm2016.2.4激活码

    测试日期:2016.11.07 webstorm版本:2016.2.4 系统环境:MacOS(windows环境应该也行) 激活码如下: 43B4A73YYJ-eyJsaWNlbnNlSWQiOiI0 ...

  6. RVM: instsallation

    login as user, do the following: curl -L https://get.rvm.io | sudo bash -s stable # add user to grou ...

  7. ios电话监听状态

    #import "ViewController.h" #import <CoreTelephony/CTCallCenter.h> #import <CoreTe ...

  8. HBase全分布安装配置

    分布式的hbase依赖于Zookeeper集群所有正常工作节点都必须能够访问zookeeper:用户可以通过启动和关闭脚本就可以把zookeeper当做hbase的一部分来启动和关闭进程:当然,用户也 ...

  9. Android状态选择器用法总结

    原创文章,转载请注明出处http://www.cnblogs.com/baipengzhan/p/6284682.html 本文首先列出常见状态选择器的创建,然后按照常用控件来分别列出状态选择器的具体 ...

  10. 终于购入Mac mini,发现HDMI接口与显示器不兼容,网购了一个VGA转换插头

    Mac mini买到了,最便宜的i5,$647,足够了. 发现路边捡的显示器没有HDMI接口,所以在学校图书馆问了一下IT 技术支持,给我推荐了ebay上$10块钱的转换器. 名字叫 Mini Dis ...