最近带工程师做项目时,发现当关联函数返回多个数据时,不能很好的实现随机选取服务器返回的数据
今天就总结一下 :
方法一:
优点:lr任何版本都能使用,
缺点:需要写的函数比较多
array_len=atoi(lr_eval_string("{css_files_count}"));
srand(time(NULL));
index=rand()%array_len+1;
sprintf(tempStr,"{css_files_%d}",index);
lr_save_string(lr_eval_string(tempStr),"tempStr_Rand");
举例:
web_reg_save_param("css_files",
"LB/IC=link rel=\"stylesheet\"",
"RB/IC=\" >",
"Ord=ALL",
LAST);
web_url("ObjectInspectorServlet_3",
"URL=http://{HostName}:{ServerPort}/opencrx-core-CRX/ObjectInspectorServlet?requestId={RequestId_Reg}&event=6¶meter=xri*%28xri%3A%40openmdx%3Aorg.opencrx.kernel.home1%2Fprovider%2FCRX%2Fsegment%2FStandard%2FuserHome%2Fguest%29",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=http://{HostName}:{ServerPort}/opencrx-core-CRX/ObjectInspectorServlet?locale=zh_CN?loginFailed=false",
"Snapshot=t8.inf",
"Mode=HTML",
LAST);
array_len=atoi(lr_eval_string("{css_files_count}"));
if(array_len>0){
srand(time(NULL));
index=rand()%array_len+1;
sprintf(tempStr,"{css_files_%d}",index);
lr_save_string(lr_eval_string(tempStr),"tempStr_Rand");
lr_error_message("value=%s",lr_eval_string("{tempStr_Rand}"));
// lr_save_string(lr_eval_string(lr_paramarr_random("css_files")),"cccc");
// lr_error_message(lr_eval_string("{cccc}"));
}
web_submit_data("WorkspacesDashlet.jsp",
"Action=http://{HostName}:{ServerPort}/opencrx-core-CRX/wizards/Dashboard/WorkspacesDashlet.jsp?requestId={RequestId_Dashlet}&event=41¶meter=xri*(xri%3A%2F%2F%40openmdx*org.opencrx.kernel.home1%2Fprovider%2FCRX%2Fsegment%2FStandard%2FuserHome%2Fguest)*id*(WorkspaceDashboardControl.W0.WorkspacesDashlet)",
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=http://{HostName}:{ServerPort}/opencrx-core-CRX/ObjectInspectorServlet?requestId={RequestId_Reg}&event=6¶meter=xri*%28xri%3A%40openmdx%3Aorg.opencrx.kernel.home1%2Fprovider%2FCRX%2Fsegment%2FStandard%2FuserHome%2Fguest%29",
"Snapshot=t9.inf",
"Mode=HTML",
ITEMDATA,
LAST);
方法二:
lr_save_string(lr_eval_string(lr_paramarr_random("css_files")),"cccc");
优点:两个重点函数 lr_paramarr_random 和lr_save_string 简单
缺点:适用于lr9版本以上
举例:
web_reg_save_param("css_files",
"LB/IC=link rel=\"stylesheet\"",
"RB/IC=\" >",
"Ord=ALL",
LAST);
web_url("ObjectInspectorServlet_3",
"URL=http://{HostName}:{ServerPort}/opencrx-core-CRX/ObjectInspectorServlet?requestId={RequestId_Reg}&event=6¶meter=xri*%28xri%3A%40openmdx%3Aorg.opencrx.kernel.home1%2Fprovider%2FCRX%2Fsegment%2FStandard%2FuserHome%2Fguest%29",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=http://{HostName}:{ServerPort}/opencrx-core-CRX/ObjectInspectorServlet?locale=zh_CN?loginFailed=false",
"Snapshot=t8.inf",
"Mode=HTML",
LAST);
array_len=atoi(lr_eval_string("{css_files_count}"));
if(array_len>0){
/*
srand(time(NULL));
index=rand()%array_len+1;
sprintf(tempStr,"{css_files_%d}",index);
lr_save_string(lr_eval_string(tempStr),"tempStr_Rand");
lr_error_message("value=%s",lr_eval_string("{tempStr_Rand}"));
*/
lr_save_string(lr_eval_string(lr_paramarr_random("css_files")),"cccc");
lr_error_message(lr_eval_string("{cccc}"));
}
web_submit_data("WorkspacesDashlet.jsp",
"Action=http://{HostName}:{ServerPort}/opencrx-core-CRX/wizards/Dashboard/WorkspacesDashlet.jsp?requestId={RequestId_Dashlet}&event=41¶meter=xri*(xri%3A%2F%2F%40openmdx*org.opencrx.kernel.home1%2Fprovider%2FCRX%2Fsegment%2FStandard%2FuserHome%2Fguest)*id*(WorkspaceDashboardControl.W0.WorkspacesDashlet)",
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=http://{HostName}:{ServerPort}/opencrx-core-CRX/ObjectInspectorServlet?requestId={RequestId_Reg}&event=6¶meter=xri*%28xri%3A%40openmdx%3Aorg.opencrx.kernel.home1%2Fprovider%2FCRX%2Fsegment%2FStandard%2FuserHome%2Fguest%29",
"Snapshot=t9.inf",
"Mode=HTML",
ITEMDATA,
LAST);