背景:考虑到预约的问题,在预约一个订单,怎样确定预约是成功的呢?要是有多个用户并发去预约一个号源,肯定有没有预约成功的用户,那么我怎么确认该用户预约失败了呢?在51提问的时候,有人提到了可以通过获取服务器返回值的状态码,来确定是否预约成功。询问了公司的开发,成功接口返回code:0 失败返回code:1 。
之后,一直思考怎么解决这个问题,然后看到了如下博文:http://bbs.csdn.net/topics/310138356,受益颇深,也解决了问题。具体解决问题如下:
1.录制一个示例脚本(登录),脚本内容如下:
Action()
{
web_url("booking",
"URL=http://192.168.0.99:8081/booking",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
/*进行登录操作*/
lr_think_time(8);
web_reg_find("Text=chenyinhua", //检查点
"SaveCount=a",
LAST);
web_submit_data("loginAction!loginQuick.action",
"Action=http://192.168.0.99:8081/booking/loginAction!loginQuick.action",
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=http://192.168.0.99:8081/booking/",
"Snapshot=t8.inf",
"Mode=HTML",
ITEMDATA,
"Name=orderwebUser.userName", "Value=Y2hlbnlpbmh1YQ==/", ENDITEM,
"Name=userPassword", "Value=MTIzNDU2", ENDITEM,
"Name=certCode", "Value=1111", ENDITEM,
LAST);
return 0;
}
2.在脚本最开始,定义一个变量,用于判断登录是否成功
int status;
3.将web_submit_data的返回值赋值给status,如下:
status=web_submit_data("loginAction!loginQuick.action",
"Action=http://192.168.0.99:8081/booking/loginAction!loginQuick.action",
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=http://192.168.0.99:8081/booking/",
"Snapshot=t8.inf",
"Mode=HTML",
ITEMDATA,
"Name=orderwebUser.userName", "Value=Y2hlbnlpbmh1YQ==/", ENDITEM,
"Name=userPassword", "Value=MTIzNDU2", ENDITEM,
"Name=certCode", "Value=1111", ENDITEM,
LAST);
4.写入一个判断,输出status的值
if(status==1) //一旦登录失败,脚本给出提示报错信息
{
lr_error_message("错误信息:%s","不能正常登录");
return -1;
}else if(status==0){
lr_output_message("登录成功。status=%d",status);
return 0;
}else{
lr_output_message("异常");
}
这里也可以用status的值,来判断登录事务是成功还是失败。
5.所以,整合后的脚本如下:
Action()
{
int status; //定义变量,用于判断登录是否成功
web_url("booking",
"URL=http://192.168.0.99:8081/booking",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
/*进行登录操作*/
lr_think_time(8);
web_reg_find("Text=chenyinhua",
"SaveCount=a",
LAST);
status=web_submit_data("loginAction!loginQuick.action",
"Action=http://192.168.0.99:8081/booking/loginAction!loginQuick.action",
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=http://192.168.0.99:8081/booking/",
"Snapshot=t8.inf",
"Mode=HTML",
ITEMDATA,
"Name=orderwebUser.userName", "Value=Y2hlbnlpbmh1YQ==/", ENDITEM,
"Name=userPassword", "Value=MTIzNDU2", ENDITEM,
"Name=certCode", "Value=1111", ENDITEM,
LAST);
if(status==1) //一旦登录失败,脚本给出提示报错信息
{
lr_error_message("错误信息:%s","不能正常登录");
return -1;
}else if(status==0){
lr_output_message("登录成功。status=%d",status);
return 0;
}else{
lr_output_message("异常");
}
希望对你有所帮助!