产品的质量依赖于过程的质量, 而过程的质量依赖于企业文化和管理! 欢迎大家来到我的小窝~!

LR脚本录制技巧之多用户并发(转)

上一篇 / 下一篇  2010-12-17 11:22:34 / 个人分类:测试开发

LR脚本录制技巧之多用户并发

Gf}5h x;P-a0

 

L M\[FU0

[2008-7-30]51Testing软件测试网qi2l0\ | _

 在进行压力测试设计时,总会碰到一些case需要考虑用户实际的行为对系统的影响。使用lr录制脚本时,有很多方法都可以模拟用户的真实使用状态,例如:51Testing软件测试网-n:o9FQ;X*fa
  1lr_think_time()函数的使用可以模拟用户浏览的操作;
wJgP.P2`6o0
  2、模拟Network Speed(Runtime-setting下的Network-Speedsimulation),可以模拟用户访问速度为最大带宽、自定义带宽以及各个连接模式的带宽(ADSLISDN等);
4LFc Sb9_0
  3、代理设置(Runtime-setting下的Internet里的proxy设置),可以模拟用户访问的代理服务器设置;51Testing软件测试网&E#@#ow'a'WsH
  4IP欺骗,设置IP欺骗可以模拟vuser使用不用的IP进行脚本运行,具体设置请参考51testing里的相关。帖子

e Lq | x3eE0

  如果一个页面上有很多业务项入口,我们要测试用户访问后会选择某个业务项进入浏览的压力,这个时候我们可以考虑如下设置来模拟:
/MN n7y9Y w0
  1、分别录制多个脚本,在场景控制器中加载多个组,应用不同的组策略来模拟用户的业务访问:51Testing软件测试网UMv(j_%~(Cu
  例:有100个用户登录首页,然后有30个人去访问【新闻】业务,有40个人访问【财经】,还有30个人访问【论坛】;51Testing软件测试网|#^:l^0f3Rq
  (1)、分别录制访问【新闻】、【财经】、【论坛】的脚本 ;51Testing软件测试网'KHq\)XLQo
  (2)、使用场景控制器(Controller)
g7D3M7M6Ub@p5cF"L0
  (3)、添加组(group)【新闻】脚本,设置vuser数为30;添加组(group)【财经】脚本,设置vuser数为40;添加组(group)【论坛】脚本,设置vuser数为30

!g2Y M"nwk4e0

  2、在一个脚本里录制多个action,然后使用集合点(rendezvous)来一起运行多个action51Testing软件测试网 I*D{M q7A#Q
  例如:有100个用户登录首页,然后平均访问【新闻】、【财经】、【论坛】;51Testing软件测试网Us J)^5t#i.`
  (1)、分别录制访问【新闻】、【财经】、【论坛】的脚本到不同的action里 ;
0`!\2i@)B*e0
  (2)、在每个action脚本主函数action(){}的开始设置同一个集合点(名称相同);51Testing软件测试网I LG3MLf'WL1k{F!A(t
  (3)、使用场景控制器(Controller)设置100vuser运行,即可达到平均访问3个业务的效果。

[$HQ\%B m|9n0

  除了上面的方法,我再介绍一种使用随机数的方法:
j;UO~J3{TN4VF0
  例如:未知用户数量,有70%的人使用百度( http://www.baidu.com),有17%的人使用谷歌(http://www.google.cn),有7%的人使用yahoo(http://search.cn.yahoo.com),剩余的人使用搜狗(http://www.sogou.com)进行搜索,那么怎么模拟呢?51Testing软件测试网9`0s'H@"M

  脚本示例如下:51Testing软件测试网z \0u]&Z ]$Zpr

Action()
t]2I5{u0
{
x:L-e-{eM6gbs0
 int which; //存储随机数的变量

3EHQ {1Nbq'y;uo0

 which = rand()%100; //生成0-99的随机数并赋值给which51Testing软件测试网1w?@E d&]}&K
 lr_log_message ("DebugInfo:which=%d ",which);//调试信息51Testing软件测试网K%^2G1EA U4yi

51Testing软件测试网"qc9Of&^1Ka
 if (which >= 30)//70%访问baidu
R [er&{l be0
 {
r(g0JRz(R}0
  web_url("www.baidu.com", 51Testing软件测试网P2I~)x6d~$d
    "URL=http://www.baidu.com/", 51Testing软件测试网'r9?NGlk w
    "TargetFrame=", 
.FB e'R PD0
    "Resource=0", 
QK'b"Y`0
    "RecContentType=text/html", 
cA#N'WWt8Uv0
    "Referer=", 
l*D\(mJA0
    "Snapshot=t1.inf", 
1_.L!LN z!\`0
    "Mode=HTML", 51Testing软件测试网,qj:?C @Th%Ff
    LAST);
%lo ik#A;_0`jCc yR0
 }51Testing软件测试网7LbuA+q eC0@
 else if ((which >=13) and (which <30))//17%访问Google51Testing软件测试网4c }Ijj+P-x
 {51Testing软件测试网U`.hJb*C3^0s
  web_url("www.google.cn", 
#T,PQZ,^ ^,cM+mJ0
    "URL=http://www.google.cn/", 51Testing软件测试网8~&_6r&NvR{v
    "TargetFrame=", 
mw~j&f@8v0
    "Resource=0", 51Testing软件测试网 \xtK:w
    "RecContentType=text/html", 
pIub[D@&G0
    "Referer=", 
d5JV&U4_v-[0
    "Snapshot=t2.inf", 51Testing软件测试网;W(|i CU^
    "Mode=HTML", 
4I3k;q A Ge [5?} ^0
    EXTRARES, 
xiR,Nj?L2BzIBP0
    "Url=/images/nav_logo3.png", ENDITEM, 
l5@1ai/D.^8Q0
    LAST);51Testing软件测试网 |xCZf#X
 }51Testing软件测试网oZ\-A1Aai6B'v
 else if ((which >=6) and (which <13)) //7%访问yahoo
7^6NF/Tq`m0
 {51Testing软件测试网;B:Eu,o|Vn;SU
  web_url("search.cn.yahoo.com", 
Jtzfg_!e,@-A0
   "URL=http://search.cn.yahoo.com/", 
6\"p,ZYARu3t PM0Oy0
   "TargetFrame=", 
q4@NktFF0
   "Resource=0", 
_ Kb,Qr8~&HD0
   "RecContentType=text/html", 51Testing软件测试网~GCI/\
   "Referer=", 
d?"r*XV[2E0
   "Snapshot=t3.inf", 51Testing软件测试网s/@qa#P C
   "Mode=HTML", 
@,|_"@1H |o};]0
   EXTRARES, 51Testing软件测试网5u2|ZK$Zd a*P
   "Url=/testing/uppic/200709/20070911101206590.gif", ENDITEM, 
"UsFn2fw!h0
   "Url=/testing/uppic/200709/20070911101207694.gif", ENDITEM, 
U&]8b|&MA]!IA0f0
   LAST);51Testing软件测试网k'[6? N VL
 }
A9S{7Y#SN6|&o0
 else        //6%访问sogou
t!r7Q2SmJ9WX/MY0
 {
~}dVh8L5Y-P0
  web_url("www.sogou.com", 51Testing软件测试网'I6hke!o,k w
   "URL=http://www.sogou.com/", 
F u1i7wH`!C*ys0
   "TargetFrame=", 51Testing软件测试网:[^W0x"D!}
   "Resource=0", 
HZ%X`d?%e.bH0
   "RecContentType=text/html", 51Testing软件测试网/A"R#U7O)H9w*J
   "Referer=", 
)C r,? S5V u"s0
   "Snapshot=t4.inf", 51Testing软件测试网et `Jr8{A*w F
   "Mode=HTML", 
,M7\NP vJ{0
   EXTRARES, 
8GH(mus+X A"s M0
   "Url=/images/tab.gif", ENDITEM, 51Testing软件测试网 cU`7N oo
   "Url=http://pv.sogou.com/pv.gif?t?=1181198683187446?r?=", ENDITEM, 51Testing软件测试网F"c(P4vW/[
   LAST);
to E5{Y.k*Y%Y@0
 }51Testing软件测试网T(g,Su!Jw a)rs
 return 0;51Testing软件测试网T5z"N0Q7X??dB
}51Testing软件测试网H/@g|.ZNLNO"h2wR


K;ey:t W6|iB0
  这么写脚本其实和组策略形成的效果没有什么分别,但是我觉得还是写这样的结构比较好,我自己也不知道为什么。
TN2}Ef/Txo~Y0
  这个写法是从游戏脚本语言(lua)中学会的,以前测试游戏的时候总是看脚本语言(lua),有很多宝物的掉率就是根据随机数判断来决定的。51Testing软件测试网cBaZ4x8rr4QA

 51Testing软件测试网 d$P@jp!I T


TAG:

 

评分:0

我来说两句

日历

« 2024-04-04  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 50618
  • 日志数: 65
  • 文件数: 1
  • 建立时间: 2010-11-23
  • 更新时间: 2011-10-18

RSS订阅

Open Toolbar