LoadRunner接口测试1

1:LoadRunner接口测试

1.1:Get_Request类型的接口

如下代码 web_url表示发送的是Get类型的请求

Action()
{
	web_set_proxy("127.0.0.1:8888");

	web_url("Weather Get", 
	"URL=http://v.juhe.cn/weather/index?cityname=%E6%B1%89%E4%B8%AD&dtype=&format=&key=yourkey", 
	"TargetFrame=", 
	"Resource=0", 
	"RecContentType=text/html", 
	"Referer=", 
	"Snapshot=t2.inf", 
	"Mode=HTML", 
	LAST);

	return 0;
}

1.2:POST_Request类型的请求

如下代码 web_submit_data函数表示提交的是POST类型的请求 web_add_header函数表示设置POST请求的header参数

Action()
{   
    web_set_proxy("127.0.0.1:8888");

    web_add_header("key","你的Key");

	web_submit_data("Weather POST", 
	"Action=http:http://v.juhe.cn/weather/index", 
	"Method=POST", 
	"TargetFrame=body", 
	"RecContentType=text/html", 
	"Snapshot=t3.inf", 
	"Mode=HTML", 
	ITEMDATA, 
	"Name=cityname", "Value=%E6%B1%89%E4%B8%AD", ENDITEM, 
	LAST);

	return 0;
}

如下代码是登录接口POST接口请求

Action()
{
	web_set_proxy("127.0.0.1:8888");

	web_submit_data("Default.do", 
	"Action=http://server ip:port/Mvsp/RegisterLogin/Default.do?Action=Login", 
	"Method=POST", 
	"TargetFrame=", 
	"RecContentType=text/plain", 
	"Referer=http://server ip:port/Mvsp/RegisterLogin/Default.jsp", 
	"Snapshot=t3.inf", 
	"Mode=HTML", 
	ITEMDATA, 
	"Name=UserName", "Value=admin", ENDITEM, 
	"Name=Language", "Value=zh-CN", ENDITEM, 
	"Name=Password", "Value=123456", ENDITEM, 
	"Name=AuthCode", "Value=", ENDITEM, 
	LAST);

	return 0;
}

2:编码转换

2.1:UTF-8转换成URL格式

由于URL中不能使用中文 所有部分有中文的get请求参数需要转换成URL编码格式,如下代码将普通中文转换成URL编码格式的核心代码

    //将中文转换成UTF-8编码
    lr_convert_string_encoding("广州",LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8 , "URLCode");
    //LoadRunner中需要先保存变量 再赋值给cityName
    lr_save_string (lr_eval_string("{URLCode}"),"cityName" );
    //将cityName转换成URL编码格式
    web_convert_param("cityName", "SourceEncoding=PLAIN", "TargetEncoding=URL",LAST );
Action()
{
	web_set_proxy("127.0.0.1:8888");

    //将中文转换成UTF-8编码
    lr_convert_string_encoding("广州",LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8 , "URLCode");
	//lr_save_string将程序中的产量或者变量保存为LoadRunner的参数 再赋值给cityName
    lr_save_string (lr_eval_string("{URLCode}"),"cityName" );
	//将cityName转换成URL编码格式
    web_convert_param("cityName", "SourceEncoding=PLAIN", "TargetEncoding=URL",LAST );

	web_url("Weather Get", 
	"URL=http://v.juhe.cn/weather/index?cityname={cityName}&format=&key=b95b8716ab39a65a6769b1845", 
	"TargetFrame=", 
	"Resource=0", 
	"RecContentType=text/html", 
	"Referer=", 
	"Snapshot=t2.inf", 
	"Mode=HTML", 
	LAST);

	return 0;
}

2,2:参数化城市 并且遍历

1:参数化4个城市 变量名为city

2:设置循环次数为4次

3:代码如下

Action()
{
	web_set_proxy("127.0.0.1:8888");

    //将中文转换成UTF-8编码
    lr_convert_string_encoding(lr_eval_string("{city}"),LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8 , "URLCode");
	//lr_save_string将程序中的产量或者变量保存为LoadRunner的参数 再赋值给cityName
    lr_save_string (lr_eval_string("{URLCode}"),"cityName" );
	//将cityName转换成URL编码格式
    web_convert_param("cityName", "SourceEncoding=PLAIN", "TargetEncoding=URL",LAST );

	web_url("Weather Get", 
	"URL=http://v.juhe.cn/weather/index?cityname={cityName}&format=&key=b95b8716ab39a65a6769b1845065f8", 
	"TargetFrame=", 
	"Resource=0", 
	"RecContentType=text/html", 
	"Referer=", 
	"Snapshot=t2.inf", 
	"Mode=HTML", 
	LAST);

	//POST GET请求内的参数取值不用加lr_eval_string这个函数,其他的需要加这个函数进行取值
	lr_output_message("查询天气预报的城市是: %s", lr_eval_string("{city}"));
	lr_output_message("城市对应的URL编码是: %s", lr_eval_string("{cityName}"));

	return 0;
}


	lr_output_message("查询天气预报的城市是: %s", lr_eval_string("{city}"));
	lr_output_message("城市对应的URL编码是: %s", lr_eval_string("{cityName}"));

	return 0;
}

运行后Fiddler的抓包(只截取了一个城市的)

3:POST/GET请求内部的取参数值与外部取参数值的差别

3.1POST/GET请求内部的取值:不用lr_eval_string这个函数来取值

web_url("Weather Get", 
"URL=http://v.juhe.cn/weather/index?cityname={cityName}&format=&key=b95b8716ab39a65a6769b1845065",

3.2:POST/GET请求外部的参数取值:需要用lr_eval_string这个函数来取

lr_output_message("查询天气预报的城市是: %s", lr_eval_string("{city}"));
lr_output_message("城市对应的URL编码是: %s", lr_eval_string("{cityName}"));

4:统计次数

Action()
{
    int size;

    web_set_proxy("127.0.0.1:8888");

    //将中文转换成UTF-8编码
    lr_convert_string_encoding(lr_eval_string("{city}"),LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8 , "URLCode");
    //LoadRunner中需要先保存变量 再赋值给cityName
    lr_save_string (lr_eval_string("{URLCode}"),"cityName" );
    //将cityName转换成URL编码格式
    web_convert_param("cityName", "SourceEncoding=PLAIN", "TargetEncoding=URL",LAST );

//上引号 逗号等需要在前面加转义字符 dates是统计LB RB之间的字符 因此是一个数组

    web_reg_save_param("dates",
        "LB=\",\"date\":\"",
        "RB=\"}",
        "Ord=ALL",
        LAST);

    web_url("Weather Get", 
    "URL=http://v.juhe.cn/weather/index?cityname={cityName}&format=&key=b95b8716ab39a659b1845065f5f8", 
    "TargetFrame=", 
    "Resource=0", 
    "RecContentType=text/html", 
    "Referer=", 
    "Snapshot=t2.inf", 
    "Mode=HTML", 
    LAST);

//将dates数组的长度赋值给int变量size

    size = lr_paramarr_len("dates");
    lr_output_message("查询%d天的天气预报", size);

    //POST GET请求内的参数取值不用加lr_eval_string这个函数,其他的需要加这个函数进行取值
    lr_output_message("查询天气预报的城市是: %s", lr_eval_string("{city}"));
    lr_output_message("城市对应的URL编码是: %s", lr_eval_string("{cityName}"));

    return 0;
}

猜你喜欢

转载自blog.csdn.net/hujyhfwfh2/article/details/82813597