1 . 给一个数组中的每个元素分配一个存储空间
char *a[100];
int iter=1;
for(i=0;i<iter;i++)
{
tmp2 = (char *)malloc(1024 * 4 * sizeof(char));
sprintf(tmp2,"{\"waybillId\":\"%s\",\"consignDate\":\"%sZ\",\"waybillNo\":\......,\"price1\":0}]},", waybillid1[i+1],lr_eval_string("{waybilldate}"),waybillno1[i+1]......lr_eval_string("{hubId}"));
len = strlen(tmp2);
a[i] = (char *)malloc(1024 * 4* sizeof(char));
memcpy(a[i],tmp2,strlen(tmp2)+1);
free(tmp2);
}
2 . 转码
1) 将汉字转化为Loadrunner可以识别的格式;
将“水果”转化为Loadrunner识别的格式并保存为“goodsName”参数;
lr_convert_string_encoding( "水果",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"temp" ); //将“水果”转为“LR_ENC_UTF8”格式并保存为变量“temp”;
strcpy(tmp,lr_eval_string("{temp}"));//将参数变为变量并保存在tmp中
lr_save_string(tmp,"goodsName");//将变量tmp保存为变量“goodsName”
2) 将Loadrunner运行脚本返回值中的乱码转为可以识别的汉字
先提取不可识别的返回值,保存在一个参数中;
web_reg_save_param("message",
"LB=errorMessages\":[",
"RB=success\"",
"NotFound=WARNING",
LAST);
然后将该参数转码并输出
lr_convert_string_encoding( lr_eval_string("{message}"),LR_ENC_UTF8,LR_ENC_SYSTEM_LOCALE,"my" );
3 . 关联时提取的参数太大,导致运行脚本报错,可以将提取的参数设定一个最大的容量(默认为256);
web_set_max_html_param_len("1024");
web_reg_save_param("message",
"LB=errorMessages\":[",
"RB=success\"",
"NotFound=WARNING",
LAST);
4 . 退出当前脚本
lr_abort();//终止执行的脚本
lr_exit(LR_EXIT_ITERATION_AND_CONTINUE, LR_FAIL);
LR_EXIT_VUSER
无条件退出,并终止action
LR_EXIT_ACTION_AND_CONTINUE
停止当前的action,但依然执行后续的action
LR_EXIT_MAIN_ITERATION_AND_CONTINUE
停止当前运行的迭代全局脚本,但依然执行后续的迭代
LR_EXIT_ITERATION_AND_CONTINUE
停止当前迭代,但依然执行后续的迭代。
如果调用的是一个Block迭代,仅终止Block迭代,而不终止全局的迭代
LR_EXIT_VUSER_AFTER_ITERATION
直到当前的迭代运行完成后才退出
LR_EXIT_VUSER_AFTER_ACTION
直到当前的Action运行完成后才退出