思路:
1.根据接口文档中的具体需求做好数据准备工作,分析需求,熟悉业务,考虑接口返回值得各种情况,事先做好数据准备,估计预期结果
2.利用Loadrunner编写测试脚本
3.根据业务流程利用web_custom_request(或web_submit_data)函数向服务器发出请求
4.根据事先准备好的数据,来对接口参数进行参数化,考虑好迭代次数、数据更新方法和数据分配方法
5.利用服务器返回的相应内容以及状态码来判断功能是否正确
6.根据脚本产生的日志结果与预期结果进行比对,得出结论
注意:
1.在编写脚本,进行参数化时,可能会遇到转码问题
2.向服务器发送请求时,有时会传输数据包,利用web_custom_request中的body传送数据,注意数据格式
3.对获得的相应内容要做转码,利用lr_convert_string_encoding函数
4.获取httpcode可利用web_get_int_property(HTTP_INFO_RETURN_CODE)函数
5.保存响应体内容,利用web_reg_save_param("ResponseBody", "LB=", "RB=", "Search=Body", LAST);
6.传输数据格式时,必要时要在请求头中加入响应内容,例如:web_add_header("Content-Type","text/xml");
//例子:
char tmp[50];
int HttpRetCode;
web_reg_save_param("ResponseBody", "LB=", "RB=", "Search=Body", LAST);//保存响应体内容
//对中文进行UTF-8转码
lr_convert_string_encoding(lr_eval_string("{truename}") ,LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"name" );
strcpy(tmp,lr_eval_string("{name}"));
lr_save_string(tmp,"truename1");
//字符转码响应体
lr_convert_string_encoding(lr_eval_string("{ResponseBody}"),LR_ENC_UTF8,LR_ENC_SYSTEM_LOCALE,"ResponseBodyUTF8");
//个性帐号注册
web_custom_request("NetType",
"Url=http://XXX.XXX.XXX/?username={username}&pwd={pwd}&truename={truename1}",
"Method=POST",
"Referer=0",
"Mode=HTTP",
LAST);
//lr_log_message();
//响应体转码
lr_convert_string_encoding(lr_eval_string("{ResponseBody}"),LR_ENC_UTF8,LR_ENC_SYSTEM_LOCALE,"ResponseBodyUTF8");
//输出相应内容体
// lr_output_message("# 响应内容体:\n %s", lr_eval_string("{ResponseBodyUTF8}"));
// 获取httpcode
HttpRetCode=web_get_int_property(HTTP_INFO_RETURN_CODE);
//判断返回的HttpCode值
if(HttpRetCode==200){
lr_log_message(" 1.成功!\n 2.返回值:%s\n 3.HTTP返回的状态码:200",lr_eval_string("{ResponseBodyUTF8}"));
}else if(HttpRetCode==400){
lr_log_message(" 1.失败!业务未通过,具体信息见返回值。\n 2.返回值为:%s\n 3.HTTP返回的状态码:400",lr_eval_string("{ResponseBodyUTF8}"));
}else if(HttpRetCode==401){
lr_log_message(" 1.签名错误\n 2.返回值为:%s\n 3.HTTP返回的状态码:401",lr_eval_string("{ResponseBodyUTF8}"));
}else if(HttpRetCode==500){
lr_log_message(" 1.未知错误\n 2.返回值为:%s\n 3.HTTP返回的状态码:500",lr_eval_string("{ResponseBodyUTF8}"));
}else{
lr_log_message(" 1.未知错误\n 2.返回值为:%s\n 3.HTTP返回的状态码:{HttpRetCode}",lr_eval_string("{ResponseBodyUTF8}"));
}