转:Loadrunner——Block(块)技术
在使用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(块)技术的更多相关文章
- iOS之block块
Block块. 1.声明Block int (^myBlock)(int n) = ^(int num) 类型 (^名称)(需要传的参数)= ^(参数) 2 __block 变量 在block块中修改 ...
- Linux内核系列之Block块层(一)
.Block块层入口函数为 genhd_device_init(),先对该函数开始分析: 函数实现源码: static int __init genhd_device_init(void) { ...
- 关于block块使用的6点注意事项
对于刚学习OC新伙伴,block块一直都是一个比较纠结.比较难懂的知识点,不过,在使用一段时间后,就会感觉很酸爽.block块的原理及使用我就不再赘述,网上有很多这方面的资料.我个人使用这么长时间以来 ...
- 定义block块
一: 工程图 二: 代码区 AppDelegate.h #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <U ...
- Objective-C中的block块语法
#import <Foundation/Foundation.h> /* OC不同于Java C++ 它没有字符串对象 只有NS对象 NS就是乔布斯第一个公司NeXt的类集合 被收购之后才 ...
- 初探swift语言的学习笔记(闭包 - 匿名函数或block块代码)
很多高级语言都支持匿名函数操作,在OC中的block也为大家所熟悉,然面在swift里好像是被重新作了一个定义,不叫匿名函数,或 block了,而叫闭包(closure).下面配合代码来理解一下swi ...
- 转:LoadRunner中参数化技术详解
LoadRunner中参数化技术详解 LoadRunner在录制脚本的时候,只是忠实的记录了所有从客户端发送到服务器的数据,而在进行性能测试的时候,为了更接近真实的模拟现实应用,对于某些信息需要每次提 ...
- iOS开发之使用block块进行数据遍历的方法
看了一篇文章,发现遍历数组.字典中的数据时,除了使用for循环外,还可以使用block块进行操作,瞬间感觉iOS的语言代码确实有点高大上的感觉,下面就简单的介绍一下这个方法. 首先是最基本的运用形式, ...
- 【Loadrunner】Loadrunner 手动关联技术
Loadrunner 手动关联技术 录制成功,回放失败,怀疑和动态数据有关: 1 重新录制一份脚本,两次录制的脚本进行比对,确定动态数据,复制动态数据: 2 找到第一次产生该动态数据的响应对应的相应 ...
随机推荐
- TFS 2012使用简介
为什么使用TFS 2012进行源代码管理——TFS 2012使用简介(一) 来源:雪雁 http://www.cnblogs.com/codelove/archive/2013/03/16/2963 ...
- zabbix3.2在lamp环境安装
zabbix官网下载zabbix-3.2.1.tar.gz wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20 ...
- perl版 Webshell存活检测
原理: 检测url返回状态即可 源码: #!c:\\perl\\bin\\perl.exe use warnings; use strict; use LWP::UserAgent; $| = ; p ...
- XCode工程内多Targets
XCode工程内多Targets 可以认为一个target对应一个新的product(基于同一份代码的情况下). 虽然代码是同一份, 但编译设置(比如编译条件), 以及包含的资源文件却可以有很大的差别 ...
- 《C++ Primer》之面向对象编程(四)
纯虚函数 在前面所提到过的 Disc_item 类提出了一个有趣的问题:该类从 Item_base 继承了 net_price 函数但没有重定义该函数.因为对 Disc_item 类而言没有可以给予该 ...
- 50个很棒的Python模块
50个很棒的Python模块 我很喜欢Python,Python具有强大的扩展能力,我列出了50个很棒的Python模块,包含几乎所有的需要:比如Databases,GUIs,Images, Soun ...
- innerhtml 和value值有什么区别
value 值写在标签里面的,innerHTML写在<button type="button" onclick="myFunction()">Try ...
- flash/flex 编译错误汇总
来源:http://blog.chinaunix.net/uid-366408-id-116463.html 代码 消息 说明 1000 对 %s 的引用不明确. 引用可能指向多项.例如,下面使用 ...
- Spring security 获取当前用户
spring security中当前用户信息 1:如果在jsp页面中获取可以使用spring security的标签库 在页面中引入标签 1 <%@ taglib prefix=" ...
- linuxmint更改权限
sudo chmod -R 777 要更改的目录或文件