LR 脚本---webservice(收集)
网上收集的一些脚本。
1、http://blog.csdn.net/gzh0222/article/details/6887708
Action() { int msgcount=0; char next_message_id[32]=""; lr_start_transaction("心跳"); web_service_call( "StepName=getSysMessageCount_101", "SOAPMethod=DCMessageWS|DCMessageWSSoap|getSysMessageCount", "ResponseParam=response", "Service=DCMessageWS", "ExpectedResponse=SoapResult", "Snapshot=t1318991539.inf", BEGIN_ARGUMENTS, "userId={userID}", "companyId=1", "imei=000000000000000", END_ARGUMENTS, BEGIN_RESULT, "getSysMessageCountResult=Param_getSysMessageCountResult", END_RESULT, LAST); lr_end_transaction("心跳", LR_AUTO); msgcount=atoi(lr_eval_string("{Param_getSysMessageCountResult}")); if (msgcount>=100){ do { lr_save_string(next_message_id,"msgID"); lr_start_transaction("查看所有系统消息"); web_service_call( "StepName=GetSysMessDetailBytime_101", "SOAPMethod=DCMessageWS|DCMessageWSSoap|GetSysMessDetailBytime", "ResponseParam=response", "Service=DCMessageWS", "ExpectedResponse=SoapResult", "Snapshot=t1318992631.inf", BEGIN_ARGUMENTS, "msgID={msgID}", "userId={userID}", "imei=000000000000000", "companyId=1", END_ARGUMENTS, BEGIN_RESULT, "GetSysMessDetailBytimeResult=Param_GetSysMessDetailBytimeResult", "nextmsgID=Param_nextmsgID", END_RESULT, LAST); lr_end_transaction("查看所有系统消息", LR_AUTO); strcpy(next_message_id,""); strcpy(next_message_id,lr_eval_string("{Param_nextmsgID}")); }while(strcmp(lr_eval_string("{Param_nextmsgID}"),"")!=0); } return 0; }
2、
http://blog.csdn.net/mh370/article/details/29849189
业务场景:需要从webservice接口中读取文件,文件包含一父三子共4个文件。
- 需要先使用searchdoc获取父文件ID;
- 读取父文件的同时,根据父文件ID使用getchilddocids方法获取所有子文件ID;
- 根据获取的子文件ID依次读取子文件;
- 根据返回的文件ID格式以及具体返回结果判断操作是否成功;
脚本和说明如下:
Action() { //定义变量,这些变量都是修改脚本时根据需要自己定义的,录制过程中是没有的</span> char *string; char *readf; char *alldocid; char docID[50]; char readfreturn[20]; char docz1[50]; char docz2[50]; char docz3[50]; int k; int comp1; int comp2; lr_start_transaction("searchdocs"); //首先传入参数查询父文档,会返回父文档的ID web_service_call( "StepName=search_103", "SOAPMethod=xxxServiceImplService.xxxServiceImplPort.search", "ResponseParam=response", "Service=CmhkServiceImplService1", "Snapshot=t1301726251.inf", BEGIN_ARGUMENTS, "operatorID=yinzg", "docType=temp_002", "baseProperty=", "bizProperty=Customer_Code_code=\"{NewParam100}\"", END_ARGUMENTS, BEGIN_RESULT, "return=Param_return", END_RESULT, LAST); //把读取父文档返回的内容存放在string中</span> string = lr_eval_string("{Param_return}"); //判断获取父文档ID是否成功,成的话就直接取出父文档的id,根据父文档ID的长度和所在的位置获取父文档ID;</span> if(strlen(lr_eval_string("{Param_return}"))>40) { lr_end_transaction("searchdocs", LR_PASS); lr_output_message("%s",lr_eval_string("{Param_return}")); for(k=1;k<66;k++) { string++; } strncpy(docID,string,36); lr_output_message("%s",docID); } else { lr_end_transaction("searchdocs", LR_AUTO); return 1; } //把获取到的父文档ID传给参数,然后使用readdoc读取父文档 lr_save_string(docID,66,0"NewParam1"); //开始读取父文档 lr_start_transaction("read父文档"); web_service_call( "StepName=readDoc_101", "SOAPMethod=xxxServiceImplService.xxxServiceImplPort.readDoc", "ResponseParam=response", "Service=CmhkServiceImplService1", "Snapshot=t1301726361.inf", BEGIN_ARGUMENTS, "operatorID=yinzg", "docID={NewParam1}", END_ARGUMENTS, BEGIN_RESULT, "return=Param_return1", END_RESULT, LAST); lr_output_message("%s",lr_eval_string("{Param_return1}")); // 判断父文档是否读取成功; readf = lr_eval_string("{Param_return1}"); for(k=1;k<42;k++) { readf++; } strncpy(readfreturn,readf,1); lr_output_message("%s",readfreturn); comp1=strcmp(readfreturn,"0"); if(comp1==0) lr_end_transaction("read父文档", LR_PASS); else lr_end_transaction("read父文档", LR_FAIL); //把父文档ID 传入到参数 NewParam2中; lr_save_string(docID,"NewParam2"); //开始根据父文档ID读取所有的子文档ID; lr_start_transaction("获取所有子文档ID"); web_service_call( "StepName=getChildDocIds_101", "SOAPMethod=xxxServiceImplService.xxxServiceImplPort.getChildDocIds", "ResponseParam=response", "Service=CmhkServiceImplService1", "Snapshot=t1301728561.inf", BEGIN_ARGUMENTS, "operatorID=yinzg", "docID={NewParam2}", "childDocType=", END_ARGUMENTS, BEGIN_RESULT, "return=Param_return2", END_RESULT, LAST); lr_output_message("%s",lr_eval_string("{Param_return2}")); //判断获取所有子ID是否成功,成功的话则把三个子ID分别存到上个字符串中; alldocid = lr_eval_string("{Param_return2}"); for(k=1;k<42;k++) { alldocid++; } strncpy(readfreturn,alldocid,1); lr_output_message("%s",readfreturn); comp1=strcmp(readfreturn,"0"); if(comp1==0) { lr_end_transaction("获取所有子文档ID", LR_PASS); for(k=1;k<25;k++) { alldocid++; } strncpy(docz1,alldocid,36); lr_output_message("%s",docz1); for(k=1;k<54;k++) { alldocid++; } strncpy(docz2,alldocid,36); lr_output_message("%s",docz2); for(k=1;k<54;k++) { alldocid++; } strncpy(docz3,alldocid,36); lr_output_message("%s",docz3); } else { lr_end_transaction("获取所有子文档ID", LR_FAIL); return 1; } //把第一个子文档ID传入到参数NewParam3中,用于读取第一个子文档; lr_save_string(docz1,"NewParam3"); lr_start_transaction("读取第一个子文档"); web_service_call( "StepName=readDoc_101", "SOAPMethod=xxxServiceImplService.xxxServiceImplPort.readDoc", "ResponseParam=response", "Service=CmhkServiceImplService1", "Snapshot=t1301731661.inf", BEGIN_ARGUMENTS, "operatorID=yinzg", "docID={NewParam3}", END_ARGUMENTS, BEGIN_RESULT, "return=Param_return3", END_RESULT, LAST); // 判断第一个文档是否读取成功; readf = lr_eval_string("{Param_return3}"); for(k=1;k<42;k++) { readf++; } strncpy(readfreturn,readf,1); lr_output_message("%s",readfreturn); comp1=strcmp(readfreturn,"0"); if(comp1==0) lr_end_transaction("读取第一个子文档", LR_PASS); else lr_end_transaction("读取第一个子文档", LR_FAIL); //把第二个子文档ID传入到参数NewParam4中,用于读取第二个子文档; lr_save_string(docz2,"NewParam4"); lr_start_transaction("读取第二个子文档"); web_service_call( "StepName=readDoc_102", "SOAPMethod=xxxServiceImplService.xxxServiceImplPort.readDoc", "ResponseParam=response", "Service=CmhkServiceImplService1", "Snapshot=t1301731684.inf", BEGIN_ARGUMENTS, "operatorID=yinzg", "docID={NewParam4}", END_ARGUMENTS, BEGIN_RESULT, "return=Param_return4", END_RESULT, LAST); // 判断第二个文档是否读取成功; readf = lr_eval_string("{Param_return4}"); for(k=1;k<42;k++) { readf++; } strncpy(readfreturn,readf,1); lr_output_message("%s",readfreturn); comp1=strcmp(readfreturn,"0"); if(comp1==0) lr_end_transaction("读取第二个子文档", LR_PASS); else lr_end_transaction("读取第二个子文档", LR_FAIL); //把第三个子文档ID传入到参数NewParam3中,用于读取第三个子文档; lr_save_string(docz3,"NewParam5"); lr_start_transaction("读取第三个子文档"); web_service_call( "StepName=readDoc_103", "SOAPMethod=xxxServiceImplService.xxxServiceImplPort.readDoc", "ResponseParam=response", "Service=CmhkServiceImplService1", "Snapshot=t1301731705.inf", BEGIN_ARGUMENTS, "operatorID=yinzg", "docID={NewParam5}", END_ARGUMENTS, BEGIN_RESULT, "return=Param_return5", END_RESULT, LAST); // 判断第一个文档是否读取成功; readf = lr_eval_string("{Param_return3}"); for(k=1;k<42;k++) { readf++; } strncpy(readfreturn,readf,1); lr_output_message("%s",readfreturn); comp1=strcmp(readfreturn,"0"); if(comp1==0) lr_end_transaction("读取第三个子文档", LR_PASS); else lr_end_transaction("读取第三个子文档", LR_FAIL); return 0; }

浙公网安备 33010602011771号