51Testing软件测试论坛

标题: 用循环实现脚本参数,但在用场景时,用多用户时如何设置取值的唯一性 [打印本页]

作者: lunahaha527    时间: 2014-9-4 11:21
标题: 用循环实现脚本参数,但在用场景时,用多用户时如何设置取值的唯一性
本帖最后由 lunahaha527 于 2014-9-4 13:14 编辑

用循环实现脚本参数,但在用场景时,用多用户时如何设置取值的唯一性
比如脚本如下:
    int j ;        
     char str[9999];  
     for(j=1;j<=3000000;j++){
          itoa(j,str,10);
          lr_save_string(str,"L111");
          lr_output_message("==str:=%s==L111:=%s====",str,lr_eval_string("{L111}"));
······
    URL=http://192.1.1.1:80/xx.xml;url='{L111}'
```````
}
请问设置多用户并发时,如何让各个用户取到的数据不冲突,保证是唯一的呢?
作者: 授客    时间: 2014-9-4 11:21
授客 发表于 2014-9-23 12:51
你应该是设置了多次迭代,你一次迭代看看

这样,你按我的,如果你设置5次迭代,那么block设置为5,为2次则设为2,依次类推,那么每个用户取值就自动分配唯一值。。。这下算是给你解决了,应该可以给分了~~
作者: lunahaha527    时间: 2014-9-4 11:30
不要再发参数设置了,我这个是用脚本循环的。是想问在哪边控制或用语句实现虚拟用户和这个参数的关联
如果有好的,一定奖分
作者: lunahaha527    时间: 2014-9-5 09:10
别沉啊
作者: msnshow    时间: 2014-9-7 20:22
无法保证的,有2个办法可以帮你解决
1、用时间做为参数,那肯定能保证唯一
2、用参数组合来实现
作者: lunahaha527    时间: 2014-9-9 13:36
msnshow 发表于 2014-9-7 20:22
无法保证的,有2个办法可以帮你解决
1、用时间做为参数,那肯定能保证唯一
2、用参数组合来实现

能否请详细谈谈用时间做为参数的实现方法?
作者: lunahaha527    时间: 2014-9-9 13:37
参数组合,当我需要几天,业务量又比较高时。可能自己光做参数文件就要做好长时间,而且用EXCEL累加还容易出错。很是不方便呢。如果是短时间的测试还成。
作者: msnshow    时间: 2014-9-10 20:25
取得vuser id 和参数组合就OK了
作者: lunahaha527    时间: 2014-9-16 17:07
msnshow 发表于 2014-9-10 20:25
取得vuser id 和参数组合就OK了

能不能讲详细一点儿呢,或者给个介绍链接什么的。版主,你每天只回短短几句,作为菜鸟实在学不会呀
作者: lunahaha527    时间: 2014-9-16 17:14
难道版主说是的这个。可怎么把ID和时间组合呢?
作者: 授客    时间: 2014-9-16 19:08
[attach]91877[/attach]
Action()
{
    char * unique_num;
    unique_num = NULL;
    unique_num = lr_eval_string("{unique_number}");
    lr_output_message(unique_num);
    return 0;
},,
你自己想做啥,按这个去弄下吧。。~~赶紧,给分


作者: 授客    时间: 2014-9-16 19:22
本帖最后由 授客 于 2014-9-16 19:24 编辑

如果要设置对应你上面对应的输出,这个也好办

Action()
{
    char * unique_num;
    unique_num = NULL;
    unique_num = lr_eval_string("{unique_number}");
    lr_output_message("==str:= %s==L111:=%s",unique_num,unique_num);
    return 0;
}


对了,,你场景记得设置对应的用户数,,

作者: lunahaha527    时间: 2014-9-23 09:53
本帖最后由 lunahaha527 于 2014-9-23 10:00 编辑
授客 发表于 2014-9-16 19:22
如果要设置对应你上面对应的输出,这个也好办

Action()


怎么对应用户数呢?
尝试了,目前是五个用户。但是会大量失败呀。
Error: Parameter 'NewParam_6': All values in unique block already used. Block size is 1. The Vuser is aborted according to "When Out Of Values" policy.



作者: 授客    时间: 2014-9-23 12:46
lunahaha527 发表于 2014-9-23 09:53
怎么对应用户数呢?
尝试了,目前是五个用户。但是会大量失败呀。
Error: Parameter 'NewParam_6': A ...

~~,你的用户数在哪里设置的?要在场景中。。。你直接vugen当然报错那个错。。。。
作者: 授客    时间: 2014-9-23 12:51
lunahaha527 发表于 2014-9-23 09:53
怎么对应用户数呢?
尝试了,目前是五个用户。但是会大量失败呀。
Error: Parameter 'NewParam_6': A ...

你应该是设置了多次迭代,你一次迭代看看
作者: hundu    时间: 2014-9-23 15:20
取值不是可以在LR里面设置的吗
作者: sushe2009    时间: 2014-9-29 16:38
数据用excel拖一下,足够数据,然后将select next row设置为uniq,即可。
但每次测试结束,进行下一轮,需要修改数据。
作者: 云层    时间: 2014-10-7 10:44
这个问题i一开始的策略就有问题,导致你现在处理起来麻烦

1.多用户之间的唯一需要通过参数化,那么参数化就是用unique来做,单数数据量大了是没法处理的
2.你要做循环,其实用LR的迭代不是也很好么,如果你非要处理所谓的某个编号的帖子,那么你不如直接用随机数
3.性能测试你又不是注册,其实有些重复的访问数据也没啥问题,重复率不要太高就行了
4.你还纠结那么就用系统时间+vuserid来做,这样就能保证每个参数的值都唯一了
作者: 授客    时间: 2014-10-7 18:53
云层 发表于 2014-10-7 10:44
这个问题i一开始的策略就有问题,导致你现在处理起来麻烦

1.多用户之间的唯一需要通过参数化,那么参数 ...

按我那个已经可以了,我都试过,他自己拖着不给分。。。。。。
作者: 云层    时间: 2014-10-8 12:09
授客 发表于 2014-10-7 18:53
按我那个已经可以了,我都试过,他自己拖着不给分。。。。。。

分乃身外之物。淡定。
作者: 授客    时间: 2014-10-8 12:34
云层 发表于 2014-10-8 12:09
分乃身外之物。淡定。


作者: lunahaha527    时间: 2014-10-8 17:49
版主,不是不给分。是最近没空上来。分已经给你了。多谢,你说的方法我还没试。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2