如何获取web_custom_request的返回值

本文介绍如何使用LoadRunner的web_reg_save_param函数从服务器响应中提取动态值,解决动态参数问题。通过设置正确的左边界和右边界,实现对特定字符串的有效捕获。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

遇到一个问题:
  web_custom_request("sign_request", 
                "URL=http://aa.baidu.net/admin/index.htm?items={NewParam}", 
            "Method=POST",
                                           "TargetFrame=",
                                           "Resource=0",
                                           "Referer=",
                                           "Body=",
                LAST);
以post形式发起一个请求,服务器返回一串32位的字符串(字符串单独显示在页面上),后续会利用这个字符串拼成一个新的链接,那么我如何获取这个字符串呢?
查找了半天,都没找到合适的方案,利用关联的话,左侧右侧都没有固定的字符,试了半天,都不行。

麻烦大牛们不吝解答,万分感谢~~



解决方式:


用关联来取,web_reg_save_param,查看源代码,找对左右边界。



1 查看提取服务器返回值的边界是否错误,日志写的错误很大原因是边界错误。
注:特殊符号如(")需要转译为(\")
2需要在web_custom_request提交请求前加HTTP标头,否则提交请求和服务器无法处理并传回返回值导致无法提取服务器返回值。
3 另外一种很小的可能是if the data you want to save exceeds 256 bytes, use web_set_max_html_param_len to increase the parameter size 
希望对你有帮助!



关联的内容是不是在head中,把"Search=body"改为"search=all",








本帖子为本人原创,转载请注明作者:Cheers . Lee 以及网络来源:

Loadrunner 关联 web_custom_request,针对自带的订票系统的一个综合实例,相信看了本文大家对学习loadrunner脚本会有很大的帮助.

本实例要解决的问题:(1)动态删除Loadrunner订票系统的一条订单;(2)动态判断表单订单条目,执行取消第一条订单;(3)Loadrunner 关联 web_custom_request以及循环语句的应用。

代码不足之处:变量定义太多,希望和大家共同交流。

以下为我的脚本的源码:

------------------------------------------------------

#include "web_api.h"


Action()
{
int i,k;
char form[1024];
char temp[1024];
char tmp[1024];
char tp[1024];
char tp1[1024];
char tp2[1024];
 web_url("MercuryWebTours",
  "URL=http://192.168.8.9/MercuryWebTours/",
  "Resource=0",
  "RecContentType=text/html",
  "Referer=",
  "Snapshot=t1.inf",
  "Mode=HTML",
  LAST);
 lr_think_time(10);
 web_submit_form("login.pl",
  "Snapshot=t2.inf",
  ITEMDATA,
  "Name=username", "Value=zhangming", ENDITEM,
  "Name=password", "Value=666666", ENDITEM,
  "Name=login.x", "Value=50", ENDITEM,
  "Name=login.y", "Value=11", ENDITEM,
  LAST);
 lr_think_time(4);
 web_reg_save_param("flightID",
 "LB=INPUT TYPE=\"hidden\" NAME=\"flightID\" VALUE=\"",
 "RB=\"",
 "ORD=ALL",
 "search=body", 
 LAST);


 web_image("Itinerary Button",
  "Alt=Itinerary Button",
  "Snapshot=t3.inf",
  LAST);
 strcpy(form,"Body=1=on");
 i=atoi(lr_eval_string("{flightID_count}"));

for(k=1;k<=i;k++)
 {
 sprintf(temp,"{flightID_%d}",k);

 strcpy(tmp,lr_eval_string(temp));// 取出flightID的值,并把值传给tmp

 sprintf(tp,"&flightID=%s",tmp);

 strcat(form,tp);

}


for(k=1;k<=i;k++)
 {
 sprintf(tp2,"&.cgifields=%d",k);
 strcat(tp1,tp2);
 }
strcat(form,tp1);

strcat(form,"&removeFlights.x=137&removeFlights.y=13");


 lr_output_message("form 的值为=%s",form);
    web_custom_request("itinerary.pl",
 "url=http://192.168.8.9/MercuryWebTours/itinerary.pl",
    "Method=POST",
 "RecContentType=text/xml",
    form,
    "Snapshot=t7.inf",  
    LAST);

 return 0;
}

--------------------------------------------------------------------------------



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值