|
不得不多说几句,
1、这个是土办法,但是可行的,下面有人说不可行,愿意的话就拿出证据来,咱们来辨一辨;
2、集合点是可以跨脚本的,后面已经这么确认过了。
另外可参考这个帖子http://bbs.51testing.com/viewthread.php?tid=81698。
下面是本文原文:
LoadRunner中实现一个系统下多用户多业务同时并发的场景设计
场景要求如下:100个用户,其中10个用户执行A业务逻辑、20个用户执行B业务逻辑、30个用户执行C业务逻辑、40个用户执行D业务逻辑;要求这100个用户的操作是同时并发的。
由于多业务操作,那么首先会想到录制4个脚本+Group方式去执行这个场景,但是真的能做到吗?
每个单独的脚本中,都能控制同时执行A、或者B;但是怎么样控制ABCD同时执行呢?
所以我的办法是录制1个脚本,脚本中分别包含ABCD四个业务逻辑,分别用TrasactionA、TrasactionB、TrasactionC、TrasactionD表示。
首先确认以上操作是能够完成的,哪怕是录制4个脚本,然后手工将这四个脚本合并。
完成以上操作之后我们就有了这样的1个脚本,在这个脚本中是一个顺序执行的脚本,ABCD,如下:
Action
{
TransactionA;
TransactionB;
TransactionC;
TransactionD;
}
然后通过判断VUserID的方式来进行用户的分配,首先在ParameterList中新建一个VUserID类型的参数,定义为NewParam_VUserID;
那么在LoadRunner脚本中可以这样子引用到;
char ParamVUID_Nbr[24];
int ParamVUID_INT;
sprintf(ParamVUID_Nbr,"%s",lr_eval_string("{NewParam_VUserID}"));
lr_save_string(ParamVUID_Nbr,"ParamVUID_Nbr");
通过atoi函数进行字符串和数字之间的转换;
ParamVUID_INT = atoi( lr_eval_string("{ParamVUID_Nbr}"));
然后改写脚本为
Action
{
在这里加入集合点;
if (ParamVUID_INT<=10)
TransactionA;
if (((ParamVUID_INT>10)&&(ParamVUID_INT<=30))
TransactionB;
if (((ParamVUID_INT>30)&&(ParamVUID_INT<=60))
TransactionC;
if (ParamVUID_INT>60)
TransactionD;
}
OK,这下子应该可以顺利实现100个用户的按比例分发,并且让A、B、C、D并发执行了。
[ 本帖最后由 Athenst 于 2007-7-13 09:16 编辑 ] |
|