Loadrunner拼装(并发用户)唯一值方法
Posted 帅胡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Loadrunner拼装(并发用户)唯一值方法相关的知识,希望对你有一定的参考价值。
由于Loadrunner函数有限性,唯一值需要几个函数的字符串进行拼装,可实现多用户并发取得流水号、订单号等等数值的唯一性。具体可见下列方法:
char OraderID[15]; srand(timeNULL); sprintf(OraderID,"NO%s%s%s%s",lr_eval_string("userID"),lr_eval_string("date"),lr_eval_string("rand"),lr_eval_string("num")); lr_output_message("订单号:%s",lr_eval_string("OraderID")); lr_save_string("OraderID",OraderID);
其中vuserID为loadrunner自带虚拟用户编号,date为时间,rand可取随机数,num为loadrunner自带参数unique number属性
其中,loadrunner还有时间戳函数,可通过下面函数取到timestr拼装:
web_save_timestamp_param("timestr", LAST);
其中,loadrunner还有时间戳函数,可通过下面函数取到timestr拼装:
web_save_timestamp_param("timestr", LAST);
方法二:
char UniqueNum[20]; web_save_timestamp_param("timestr", LAST);//13位 sprintf(UniqueNum,"%s%s%s",lr_eval_string("userID"),lr_eval_string("timestr"),lr_eval_string("num"));//num为unique number lr_save_string("UniqueNum",UniqueNum); //lr_output_message("唯一值:%s",lr_eval_string("UniqueNum"));
其中vuserID为loadrunner自带虚拟用户编号,每个虚拟用户即不同并发用户的编号唯一性,保证每个线程/用户取值不一致;timestr为时间戳,保证唯一;num为loadrunner自带参数unique number属性--取值类型选择Continue in a cyclic manner,更进一步保证同一用户/线程的唯一性。
LoadRunner能否对请求参数设定递增值?
例如,想测试提交订单这类业务,在订单ID不允许重复提交时,能否创设大量虚拟用户在提交时,将订单ID设置成递增的。
如果可以,请问如何实现?最好能给了示例,谢谢。
1、你把ID参数化后,参数类型设置为Unique Number,编号格式设置为%01d,启动值设为1(下次压力的时候根据已经产生的结果直接改这个值就行),给每个虚拟用户设置的块大小根据你压力的时候通过的总的事务数/虚拟用户数设置(要大于这个值,要不会导致参数值不够),至于更新值的时间和当超出参数值时的设置根据你脚本的实际情况定;
2、在脚本开始定义一个长整型并赋值,多少个虚拟用户数设置多少个参数,参数配置设置成Unique和Once(每个参数唯一),在参数ID的后面把刚才的长整型累加;如2个虚拟用户,你参数化为100和200两个值,之后把长整型累加后连接就会成1001、1002;2001、2002这样的,也不会重复;
我一般用第二种。 参考技术A 订单ID需要自己先设置么?
那么你可以用excel先把订单ID列出来,用拖拽的方式使其递增,这个会吧。
然后把这一列复制到txt文件里,修改文件扩展名为.dat,放到脚本目录下,剩下就是对脚本的参数化了,你懂的
不重复设置可以参考下面的设置参数化的配置:
选择下一行:Unique
更新值的时间:Each iteration
当超出值时:Continue with last value
在Controller中分配Vuser值:自动分配块大小追问
不好意思,我是新手,请问一下,如何对脚本实现参数化?能否给我一个实例,或者参考文档之类的,不甚感谢!我的邮箱,du.ruoqi1986@gmail.com
追答邮件查收 你还是从参数化学起吧
然后再看偶上面写的方法。。
以上是关于Loadrunner拼装(并发用户)唯一值方法的主要内容,如果未能解决你的问题,请参考以下文章
loadrunner性能测试,在并发10个用户的情况下,sqlserver服务器cpu平均在80%以上,如何解决