最近在网上到一个关于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;
}

Loadrunner如何遍历一个页面中的url并进行访问?的更多相关文章

  1. Python抓取页面中超链接(URL)的三中方法比较(HTMLParser、pyquery、正则表达式) <转>

    Python抓取页面中超链接(URL)的3中方法比较(HTMLParser.pyquery.正则表达式) HTMLParser版: #!/usr/bin/python # -*- coding: UT ...

  2. 一个页面从输入url到页面加载显示完成,中间都经历了什么

    第一种解释: 一般会经历以下几个过程: 1.首先,在浏览器地址栏中输入url 2.浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容.若没有,则跳到第三步操作. 3 ...

  3. 网站开发进阶(十)如何将一个html页面嵌套在另一个页面中

    如何将一个html页面嵌套在另一个页面中 1.IFrame引入 <IFRAME NAME="content_frame" width=100% height=30 margi ...

  4. 一个页面从输入URL到加载显示完成,发生了什么?

    面试经典题--URL加载 一.涉及基本知识点: 1. 计算机网络 五层因特尔协议栈: 应用层(dns.http):DNS解析成IP并完成http请求发送: 传输层(tcp.udp):三次握手四次挥手模 ...

  5. 网站开发进阶(十一)如何将一个jsp页面嵌套在另一个页面中

    如何将一个jsp页面嵌套在另一个页面中 这个在做网页中常要用到,有些通用的内容可集中放在一个页面文件中,其它要用到这些内容的页面只需要包含(引用)这个通用文件即可.这样便于维护,如果有很多网页,当通用 ...

  6. 润乾报表一个页面中的echarts地图与其他区块的联动

    需求概述: DBD样式效果如下图所示,需要点击左侧地图中的地区,右侧的仪表盘,柱线图可以对应显示对应该地区的数据. 实现思路: 分别制作带有地图.仪表盘.柱线图的3张报表:将3张报表放到DBD中设置布 ...

  7. Js 日期选择,可以的一个页面中重复使用本JS日历,兼容IE及火狐等主流浏览器,而且界面简洁、美观,操作体验也不错。

    <html> <head> <title>Js日期选择器并自动加入到输入框中</title> <meta http-equiv="con ...

  8. 一个页面从输入URL到页面加载完成发生了...待细化

    一个页面从输入URL到页面加载完成发生了... 1.查找浏览器缓存 2.寻址:DNS解析 查找该域名对应的IP地址, 如果需要重定向(301),则再次发起请求 3. 进行HTTP协议会话 4.客户端发 ...

  9. 需求:一个页面中需要用到多个字典数据。用于下拉选项,同时,需要将其保存为json格式。以便于key,value的相互转换。记录在实现过程中踩的坑

    本文涉及到的知识: Promise,all()的使用 js处理机制 reduce的用法 map的用法 同步异步 需求: 一个页面中需要用到多个字典数据.用于下拉选项,同时,需要将其保存为json格式. ...

随机推荐

  1. post请求乱码

    jsp页面中    <meta http-equiv="content-type" content="text/html; charset=UTF-8"& ...

  2. IIS发布.net core mvc web站点

    这里只有操作步骤! 第一.查看IIS是否安装了 AspNetCoreModule,查看路径:IIS->模块 查看 安装步骤 下载网址:https://www.microsoft.com/net/ ...

  3. Java程序(非web)slf4j整合Log4j2

    一.依赖包准备 //slf4j项目提供 compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25' //log4j2项目提供 co ...

  4. 安卓编译报错:Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.

    今天在编译别人的project时遇到了这个错误,心想应该不是代码的问题.网上搜了一下,应该是sdk版本设置的问题,要设置为最新sdk版本才可以. 解决办法就是修改project.properties里 ...

  5. Hystrix入门执行过程

    netflix-hystrix团队开发了hystrix-javanica,使用流行的java注解以及函数式编程,来替代hystrix枯燥的编程方法. 其主要是HystrixCommand注解的使用. ...

  6. tracert路由跟踪工具使用方法

    1. 路由跟踪在线Tracert工具说明 Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据报访问目标所采取的路径.Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP ...

  7. Spring学习10-SpringMV核心组件2及SpringMVC项目示例

    一.SpringMVC核心接口     5.ViewResolver接口--视图解析接口 继承体系:      5.View接口--视图接口   二.SpringMVC项目示例   (1)建立动态we ...

  8. 每日英语:Who Ruined The Humanities?

    You've probably heard the baleful reports. The number of college students majoring in the humanities ...

  9. python爬虫请求库之selenium模块

    一 介绍     selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器 ...

  10. 0070 过滤器调用Spring的bean操作数据库

    假设有这样的需求:将用户每次请求的ip.时间.请求.user-agent存入数据库,很明显可以用过滤器实现,在过滤器中获取到这些数据调用mybatis的mapper存入数据库,但问题来了:mybati ...