前段时间在做性能测试的时候,基于业务的需求,使用到了Unique Number的参数类型。

脚本的业务是注册以alien开头,后面接数字的用户帐号,填写相关帐号信息、提交企业信息进行审核。

其中用户帐号是alien开头拼接一个唯一数字的参数,如图:

下面对Unique Number进行相关解释,先引用官方资料:(相信大家也理解这段话的意思)

    Unique Number: Assigns a range of numbers to be used for each Vuser. You specify the start value and the block size (the amount of unique numbers to set aside 
for each Vuser). For example, if you specify a start value of 1 and a block size of 100 the first Vuser can use the numbers 1 to 100, the second Vuser can use
the numbers 201-300, etc

先用50个虚拟用户跑场景(不设置持续时间,迭代10次)来验证下这个官方解释。场景跑完后会往数据库中插入注册的数据。这样就可以用PL/SQL来进行验证。PL/SQL块内容如下:

DECLARE
RESULT VARCHAR(1024);
TYPE MYRECORD IS RECORD(
RES T_USER.FUSERID%TYPE);
REC_1 MYRECORD;
BEGIN
SELECT DECODE(MOD(MAX(TO_NUMBER(SUBSTR(FUSERID, 6, LENGTH(FUSERID)),99999999)),100),
0,
MAX(TO_NUMBER(SUBSTR(FUSERID, 6, LENGTH(FUSERID)), 99999999)) / 100,
ROUND(MAX(TO_NUMBER(SUBSTR(FUSERID, 6, LENGTH(FUSERID)),99999999)) / 100 + 0.5,0))
INTO REC_1.RES
FROM T_USER T
WHERE FUSERID IN
(SELECT A.FUSERID FROM YH_QYJCXX A WHERE A.QYMC LIKE '企业alien%');
FOR I IN 1 .. REC_1.RES LOOP
SELECT WMSYS.WM_CONCAT('alien' || SUBSTR(FUSERID, 6, LENGTH(FUSERID)))
INTO RESULT
FROM T_USER B
WHERE B.FUSERID IN
(SELECT A.FUSERID FROM YH_QYJCXX A WHERE A.QYMC LIKE '企业alien%')
AND SUBSTR(FUSERID, 6, LENGTH(FUSERID)) / 100 <= I
AND SUBSTR(FUSERID, 6, LENGTH(FUSERID)) / 100 > I - 1
ORDER BY TO_NUMBER(SUBSTR(FUSERID, 6, LENGTH(FUSERID)),99999999);
DBMS_OUTPUT.PUT_LINE('虚拟用户' || I || '产生的数据为:' || RESULT);
END LOOP;
END;

程序运行结果如下:

因为start的大小设置为1,block size per...的大小设置为100,所以虚拟用户1的起始数据是alien1,虚拟用户2的起始数据是alien101,虚拟用户3的起始数据是alien201。。。。。。虚拟用户10的起始数据是alien4901。因为Paramater是设置为每次迭代更新,在场景中迭代了10次,所以生成了alien2、alien102.....alien4902这样的数据。这样看是和官方解释一致的。

注:怀着怀疑的态度去验证,对loadrunner的相关规则和原理的深入剖析,才会理解的更加透彻。

loadrunner之Paramater在负载测试中的数据生成规则的更多相关文章

  1. java中json数据生成和解析(复杂对象演示)

    1.json简单介绍 1.1 json是最流行和广泛通用的数据传输格式,简称JavaScript Object Notation,最早在JavaScript中使用. 1.2 举个例子,下面是一个jso ...

  2. ContentProvider中的数据生成时机

    目录结构: , 先给个结论: 仅仅是实例化mySqliteHelper()这个类的时候是不会创建数据库的,实际上数据库的真正创建是在helper.getWritableDatabase()的方法执行后 ...

  3. 利用存储过程将表中的数据生成Insert语句

    1.创建存储过程 CREATE PROC [dbo].[sp_get_InsertSql] @dbName VARCHAR ( )= '' , -- 数据库名称 @tabList VARCHAR ( ...

  4. 将excle表中得数据生成insert语句插入到数据库中

    第一步:输入公式 第二步:拽住右下角得+往下拖拽

  5. 在大负载中使用LoadRunner进行负载测试()

    在大负载中使用LoadRunner进行负载测试,需要配置一些环境来满足大负载下各种资源的充足: 1.为了避免出现“No Buffer Space Available”的错误,需要进行如下配置: 1)修 ...

  6. jmeter之吞吐量、吞吐率、TPS、带宽及压力测试和负载测试及其区别

    一般使用单位时间内服务器处理的请求数来描述其并发处理能力.称之为吞吐率(Throughput),单位是 “req/s”.吞吐率特指Web服务器单位时间内处理的请求数另一种描述,吞吐率是,单位时间内网络 ...

  7. 性能测试vs负载测试vs压力测试-概念普及

    下面我们主要介绍性能测试.负载测试和压力测试. 效率作为ISO 9126内部和外部质量的重要质量属性之一,其含义是在规定条件下,相对于所用的资源的数量,软件产品可提供适当性能的能力.资源可能包括其他软 ...

  8. 性能测试vs负载测试vs压力测试

    下面我们主要介绍性能测试.负载测试和压力测试. 效率作为ISO 9126内部和外部质量的重要质量属性之一,其含义是在规定条件下,相对于所用的资源的数量,软件产品可提供适当性能的能力.资源可能包括其他软 ...

  9. Visual Studio进行负载测试,RIG和负载测试术语- Part II

    对于一个多用户的应用程序,性能是非常重要的.性能不仅是执行的速度,它包括负载和并发方面.Visual Studio是可以用于性能测试的工具之一.Visual Studio Test版或Visual S ...

随机推荐

  1. perl实现awk的功能

    perl -nla -F/\t/ -e"...", 其中-n: while(<>){...}-l: chomp-a: autosplit-F: 与a结合的分隔模式-e: ...

  2. HTML5七大优势“逼宫”APP

    HTML5颠覆了PC互联网的格局,优化了移动互联网的体验,接下来几年,HTML5将颠覆原生App世界. 跨平台: 在多屏年代,开发者的痛苦指数非常高,人人都期盼HTML5能扮演救星.多套代码.不同技术 ...

  3. IOS中GPS定位偏移纠正(适用于Google地图)

    在这个神奇的国度里,我们总得学习一些有中国特色的东东,例如“火星坐标”.也许有人还不知道这是什么玩意,我就简要介绍一下吧.      如果你有带GPS模块的智能手机,打开定位功能,然后访问Google ...

  4. Entity Framework 泛型使用

    因为增删改查是我们常用到的方法,我们不可能每个数据模型都去完成增删改查,这样的办法太笨拙了.我们可以写个父类(包含增删改查),然后让所有的数据模型类继承该父类.那就要求我们的父类必须使用泛型来实现. ...

  5. 33.allegro中Autosilk top, Silkscreen top 和Assembly top三个什么区别(转)

    Autosilk top, Silkscreen top 和Assembly top Autosilk top:最后出gerber的时候,自动生成的丝印层.会自动调整丝印位置,以及碰到阻焊开窗的地方, ...

  6. MATLAB GUI程序设计中ListBox控件在运行期间消失的原因及解决方法

    在运行期间,ListBox控件突然消失,同时给出如下错误提示: Warning: single-selection listbox control requires that Value be an ...

  7. B-tree/B+tree/B*tree [转]

    (原文出处:http://blog.csdn.net/hbhhww/article/details/8206846) B~树 1.前言: 动态查找树主要有:二叉查找树(Binary Search Tr ...

  8. Bootstrap入门二:响应式页面布局

    Bootstrap 提供了一套响应式.移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列.它包含了易于使用的预定义类,还有强大的mixin 用于生成更具 ...

  9. 用setTimeout 代替 setInterval实时拉取数据

    在开发中,我们常常碰到需要定时拉取网站数据,如: setInterval(function(){ $.ajax({ url: 'xx', success: function( response ){ ...

  10. OS X 使用技巧——轻松地调整窗口大小

    如果你想调整窗口大小,只需要把鼠标指针悬停在窗口边框上.当它变成双向箭头时,点击并拖动鼠标即可完成这一操作. 但在实际操作中,迅速把鼠标指针定位到边框上比较困难. 解决的办法是:在终端输入以下命令: ...