单个正则表达式中多个值的相关性

时间:2017-07-19 06:59:22

标签: loadrunner

我必须在下面显示的单个正则表达式中捕获实体ID和实体名称: -

web_reg_save_param_regexp("ParamName=SelectedHub",
     "RegExp=entityId\":(.*?),\"entityName\":\"(.*?)\"",
      SEARCH_FILTERS,
     "Scope=Body",
     "IgnoreRedirections=No",
     "Group=0",
     "Ordinal=all",
      LAST);

响应: -

  

Action.c(32):通知:保存参数“SelectedHub_1 = entityId”:1,“entityName”:“Product”“。   Action.c(32):通知:保存参数“SelectedHub_2 = entityId”:3,“entityName”:“包”“。   Action.c(32):通知:保存参数“SelectedHub_3 = entityId”:2,“entityName”:“Crop”“。

我想使用类似于jmeter的SelectedHub_1作为实体ID,SelectedHub_2作为实体名称。请任何人都可以让我知道如何实现这个

2 个答案:

答案 0 :(得分:1)

您可以使用两个正则表达式,一个用于“EntityID”,第二个用于“EntityName”

假设您将获得如下输出: EntityID:IDParam_1,IDParam_2,.. EntityName:NameParam_1,NameParam_2,..

您可以使用以下简单的c逻辑获取与名称相关的随机ID,反之亦然:

`int i,pcount,count = 0,result;

char tmpParamID [50],tmpParamName [50],FinalParamName [50];

        pcount = atoi(lr_eval_string("{IDParam_count}")); 

        for(i = 1; i<= pcount; i++){
                    sprintf(tmpParamID, "{IDParam_%d}", i);
                    result = strcmp(lr_eval_string(tmpParamID), lr_eval_string("{RequiredID}"));
                    if(result == 0){
                                count = i;
                                break;
                    }                        
        }       

sprintf(tmpParamName,“{NameParam_%d}”,count);

lr_save_string(lr_eval_string(tmpParamName), “FinalParamName”);`

此处“RequiredID”将是您想要“EntityName”

的“EntityID”

答案 1 :(得分:0)

您需要使用两个不同的参数名称复制呼叫,并在第一次呼叫中将Group值设置为1,在第二次呼叫中将Group值设置为2。 请参阅&#34; web_reg_save_param_regexp&#34;的文档。小组部分