LoadRunner11中关联参数(5)

      之前登陆WebTours网站中提示错误的session,无法登录,那是因为在登录时网站会给你一个session编码,你给与的session编码与它给你的不一致,所以无法登录。

    // 去获取上一个请求中给与的session编码并赋予变量
    // 实时获取值得方式:关联
    // 函数名:web_reg_save_param();------>为了获取上一请求中响应的usersession值
    // 该关联函数:带有reg字样,凡是带有reg字样的函数我们都成为注册型函数
    // 注册型函数的特点:哪个请求的响应数据有我们需要的数据,那么就放在请求的前面

 可以通过插入,新建步骤来找到该函数

 

 

fiddler查询结果

 

定位变量后加入花括号引用变量即可

 

Action()
{	
	//web_reg_save_param()
    web_reg_save_param("session",
		"LB=name=userSession value=",
		"RB=>",
		"Ord=1",
		LAST);
	web_url("打开网站","URL=http://192.168.226.146:1080/WebTours/",LAST);

    //去获取上一个请求中给与的session编码并赋予变量
	//实时获取值得方式:关联
	// 函数名:web_reg_save_param();------>为了获取上一请求中响应的usersession值
	// 该关联函数:带有reg字样,凡是带有reg字样的函数我们都成为注册型函数
	// 注册型函数的特点:哪个请求的响应数据有我们需要的数据,那么就放在请求的前面

	lr_output_message("%s",lr_eval_string("{session}"));
	web_custom_request("登陆",
		"URL=http://192.168.226.146:1080/WebTours/login.pl",
		"Method=POST",
		"TargetFrame=",
		"Resource=0",
		"Referer=",
		"Mode=HTML",
		"Body=userSession={session}&username=jojo&password=bean&login.x=65&login.y=3&JSFormSubmit=off",
		LAST);
/*
	web_submit_data("web_submit_data",
		"Action=http://192.168.226.146:1080/WebTours/login.pl",
		"Method=POST",
		"TargetFrame=",
		"Referer=",
		"Mode=HTML",
		ITEMDATA,
		"Name=userSession", "Value={session}", ENDITEM,
		"Name=username", "Value=jojo", ENDITEM,
		"Name=password", "Value=bean", ENDITEM,
		"Name=JSFormSubmit", "Value=off", ENDITEM,
		"Name=login.x", "Value=49", ENDITEM,
		"Name=login.y", "Value=13", ENDITEM,
		LAST);
*/

	return 0;
}

————————————————————————————————————————————————————————

高级关联(取多个参数)

还是以该订票案例为例,中间有一个订购时间的页面,页面中有四个时段参数,我们来捕获它们。

还是需要之前使用到的那个函数

代码

Action()
{	

	int arrSize;
	//int two;
	char * value;

	//web_reg_save_param()
    web_reg_save_param("session",
		"LB=name=userSession value=",
		"RB=>",
		"Ord=1",
		LAST);
	web_url("打开网站","URL=http://192.168.226.146:1080/WebTours/",LAST);

    //去获取上一个请求中给与的session编码并赋予变量
	//实时获取值得方式:关联
	// 函数名:web_reg_save_param();------>为了获取上一请求中响应的usersession值
	// 该关联函数:带有reg字样,凡是带有reg字样的函数我们都成为注册型函数
	// 注册型函数的特点:哪个请求的响应数据有我们需要的数据,那么就放在请求的前面

	lr_output_message("%s",lr_eval_string("{session}"));

	web_custom_request("登陆",
		"URL=http://192.168.226.146:1080/WebTours/login.pl",
		"Method=POST",
		"TargetFrame=",
		"Resource=0",
		"Referer=",
		"Mode=HTML",
		"Body=userSession={session}&username=jojo&password=bean&login.x=65&login.y=3&JSFormSubmit=off",
		LAST);

	
	web_url("点击订票",
		"URL=http://192.168.226.146:1080/WebTours/welcome.pl?page=search",
		"TargetFrame=",
		"Resource=0",
		"Referer=",
		"Mode=HTML",
		LAST);
	//下面请求有返回给我多个时段参数,所以我们需要在这里加入注册函数
	web_reg_save_param("flytime",
		"LB=<input type = radio name=outboundFlight value=",
		"RB=>",
		"Ord=ALL",
		LAST);

	web_custom_request("选择去哪并开始订票",
		"URL=http://192.168.226.146:1080/WebTours/reservations.pl",
		"Method=POST",
		"TargetFrame=",
		"Resource=0",
		"Referer=",
		"Mode=HTML",
		"Body=advanceDiscount=0&depart=Denver&departDate=08%2F07%2F2019&arrive=London&returnDate=08%2F08%2F2019&numPassengers=1&seatPref=None&seatType=Coach&findFlights.x=47&findFlights.y=11&.cgifields=roundtrip&.cgifields=seatType&.cgifields=seatPref",
		LAST);

	//原理还是全部取出放到了一个数组里,所以还是那样操作数组那样操作

	//arrSize = lr_paramarr_len("flytime");
    //three = lr_paramarr_random("flytime");
	//这个下标是从1开始的
	value = lr_paramarr_idx("flytime",2);
	//这样定义的value还不是变量,得使用下面的函数保存
	lr_save_string(value,"value");

	lr_output_message("%s",lr_eval_string("{value}"));

/*	web_custom_request("选择时段确认",
		"URL=http://192.168.226.146:1080/WebTours/reservations.pl",
		"Method=POST",
		"TargetFrame=",
		"Resource=0",
		"Referer=",
		"Mode=HTML",
		"Body=outboundFlight={value}&numPassengers=1&advanceDiscount=0&seatType=Coach&seatPref=None&reserveFlights.x=62&reserveFlights.y=7",
		LAST);
*/
	//上面那个不行,还得转符号

	web_submit_data("选择时段确认",
		"Action=http://192.168.226.146:1080/WebTours/reservations.pl",
		"Method=POST",
		"TargetFrame=",
		"Referer=",
		"Mode=HTML",
		ITEMDATA,
		"Name=outboundFlight", "Value={value}", ENDITEM,
		"Name=numPassengers", "Value=1", ENDITEM,
		"Name=advanceDiscount", "Value=0", ENDITEM,
		"Name=seatType", "Value=Coach", ENDITEM,
		"Name=seatPref", "Value=None", ENDITEM,
		"Name=reserveFlights.x", "Value=62", ENDITEM,
		"Name=reserveFlights.y", "Value=7", ENDITEM,
		LAST);


	
	web_custom_request("继续订票Last",
		"URL=http://192.168.226.146:1080/WebTours/reservations.pl",
		"Method=POST",
		"TargetFrame=",
		"Resource=0",
		"Referer=",
		"Mode=HTML",
		"Body=firstName=Joseph&lastName=Marshall&address1=234+Willow+Drive&address2=San+Jose%2FCA%2F94085&pass1=Joseph+Marshall&creditCard=123&expDate=123&saveCC=on&oldCCOption=on&numPassengers=1&seatType=Coach&seatPref=None&outboundFlight=022%3B320%3B08%2F07%2F2019&advanceDiscount=0&returnFlight=&JSFormSubmit=off&buyFlights.x=57&buyFlights.y=6&.cgifields=saveCC",
		LAST);



	return 0;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值