LoadRunner一个Transaction中包含重定向的问题

在用户登录或者访问受限资源时候,往往会遇到重定向,在这种情况下,LoadRunner的一个Trasaction会包括两个甚至多个请求,如何拆分呢?

使用如下配置(LR12.5提供了JS的方式写Web-HTTP/HTML脚本了,妈妈再也不用担心我得一看C就会吐的病了):
web.setOption("MaxRedirectionDepth", "0");


然后写一个循环

lr.saveString('http//redirect.com','location');
var httpResult ="";
var i = 0;
web.setOption("MaxRedirectionDepth", "0", "LAST");
do {
lr.message("Start---->");


web.regSaveParamEx({
paramName : 'httpCode',
lb : 'HTTP/1.1 ',
rb : ' ',
notFound : 'warning',
scope : 'Headers'
});
web.regSaveParamEx({
paramName : 'location',
lb : 'Location: ',
rb : '\r\n',
notFound : 'warning',
scope : 'Headers'
});
var transactionName ='tt'+i;
lr.message(transactionName);
lr.startTransaction(transactionName);
lr.message("Visiting URL: " + reqURL);
web.url({
name : 'idm' + i,
url : '{location}',
recContentType : 'text/html'
});
lr.message("Redirect URL is: " + lr.evalString("{location}"));
httpResult = lr.evalString("{httpCode}");
lr.endTransaction(transactionName, lr.AUTO)
i++;
lr.message("END<----");
} while (httpResult == "302");



原理就是一旦发现HTTP response code 是302,就去解析response header,找出要跳转的地方保存下来,循环去做就可以了。

另外 使用如下API可以直接获取上一次HTTP请求的返回code,不用每次都去匹配解析一下:
web.getIntProperty(web.HTTP_INFO_RETURN_CODE);


再另外, LR12.5对JS代码: web.setOption("MaxRedirectionDepth", "0")的解析是有问题,昨天刚询问了LR Team,是一个JS的支持上的问题,JS只是外面一层皮,里面的实现实际上还是调用的C的东西,结果在实现这个API的时候出现了BUG。

在API实现上仅支持了
web.setOption("MaxRedirectionDepth", "0","LAST")这种方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值