Loadrunner如何遍历一个页面中的url并进行访问?
2015-04-23 23:26
267 查看
最近在网上到一个关于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;
}
原始版本:
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;
}
相关文章推荐
- Spring MVC中redirect到一个页面,同时带些信息过去进行显示,但是不通过Session方式及URL方式
- java,jsp获取上一个访问页面URL
- Apache的虚拟目录功能和如何对某一个目录进行访问权限控制
- form提交时,如果target=_blank,则会打开一个新页面,但是大小和位置无法控制,请问如何进行控制
- 在linux命令下如何访问一个url?
- java工程如何修改成web工程,并进行jsp页面的访问?
- 如何恢复一个非用户sa创建的数据库,且使用原用户创建者进行访问
- 在linux命令下如何访问一个url?
- 权限系统--通过shiro进行按钮及页面访问url的权限控制
- JSP获取上一个访问页面URL的方法
- SpringMVC学习系列(3) 之 URL请求到Action的映射规则 在系列(2)中我们展示了一个简单的get请求,并返回了一个简单的helloworld页面。本篇我们来学习如何来配置一个acti
- 一个list中包含不同的type时如何遍历?页面如何接收?Jquery调用后台方法?
- 当客户访问一个需登陆的页面时会转到登陆页面,当客户登陆成功后会自动跳转到客户登陆前的那个页面,请问该如何实现?
- 如何使用 asp.net 4.0 新特性 路由功能 有助于seo优化 给一个 asp.net web项目(网站项目) 增加路由功能 ,继承,给根据路由生成的url的结尾,增加一个有利于seo优化的斜杠 /,跳转到一个路由生成的url页面
- 从上一个页面跳入新页面时,如何拿URL中的参数
- 18.02.10,记录maven开发bos中struts2配置问题,关于如何进行WEB-INF下页面的访问?
- 首次进入页面刷新1次|JSP获取上一个访问页面URL的方法
- 在linux系统中的shell命令下如何访问一个url地址呢?
- 如何将一个PDF文件页面进行的拆分为多个PDF文件
- 纯静态html页面,js 如何拦截请求url的后缀不是.html的访问地址