loadrunner之Paramater在負載測試中的數(shù)據(jù)生成規(guī)則。前段時間在做性能測試的時候,基于業(yè)務的需求,使用到了Unique Number的參數(shù)類型。 腳本的業(yè)務是注冊以alien開頭,后面接數(shù)字的用戶賬號,填寫相關賬號信息、提交企業(yè)信息進行審核。
前段時間在做性能測試的時候,基于業(yè)務的需求,使用到了Unique Number的參數(shù)類型。
腳本的業(yè)務是注冊以alien開頭,后面接數(shù)字的用戶賬號,填寫相關賬號信息、提交企業(yè)信息進行審核。
其中用戶賬號是alien開頭拼接一個唯一數(shù)字的參數(shù),如圖:

下面對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 <br> 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<br>the numbers 201-300, etc |
先用50個虛擬用戶跑場景(不設置持續(xù)時間,迭代10次)來驗證下這個官方解釋。場景跑完后會往數(shù)據(jù)庫中插入注冊的數(shù)據(jù)。這樣就可以用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 '企業(yè)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 '企業(yè)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 || '產生的數(shù)據(jù)為:' || RESULT);
END LOOP;
END;

程序運行結果如下:

因為start的大小設置為1,block size per...的大小設置為100,所以虛擬用戶1的起始數(shù)據(jù)是alien1,虛擬用戶2的起始數(shù)據(jù)是alien101,虛擬用戶3的起始數(shù)據(jù)是 alien201。。。。。。虛擬用戶10的起始數(shù)據(jù)是alien4901。因為Paramater是設置為每次迭代更新,在場景中迭代了10次,所以生成了alien2、alien102.....alien4902這樣的數(shù)據(jù)。這樣看是和官方解釋一致的。
注:懷著懷疑的態(tài)度去驗證,對loadrunner的相關規(guī)則和原理的深入剖析,才會理解的更加透徹。
|