51Testing软件测试论坛

标题: loadrunner关联使用orb=ALL后,如何赋值?(请各位大大帮忙解决一下) [打印本页]

作者: icewhite    时间: 2007-9-21 17:48
标题: loadrunner关联使用orb=ALL后,如何赋值?(请各位大大帮忙解决一下)
版本8.0,help里面的代码搬到lr里面会直接error的,lr不认识sprintf函数。。。。
作者: Zee    时间: 2007-9-21 18:03
1,问问题,把脚本帖出来。
作者: purezzj    时间: 2007-9-23 11:44
请帖写脚本,貌似只要web_reg_param这个函数就可以了,然后设置下左右边界,请问是什么情况要复制帮助里的呢。sdlkfj2
作者: limengyun326    时间: 2007-9-23 14:54
ord=ALL后,
数据存入参数:参数名_1,参数名_2,........
参数个数放在参数 "参数名_count" 里

取的话用:  lr_eval_string("{参数名_1}") ,   lr_eval_string("{参数名_2}") , ......

比如:关联参数叫temp,关联出来有5个的话,把个数5赋值给变量i
i= lr_eval_string("{temp_count}");
//此时,i的值为5

不知道是否是楼主所问的意思
作者: icewhite    时间: 2007-9-24 09:32
web_reg_save_param("processid",
                "LB=<processInstanceId>",
                "RB=<",
                "Ord=ALL",
                "Search=Body",
                LAST);
        web_reg_save_param("taskid",
                "LB=<taskInstanceId>",
                "RB=<",
                "Ord=ALL",
                "Search=Body",
                LAST);
processidParam, "{processid_%s}",lr_eval_string("{processid_count}");

        processidParamVal, "Value=%s",lr_eval_string(processidParam);

       lr_message("The value argument is : %s", processidParamVal);


        taskidParam, "{taskid_%s}",lr_eval_string("{taskid_count}");

        taskidParamVal, "Value=%s",lr_eval_string(taskidParam);

       lr_message("The value argument is : %s", taskidParamVal);
web_submit_data("XMLHttpRequestTodoTask.aspx",
                "Action=http://172.16.3.182:9080/ocnweb/XMLHttpRequestTodoTask.aspx",
                "Method=POST",
                "RecContentType=application/xml",
                "Referer=http://172.16.3.182:9080/ocnweb/YUINWManage.aspx",
                "Mode=HTML",
                ITEMDATA,
                "Name=start", "Value=0", ENDITEM,
                "Name=limit", "Value=20", ENDITEM,
                LAST);
        lr_think_time(4);
        web_add_auto_header("Accept",
                "text/javascript, text/html, application/xml, text/xml, */*");
       
               
        web_submit_data("XMLHttpRequestYUIDealWithProcess.aspx",
                "Action=http://172.16.3.182:9080/ocnweb/XMLHttpRequestYUIDealWithProcess.aspx",
                "Method=POST",
                "RecContentType=text/html",
                "Referer=http://172.16.3.182:9080/ocnweb/YUINWManage.aspx",
                "Snapshot=t7.inf",
                "Mode=HTML",
                ITEMDATA,
                "Name=processParam.processName", "Value=loadtest", ENDITEM,
                "Name=processParam.processVersion", "Value=3", ENDITEM,
                "Name=processParam.processInstanceId", "processidParamVal", ENDITEM,
                "Name=processParam.taskInstanceId", "taskidParamVal", ENDITEM,
                "Name=processParam.ticketId", "Value=-1", ENDITEM,
                "Name=processParam.currNodeName", "Value=onestep", ENDITEM,
                "Name=processParam.entityName", "Value=", ENDITEM,
                "Name=processParam.prevTransitionName", "Value=", ENDITEM,
                "Name=processParam.taskOwner", "Value=test1-1", ENDITEM,
                LAST);

因为在测试中,processid和taskid都是变量,所以我准备取processid和taskid的最后一个值给processParam.processInstanceId和processParam.taskInstanceId,请帮忙看看这段脚本有什么问题么?

[ 本帖最后由 icewhite 于 2007-9-24 09:34 编辑 ]
作者: Zee    时间: 2007-9-24 11:35
这个取值后,数组里会有多个值吗?如果有,按4楼所说去取。
作者: icewhite    时间: 2007-9-24 12:52
4楼说的只是把count赋值给变量i,但是我是想把temp_5的value赋值给i,那我应该怎么办呢?
作者: higkoo    时间: 2007-10-13 18:19
原帖由 limengyun326 于 2007-9-23 14:54 发表
ord=ALL后,
数据存入参数:参数名_1,参数名_2,........
参数个数放在参数 "参数名_count" 里

取的话用:  lr_eval_string("{参数名_1}") ,   lr_eval_string("{参数名_2}") , ......

比如:关联参数叫temp,关 ...


这个方法是可行的,
i= lr_eval_string("{temp_count}");


这个里面的 count 怎么参数化进去呢?
作者: tanky    时间: 2009-4-25 17:23
这个里面的 count 怎么参数化进去呢? [/quote]

同问,谢谢!
作者: 云层    时间: 2009-4-25 22:07
额。。又翻棺材帖了。。

简单说用sprintf()函数,lr9.0以上可以用lr_paramarr_random()函数
作者: yetties2005    时间: 2009-4-26 00:43
棺材帖。。。是啥贴啊?
作者: tanky    时间: 2009-4-26 11:47
lr_paramarr_random()函数我在脚本中运行通过,确实随机返回了关联参数数组中的值,但是在控制器里面跑的时候,通过查看日志可以看到关联参数数组中有100多个值,但每个虚拟用户用lr_paramarr_random()返回都是同一个值。这是为什么?
作者: 云层    时间: 2009-4-26 12:52
楼上的问题没遇到过。。。我这里没问题。。
作者: tanky    时间: 2009-4-26 14:51
//取得关联参数数组的大小
        ItemNumCount = atoi(lr_eval_string ("{PD_ID_count}"));
        itoa (ItemNumCount,RandNumStr,10);
        //生成1至ItemNumCount的随机整数
        RandNum = 1 + rand() % ItemNumCount;
        //将随机数转换成字符
        itoa (RandNum,RandNumStr,10);
        lr_output_message("生成的随机数:%s", lr_eval_string(RandNumStr));
        //将RandNumStr转换成Rand_val参数然后赋值给TEMP
        lr_save_string(RandNumStr, "Rand_val");
        TEMP = lr_eval_string(lr_eval_string("{PD_ID_{Rand_val}}"));
         //最终使用的随机关联参数
        lr_save_string(TEMP, "Rand_PD_ID");


换成这种方式实现,结果和用lr_paramarr_random()的问题一模一样。无语......

[ 本帖最后由 tanky 于 2009-4-26 14:55 编辑 ]
作者: 云层    时间: 2009-4-26 17:28
=.=应该不是随机的问题,而是你关联到的结果的问题个人觉得
作者: tanky    时间: 2009-4-26 20:52
原帖由 云层 于 2009-4-26 17:28 发表
=.=应该不是随机的问题,而是你关联到的结果的问题个人觉得



关联结果是没问题的,查看控制器的vuser log可以看到关联数组里面关联了一百多个参数。

在控制器里面设置“initialize all vuser simultaneously”和“initialize each vuser just before it runs”

都会导致这个问题。设置按时间梯度初始化虚拟用户就好了。   一个无聊的解决方案......
作者: msnshow    时间: 2010-7-16 20:59
折腾!




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