51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2918|回复: 12
打印 上一主题 下一主题

[原创] 请教LR中关联中的“Use # for any digit”的有关问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-5-4 11:48:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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以上的数字长度不固定,也行不通;

各位有没有什么好方法啊????跪求解决方法
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2012-5-4 11:50:00 | 只看该作者
LB="]',value:'"
RB="'},{name:'entqualname["
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2012-5-4 12:43:57 | 只看该作者
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["来查找的话,会漏掉个别顺序颠倒的情况
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2012-5-4 12:59:50 | 只看该作者
要是你用LR11,那么直接写正则表达式,你会觉得爽YY的
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2012-5-4 13:06:11 | 只看该作者
要是你用LR11,那么直接写正则表达式,你会觉得爽YY的
云层 发表于 2012-5-4 12:59


呵,你说到这个的时候,我刚看到你新版《性能测试进阶指南- loadrunner 11实战》要上市的贴子,在试读你放出来的章节呢,本人现在也是用LR11.0,正好派上用场,有些新函数不知道。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2012-5-7 15:52:57 | 只看该作者
本帖最后由 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,但上面说了{}顺序是随机的。
现在这个问题不知道怎么解决了
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2012-5-7 17:45:27 | 只看该作者
正则你试一下就知道了,记住()内是你要留下的内容,
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2012-5-8 10:45:56 | 只看该作者
本帖最后由 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:' (.*)'},关联成功。

我不知道[]这个括号有什么特别的,这样的问题能帮我解释一下吗
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2012-5-8 10:50:29 | 只看该作者
你试试转义掉,用\,应该[]也是正则表达式符号
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2012-5-8 11:06:40 | 只看该作者
本帖最后由 kevin841020 于 2012-5-8 11:14 编辑

回复 9# 云层

Thank you! 刚百度了一下,[]确实是正则表达式符号,
不过之前使用\转义,试过不管用,所以我才上来问的
另外,这个[]符号,当使用在web_reg_save_param、web_reg_save_param、web_reg_save_param_ex  进行普通的关联时(即没用使用正则),完全没有这方面的问题(没有使用\)
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2012-5-8 16:47:42 | 只看该作者
大师今天没上课,我还在等你的新书,是否已经出版了。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2012-5-8 20:21:18 | 只看该作者
mark, LR11的正则我觉得是这个版本的最大亮点之一
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2012-5-11 09:02:39 | 只看该作者
回复 4# 云层


    云层叔叔好XE,
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-20 13:44 , Processed in 0.092484 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表