用過lr的都知道,我們可以用web_reg_find這個注冊函數判斷某個請求的返回中是否有我們要找的內容,這就是檢查點。
但是,如果正常的情況有多種,該如何斷言呢?
我們可以設置多個檢查點,把每個檢查點獲取到的結果數量相加,如果大於0,就表示請求成功,然后通過if條件,人工判斷事務是否成功。
示例代碼:

Action()
{
int res = 0;
//int int_res = 0;
//char * string_res = (char*)calloc(100,sizeof(char)); // 請求存儲空間
//設置檢查點
web_reg_find("Text=\"code\":\"00\"","SaveCount=c00",LAST);
web_reg_find("Text=\"code\":\"8016\"","SaveCount=c8016",LAST);
web_reg_find("Text=\"code\":\"8017\"","SaveCount=c8017",LAST);
//web_reg_find("Text=\"code\":\"8001\"",LAST);
//獲取response響應信息
//web_reg_save_param("response","LB=","RB=",LAST);
lr_start_transaction("payPause");
web_custom_request("activityHandler",
"URL=http://127.0.0.1:8081/payPause",
"Method=POST",
"Resource=0",
"RecContentType=application/json",
"Referer=",
"Mode=HTTP",
"EncType=application/json",
"Body={\"tokenId\":\"{tokenId}\",\"cardNo\":\"62010101{userAccount}\"}",
LAST);
res = atoi(lr_eval_string("{c00}"))+atoi(lr_eval_string("{c8016}"))+atoi(lr_eval_string("{c8017}"));
//下面四行是調試信息,int和string需要互轉
//sprintf(string_res,"%d",res); //int轉string
//lr_output_message("string_res = %s",string_res);
//int_res = atoi(string_res); //string轉int,其實這里不需要轉了,因為res已經是int,這里只是再次體現string如何轉int
//lr_output_message("int_res = %d",int_res);
if (res > 0){
//lr_output_message("事務成功");
lr_end_transaction("payPause",LR_PASS);
}
else{
//lr_error_message("事務失敗");
lr_end_transaction("payPause",LR_FAIL);
}
//lr_convert_string_encoding(lr_eval_string("{response}"),LR_ENC_UTF8,"GBK","result");
//輸出response響應信息
//lr_output_message( "返回response響應信息:%s",lr_eval_string("{result}"));
//lr_end_transaction("payPause", LR_AUTO);
return 0;
}
