|
Athenst在不?问个关于多场景并发的问题!
看了你在http://bbs.51testing.com/thread-81297-1-1.html发的《LoadRunner中实现一个系统下多用户多业务同时并发的场景设计》,有些问题还是不清楚,我现在就需要做一个这样的场景操作。
公司要做一个B/S的程序的性能测试,里面主要有登录,数据填报,数据审核,数据上报等功能,现在要测试这样一种情况,假设80个用户,其中20个用户做登录操作,20个用户做数据填报操作,20个做审核操作,20个做数据上报操作。
现在要求以上的几种操作并发进行,也就是说这80个用户同时作自己的操作,这和你在上文中的例子基本相同,现在我想问一问以下几个问题:
1:你在文中说把这几个事务用TrasactionA等表示,在实际情况中如何处理?是在每个事务的前边加代码还是直接用lr_start_transaction,lr_end_transaction(),如果不需要特殊标识的话,如何在以后判断的时候判断出几个事务的位置?另外这几个事务的位置如何确定,你在文中说设置好集合点,然后在集合点以后判断哪个用户去进行哪个操作,那这几个事务的位置是不是要都放在同一个集合点那,如果那样的话脚本录制的过程该如何处理(就像是说我有登录操作,有上报操作,这里登录操作一定是在脚本的最前边,后边经过一系列操作以后才能到达上报操作的位置,这种情况如何设置集合点?是要把几个事务强行的写在一起吗?还是有办法可以将几个地方分别设置集合点,然后让几个集合点的用户都到了以后才同时运行?)
2:然后通过判断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,"aramVUID_Nbr");
通过atoi函数进行字符串和数字之间的转换;
ParamVUID_INT = atoi( lr_eval_string("{ParamVUID_Nbr}"));
你在原文中说的这个我没看懂(刚接触lr,对脚本修改还不了解),这里的意思是在ParameterList中建立完参数以后,直接就可以在LR脚本中写下边的那些代码了吗?原封不动拷贝过来就可以吗?放到脚本的什么地方?
3:最后你在文中说的然后改写脚本为
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;
}
这里面TransactionA等几块是实际的事务还是事务的代码或者标签之类的,在程序设计语言里面都有个标签,可以用goto语句直接转向的那种,你这里的TransactionA等是这个意思还是真的就是把实际事务放到这里面了?如果实际事务放过来的话,那事务之前的操作如何处理,例如我想上报数据,首先需要领导签字才能点上报,但是领导签字这个动作不需要并发操作,但是他是必须得操作,如果这样的话,该如何处理,按照上边的内容的话,就没有地方写这些前提内容了?这如何处理?
4:最后,不知道有没有响应的完整脚本例子?要是有希望能给发一份!
我的邮箱:haiyu@263.net,haiyugg@sohu.com均可
msn:liutong516@hotmail.com
其他各位老大如果有什么看法欢迎大家指点,小弟现在着急用,明天下午就要录制,后天就实际测试了,现在刚学lr不久,还什么都不会呢。急需解决阿。多谢各位了,sdlkfj3 |
|