Loadrunner如何遍历一个页面中的url并进行访问?

最近在网上到一个关于loadrunner遍历一个页面中的url并进行访问脚本,就把它用我们自己的项目实践了一下,发现有一点不完善。

原始版本:

Action()
{
char temp[64];
int num = 0 ;
int i = 0 ;
char *str ;
// char *temp ;
//获取函数,是一个数组
web_reg_save_param(
“UrlList”,
“LB/ALNUMIC=<a href=”",
“RB=”",
“ORD=all”,
LAST);

web_url(“localhost”,
“URL=http://www.baidu.com”,
LAST);
//获取数据的长度
str = lr_eval_string(“{UrlList_count}”);
lr_error_message(“%s”,str);
num = atoi(str);

for(i=1;i<=num;i++){
//格式化输出
sprintf(temp,”{UrlList_%d}”,i);
//生成参数
lr_save_string(lr_eval_string(temp),”Turl”);
//判定URL 是否合法
if (strstr(lr_eval_string(temp),”http”)) {
web_url(“TESTER”,”URL={Turl}”, LAST);
}else
{
lr_error_message(“Url is not exits”);
}

}
return 0;
}

把上面的url改成我们自己的项目的时候,运行出现在了问题,我们的项目在页面里面的url都是写的相对路径,也就是没有前面的域名地址,这样的相对路径是不能被web_url函数访问,然后就是提示了一大片url无效。它不能访问也就是差一个域名地址,那我把每一个这样的相对地址加一个不就可以访问了吗?

我们页面访问使用的是session,所以里面的相对地址前面都是以session开头,所以我在原来的版本上面增加了两个步骤,第一个就是获取每一次访问的session,然后以它判断是否是没有域名开头的usl,是的,再给它把域名加上去再访问。

以下是我改版的:

Action()
{
 char    temp[64];
 int  num = 0;
 int  i = 0;
 char  *str;
 char fullurl[1024];

 //获取函数,是一个数组
 web_reg_save_param("UrlList","LB/ALNUMIC=<a href="",
        "RB="","ORD=all",
         LAST);

 //获取每一次访问生成的session,以便后面判断url
 web_reg_save_param("SessionID",
  "LB=Object moved to <a href="/",
  "RB=/">here</a>",
  "Search=Body",
  LAST);

 web_url("localhost",
   "URL=http://xxx.xxxx.cn/",
   LAST);

 //获取数组的长度
 str=lr_eval_string("{UrlList_count}");
 lr_error_message("s%",str);
 num=atoi(str);

 for(i=3;i<=num;i++){

  //格式化输出
  sprintf(temp,"{UrlList_%d}",i);

  //生成参数
  lr_save_string(lr_eval_string(temp),"Turl");

        //判定url是否合法
        if(strstr(lr_eval_string(temp),"http")){

            web_url("TEST","URL={Turl}",LAST);
   
        }
  else if(strstr(lr_eval_string(temp),lr_eval_string("{SessionID}")))
  {
   //lr_error_message(lr_eval_string("{Turl}"));
   //完善url
   strcpy(fullurl,"http://xxx.xxxx.cn/");
   strcat (fullurl,lr_eval_string("{Turl}"));

   //生成新的url参数
   lr_save_string(fullurl,"url");
   web_url("Every","URL={url}",LAST);
  }
  else
        {
            lr_error_message("Url is not exits");
   lr_error_message(lr_eval_string("{Turl}"));
        }


 }


 return 0;
}

原文地址:https://www.cnblogs.com/shengs/p/4452159.html