无法在vugen脚本

时间:2018-04-17 13:27:24

标签: performance-testing load-testing loadrunner vugen

以下是我的HTML代码

<tr role="row" class="even">
    <td class="sorting_1">AMT New Test Class</td>
    <td>FY19 - W14
        <br>Apr-30-2018</td>
    <td>FY19 - W14
        <br>May-1-2018</td>
    <td><span data-toggle="tooltip" data-original-title="Calendar"><a href="#" onclick="openCalenderModal(event,393517)" class="calenderPop"><i class="fa fa-calendar m-r-10" aria-hidden="true"></i></a></span><span data-toggle="tooltip" data-original-title="Copy"><a href="copySchedule?scheduleClassMainKey=393517&amp;type=copySchedule"><i class="fa  fa-clone m-r-10" aria-hidden="true"></i></a></span><span data-toggle="tooltip" style="cursor:pointer" data-original-title="Training Geography not available" onclick="doNothing(event)"><i class="fa fa-globe m-r-10" aria-hidden="true"></i></span><span data-toggle="tooltip" style="cursor:pointer" data-original-title="Comments: " onclick="doNothing(event)"><i class="fa fa-commenting  m-r-10" aria-hidden="true"></i></span></td>
</tr>

<tr role="row" class="odd">
   <td class="sorting_1">AMT New Test Class</td>
   <td>FY19 - W14<br>Apr-30-2018</td>
   <td>FY19 - W14<br>May-1-2018</td>
   <td><span data-toggle="tooltip" data-original-title="Calendar"><a href="#" onclick="openCalenderModal(event,393528)" class="calenderPop"><i class="fa fa-calendar m-r-10" aria-hidden="true"></i></a></span><span data-toggle="tooltip" data-original-title="Copy"><a href="copySchedule?scheduleClassMainKey=393528&amp;type=copySchedule"><i class="fa  fa-clone m-r-10" aria-hidden="true"></i></a></span><span data-toggle="tooltip" style="cursor:pointer" data-original-title="Training Geography not available" onclick="doNothing(event)"><i class="fa fa-globe m-r-10" aria-hidden="true"></i></span><span data-toggle="tooltip" style="cursor:pointer" data-original-title="Comments: " onclick="doNothing(event)"><i class="fa fa-commenting  m-r-10" aria-hidden="true"></i></span></td>
</tr>

我的vugen脚本看起来像

web_submit_data("getClassDetails_2", 
        "Action= websiteURL /getClassDetails", 
        "Method=POST", 
        "RecContentType=application/json", 
        "Referer= websiteURL /manage_schedules", 
        "Snapshot=t320.inf", 
        "Mode=HTTP", 
        ITEMDATA, 
        "Name=draw", "Value=1", ENDITEM, 
        "Name=columns", "Value=classSubtypeMaster.classSubtypeName,classSubtypeMaster.classSubtypeKey,divRegJson,finalWeekMapJson,finalWeekMapJson,createdOnDate,createdByUserId,scheduleClassMainKey,scheduleStartId.clndrDate,scheduleEndId.clndrDate,occrStartFiscalWeek,occrEndFiscalWeek,comments", ENDITEM, 
        "Name=order[0][column]", "Value=0", ENDITEM, 
        "Name=order[0][dir]", "Value=asc", ENDITEM, 
        "Name=start", "Value=0", ENDITEM, 
        "Name=length", "Value=10", ENDITEM, 
        "Name=search[value]", "Value=", ENDITEM, 
        "Name=search[regex]", "Value=false", ENDITEM, 
        "Name=nodeList", "Value=18", ENDITEM, 
        "Name=nodeIdList", "Value=3", ENDITEM, 
        "Name=searchColumns",         "Value=classSubtypeMaster.classSubtypeKey,divRegJson,finalWeekMapJson", ENDITEM, 
        LAST);

在此步骤之前,我将这些放在web_reg_save_param_ex函数

之下

我尝试使用以下web_reg_save_param_ex

第一次尝试

web_reg_save_param_ex(
        "ParamName=scheduleClassMainKey",
        "LB=onclick=\"openCalenderModal(event,",
        "RB=)\" class=\"calenderPop\">",
        "NotFound=error",
        "Ordinal=all",
        SEARCH_FILTERS,
        "Scope=BODY",
        "IgnoreRedirections=Yes",
        LAST);

第二次尝试

web_reg_save_param_ex(
        "ParamName=scheduleClassMainKey",
        "LB/RE=<a href=\"copySchedule?scheduleClassMainKey=",
        "RB=&amp;type=copySchedule\"><i ",
        "NotFound=warning",
        "Ordinal=all",
        SEARCH_FILTERS,
        "Scope=ALL",
        "IgnoreRedirections=Yes",
        LAST);

但输出错误

第一次尝试输出

Action.c(213): web_reg_save_param_ex started                [MsgId: MMSG-26355]
Action.c(213): Registering web_reg_save_param_ex was successful          [MsgId: MMSG-26390]
Action.c(224): web_submit_data("getClassDetails") started          [MsgId: MMSG-26355]
Action.c(224): Error -26377: No match found for the requested parameter "scheduleClassMainKey". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 256 bytes, use web_set_max_html_param_len to increase the parameter size  [MsgId: MERR-26377]
Action.c(224): Notify: Saving Parameter "scheduleClassMainKey_count = 0"

将参数保存为lr_output_message("PC:%d",atoi(lr_eval_string("{scheduleClassMainKey_count}")));

第二次尝试

Action.c(245): Notify: Parameter Substitution: parameter "scheduleClassMainKey_count" =  "0"
Action.c(245): 0
Action.c(246): Warning:

根据已尝试的评论但仍在输出窗格中出现以下错误:

Action.c(203): web_submit_data("getClassDetails_2") started [MsgId: MMSG-26355] Action.c(203): Error -26377: No match found for the requested parameter "scheduleClassMainKey". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 256 bytes, use web_set_max_html_param_len to increase the parameter size [MsgId: MERR-26377] Action.c(203): Error -26377: No match found for the requested parameter "_scheduleClassMainKey". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 256 bytes, use web_set_max_html_param_len to increase the parameter size [MsgId: MERR-26377] Action.c(203): web_submit_data("getClassDetails_2") highest severity level was "ERROR", 177 body bytes, 510 header bytes, 11 chunking overhead bytes [MsgId: MMSG-26387] Ending action Action.

任何人都可以告诉我我在哪里做错了。

2 个答案:

答案 0 :(得分:1)

web_reg_save_param_ex的两个简化版本都成功从提供的响应片段中提取值。

web_reg_save_param_ex(
    "ParamName=scheduleClassMainKey",
    "LB=onclick=\"openCalenderModal(event,",        
    "RB=)\" class=\"calenderPop\">",
    "Ordinal=all",
    SEARCH_FILTERS,
    "Scope=Body",
    LAST);

web_reg_save_param_ex(
    "ParamName=_scheduleClassMainKey",
    "LB=<a href=\"copySchedule?scheduleClassMainKey=",
    "RB=&amp;type=copySchedule\"><i ",
    "Ordinal=all",
    SEARCH_FILTERS,
    "Scope=Body",
    LAST);      

输出:

Notify: Saving Parameter "scheduleClassMainKey_1 = 393517".
Notify: Saving Parameter "_scheduleClassMainKey_1 = 393517".
Notify: Saving Parameter "scheduleClassMainKey_2 = 393528".
Notify: Saving Parameter "_scheduleClassMainKey_2 = 393528".
...
Notify: Saving Parameter "scheduleClassMainKey_count = 2".
Notify: Saving Parameter "_scheduleClassMainKey_count = 2".

请确认您在重播日志中没有其他错误/警告,并且实际服务器响应包含预期的html代码。

关注您的上次更新。重播日志中的引用显示响应体大小相对于提供的响应片段小得多(177字节)。

Action.c(203):web_submit_data(“getClassDetails_2”)最高严重性级别为“ERROR”,177个主体字节,510个头字节,11个组块开销字节

请启用包含“高级跟踪”和“服务器返回的数据”的运行时设置中的扩展日志,然后再次运行脚本以查看实际服务器响应是否包含预期数据。

答案 1 :(得分:0)

您是否将两个参数保存为相同名称“scheduleClassMainKey”?

另外, 根据文件:

The web_reg_save_param_ex function also supports array type parameters. When 
you specify Ordinal=All, all the occurrences of the match are saved in an 
array. Each element of the array is represented by the ParamName_index. See 
Example of Parameter Arrays.
In the following example, the parameter name is A:

web_reg_save_param_ex("ParamName=A", "LB/ic=<a href=", "RB=\'>", 
"Ordinal=All", LAST );

The first match is saved as A_1, the second match is saved as A_2, and so 
forth. You can retrieve the total number of matches by using the following 
term: ParamName_count. For example, to retrieve the total number of matches 
saved to the parameter array, use:

TotalNumberOfMatches=atoi(lr_eval_string("{A_count}"));

因此,您需要使用的参数是scheduleClassMainKey_1