51Testing软件测试论坛

标题: 请教LR中关联中的“Use # for any digit”的有关问题 [打印本页]

作者: kevin841020    时间: 2012-5-4 11:48
标题: 请教LR中关联中的“Use # for any digit”的有关问题
本帖最后由 kevin841020 于 2012-5-4 11:49 编辑

列表页面有如下程序源代码:
{name:'id[1]',value:'12384'},{name:'entqualname[1]',value:'XX'};
{name:'id[2]',value:'12484'},{name:'entqualname[2]',value:'XX'};
{name:'id[3]',value:'14444'},{name:'entqualname[3]',value:'XX'};
{name:'id[4]',value:'14434'},{name:'entqualname[4]',value:'XX'};
{name:'id[5]',value:'15584'},{name:'entqualname[5]',value:'XX'};
.
.
.
{name:'id[14]',value:'14584'},{name:'entqualname[14]',value:'XX'};
{name:'id[15]',value:'14654'},{name:'entqualname[15]',value:'XX'};
问题:(操作为在列表中,选择一行数据,进行相关操作)
想在LR中,设置关联,拿到{name:'id[X]',value:' 与'}之间的ID值(即红色字体),利用“Use # for any digit”:
设置左边界{name:'id[#]',value:',右边界},Ord=All
这样,拿到的值只有9个,无法拿到 id[10]以上的ID,问如果是你,如何处理这样的问题?????

我是这样思考的:
1、假如修改左边界为:value:'的话,那么就会把“name:'entqualname[X]',value:'”后面的值也会拿到,所以这样行不通;
1、假如修改左边界为:{name:'id[的话,那么拿到的值为类似“1]',value:'12384”的字符串,通过偏移Save Offset拿把ID拿到手,可是1-9,和10以上的数字长度不固定,也行不通;

各位有没有什么好方法啊????跪求解决方法
作者: 云层    时间: 2012-5-4 11:50
LB="]',value:'"
RB="'},{name:'entqualname["
作者: kevin841020    时间: 2012-5-4 12:43
LB="]',value:'"
RB="'},{name:'entqualname["
云层 发表于 2012-5-4 11:50


非常感谢云层大师的指点,我也看过你的那本LR书哦
除此之外,上面的问题还有其它办法吗?
因为是这样的,源代码里存放上面的东西时,是放在 params = [{name:'id[4]',value:'1484'},{name:'entqualname[4]',value:'XX'}......];中的,里面的各种参数位置不固定,有时候,有些选项顺序会倒过来,如: params = [{name:'entqualname[4]',value:'XX'},{name:'id[4]',value:'1484'}......];
问代码开发员,说是开发软件自动生成的顺序

如果按LB="]',value:'"
RB="'},{name:'entqualname["来查找的话,会漏掉个别顺序颠倒的情况
作者: 云层    时间: 2012-5-4 12:59
要是你用LR11,那么直接写正则表达式,你会觉得爽YY的
作者: kevin841020    时间: 2012-5-4 13:06
要是你用LR11,那么直接写正则表达式,你会觉得爽YY的
云层 发表于 2012-5-4 12:59


呵,你说到这个的时候,我刚看到你新版《性能测试进阶指南- loadrunner 11实战》要上市的贴子,在试读你放出来的章节呢,本人现在也是用LR11.0,正好派上用场,有些新函数不知道。
作者: kevin841020    时间: 2012-5-7 15:52
本帖最后由 kevin841020 于 2012-5-7 15:56 编辑

回复 4# 云层

我根据《性能测试进阶指南- loadrunner 11实战》中的LR11新关联函数详解.pdf
使用web_reg_save_param_regexp(
                " ParamName=idnumber",
                "RegExp=name:'id[.*]',value:' (.*)'}",
                "NotFound=warning",
                "Ordinal=ALL",
                SEARCH_FILTERS,
                "Scope=BODY",
                LAST);
查看不到关联内容啊,是不是我有什么地方写错了?


后来我又试了关联其它代码(各{}顺序随机)如:
{name:'select_objs[2]/id',value:'102581'},{name:'pbuildprice[2]',value:'55.000000'},{.....}

1、使用web_reg_save_param_regexp(
                " ParamName=idnumber",
                "RegExp=select_objs[.*]/id',value: '(.*)'}",
                "NotFound=warning",
                "Ordinal=ALL",
                SEARCH_FILTERS,
                "Scope=BODY",
                LAST);
同样查找不出来
2、更改左边界:
web_reg_save_param_regexp(
                " ParamName=idnumber",
                "RegExp=id',value:' (.*)'}",
                "NotFound=warning",
                "Ordinal=ALL",
                SEARCH_FILTERS,
                "Scope=BODY",
                LAST);
能关联出内容了,但内容却是类似这样的东西:102581'},{name:'pbuildprice[2]',value:'55.000000'},{.....}
可能你会说右边界应该设置成'},{name:'pbuildprice,但上面说了{}顺序是随机的。
现在这个问题不知道怎么解决了
作者: 云层    时间: 2012-5-7 17:45
正则你试一下就知道了,记住()内是你要留下的内容,
作者: kevin841020    时间: 2012-5-8 10:45
本帖最后由 kevin841020 于 2012-5-8 10:49 编辑

回复 7# 云层

经重复更改左右边界,发现 .*被[]括住时,就会发生问题,查找失败,如:
1、select_objs[.*]/id',value:' (.*)'}:使左边界匹配错误,关联不到后面的内容;
2、select_objs[(.*)]/id',value:'.*'}:报错误:Error -35054: No substring to be saved in regular expression. Enclose part of the RE in parentheses "()" to save it to the parameter

3、当[]不写出来时,如select_objs.*/id',value:' (.*)'},关联成功。

我不知道[]这个括号有什么特别的,这样的问题能帮我解释一下吗
作者: 云层    时间: 2012-5-8 10:50
你试试转义掉,用\,应该[]也是正则表达式符号
作者: kevin841020    时间: 2012-5-8 11:06
本帖最后由 kevin841020 于 2012-5-8 11:14 编辑

回复 9# 云层

Thank you! 刚百度了一下,[]确实是正则表达式符号,
不过之前使用\转义,试过不管用,所以我才上来问的
另外,这个[]符号,当使用在web_reg_save_param、web_reg_save_param、web_reg_save_param_ex  进行普通的关联时(即没用使用正则),完全没有这方面的问题(没有使用\)
作者: zbjie    时间: 2012-5-8 16:47
大师今天没上课,我还在等你的新书,是否已经出版了。
作者: metoto    时间: 2012-5-8 20:21
mark, LR11的正则我觉得是这个版本的最大亮点之一
作者: bob123654    时间: 2012-5-11 09:02
回复 4# 云层


    云层叔叔好XE,




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