关注于测试自动化和测试管理,我是一个永远的测试新手。

Loadrunner 重名事务的处理

上一篇 / 下一篇  2007-12-23 18:28:12 / 个人分类:Loadrunner

0A3I.EHCy*{3Y)\2B0Loadrunner 重名事务的处理51Testing软件测试网Z \)VL[ d6R2C

`1B V~$IY+o9q0今天遇到一个难题,是因为提交重复请求限制的问题,由于加这个限制的开发人员不在,因此我需要写脚本绕过这个限制;这个限制是这样的:连续提交同样的数据,有个若干时间的判断,例如是10秒,那么在10秒内则返回“太频繁”,如果在10秒和10秒外,则可以再次提交成功。

;@I/y*op(q m8?"`051Testing软件测试网l[ eg,f,U [0qje

我是这样来绕的,我把一个action的一个提交请求(web_submit_data)变成了二个请求,并手动修改了第二个的数据,这样再次迭代提交的数据就类似:A-B-A-B-A……这样就避免了这个问题。51Testing软件测试网_ezr0K
(各位大大不要PK偶,因为数据是有限的,因此不能做参数化,可能实现的方法比较土,我主要说的问题也不是这个)

~E6WS;i;gU b g051Testing软件测试网(G X;O| @*?1]

写了一个示例脚本来说明,如下:51Testing软件测试网4x9L `"^9V3Of7X
Action()
:Z G SvFv4B,V#f5@0{51Testing软件测试网6tVk/v&i i7sW\
        char *add  = "c:\\BaiduPKGoogle.txt";51Testing软件测试网Dp2b5PUnk1K#@
        long file;51Testing软件测试网Ez w)l)g5F4Y6f#J
        long a1,a2,b1,b2; //记录时间点
m)V^_4}.oy7B~7T0        int time_x1,time_x2;51Testing软件测试网Qk4hRRi?
        file = fopen(add,"a+");51Testing软件测试网c8O(l"v~HB9\
        lr_start_transaction("1");
!J9pr!e Q$p*RA0        a1 = clock();51Testing软件测试网e e ~x~!{g
        web_url("www.baidu.com",51Testing软件测试网4F-J7Z"o;b[5B
                "URL=http://www.baidu.com/",
Yc'F%\%{h!g0                "TargetFrame=",
)xb}t!w{i;Vx0                "Resource=0",51Testing软件测试网&TAI!V.A{k-y
                "RecContentType=text/html",51Testing软件测试网8K5LSW5Kpy]+a
                "Referer=",
I A\,a#s3H:zJ0                "Snapshot=t1.inf",51Testing软件测试网P8S+L-xTTrg3N)UV
                "Mode=HTML",51Testing软件测试网;sL*R\lB(e$_
                LAST);
cIQ._7[0        a2 = clock();
Zy2f!]4P,l8Vm|E k0        lr_end_transaction("1", LR_AUTO);
G!p G.H,b0x!S7iF0        lr_start_transaction("1");
%^#|AU L J%z4ZC0        b1 = clock();51Testing软件测试网$\s[{i_6T
        web_url("www.google.cn",51Testing软件测试网Pt9s AwvQ{TX5fo
                "URL=http://www.google.cn/",51Testing软件测试网E'tJ3?1O(~ x9{{o L
                "TargetFrame=",51Testing软件测试网i'M"b1A([
                "Resource=0",51Testing软件测试网 `J+fS9x8V&v!p5o
                "RecContentType=text/html",
#{;j.|&i rCU0                "Referer=",51Testing软件测试网/c a5ew{'g
                "Snapshot=t2.inf",51Testing软件测试网 G-_Te;V.uZ`9y
                "Mode=HTML",
7]hzZ2FTm-J0                EXTRARES,
NNa q? ~4e0s0                "Url=/images/nav_logo3.png", ENDITEM,
"ijKl,ja IMBE }0                LAST);
8|w&H5D0yhhFQ#s0        b2 = clock();
-]gw-h3^ _+S k:h0        lr_end_transaction("1", LR_AUTO);51Testing软件测试网8f3}TL,i4uE3F
        time_x1 = (int)(a2-a1);
md0t0AY"s W0t"M0        time_x2 = (int)(b2-b1);51Testing软件测试网|9P"J1Rd
        fprintf(file,"Baidu的时间差是: %d ms,Google的时间差是: %d ms\n",time_x1,time_x2);51Testing软件测试网qB v2}`6}(J
        fclose(file);
O A:P3EK y0        return 0;51Testing软件测试网I!A`(J:pN$K
}51Testing软件测试网.nc-lRcbn

}YEf [;[ qx0
#BMciri0在场景执行时发现,2次提交请求造成了事务的响应时间不好统计,因此我细分了事务,并且统一使用了同样的事务名称,如上例里的“1”;

.V)eIE;}eO051Testing软件测试网GI#aXHW8w,Q

这个脚本执行以后:
I @5T&Ce}(~$\-rz\!zV0"1"事务数Pass:520
-D%UsH8GR"@U ]0"1"事务数Failed:0
3R4Yp-\Z+Wl a9]m0"Action"事务数Pass:26051Testing软件测试网Y)~ f`b5~&y5X
"Action"事务数Failed:0
.k-q C[#H-m}$Uq0"1"事务的平均响应时间为:0.18秒左右51Testing软件测试网.L#b$IkkyAL

/~,O;bV,]q0其中,我通过fprintf函数打印出来的log是:
|h+v2H'ovB0Baidu的时间差是: 67 ms,Google的时间差是: 359 ms51Testing软件测试网$VY LT.Kg
……51Testing软件测试网q1l/H[+C/W;|W8H

,DR F#a wAn+p2I1l0通过执行结果,可以得出,lr在场景执行并统计响应时间、事务数等数据时,同样的事务名是一起来统计的。

`G {&Jz:B*@ p{ C/C0

AT!KyX.i0同样,我们还知道,在不同的脚本里使用同名的集合点,多脚本可以进行同步等待集合;那么结合这2个已知的,是否可以看到Controllor的一些技术实现呢???

JS7Z at0

9u9O lWFz?`\ [:tL0欢迎大家多讨论,一起深入学习51Testing软件测试网L4Y3g,^1a _EM


TAG: Loadrunner

sun9731的个人空间 引用 删除 sun9731   /   2008-11-06 15:13:34
5
不错哦。。。实用
 

评分:0

我来说两句

qiguojie

qiguojie

北京测试一草根儿

日历

« 2024-04-30  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 120424
  • 日志数: 39
  • 图片数: 1
  • 建立时间: 2007-06-05
  • 更新时间: 2011-06-29

RSS订阅

Open Toolbar