loadrunner脚本实例——webservice协议
发布时间:2020-12-16 23:33:14 所属栏目:安全 来源:网络整理
导读:和loadrunner脚本实例化——java Vuser协议文章中的相同的系统,这里使用webservice协议实现。 业务场景:需要从webservice接口中读取文件,文件包含一父三子共4个文件。 需要先使用searchdoc获取父文件ID; 读取父文件的同时,根据父文件ID使用getchilddoci
和loadrunner脚本实例化——java Vuser协议文章中的相同的系统,这里使用webservice协议实现。 业务场景:需要从webservice接口中读取文件,文件包含一父三子共4个文件。
脚本和说明如下: 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","Snapshot=t1301726361.inf","docID={NewParam1}","return=Param_return1",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","Snapshot=t1301728561.inf","docID={NewParam2}","childDocType=","return=Param_return2",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,"0"); if(comp1==0) { lr_end_transaction("获取所有子文档ID",LR_PASS); for(k=1;k<25;k++) { alldocid++; } strncpy(docz1,36); lr_output_message("%s",docz1); for(k=1;k<54;k++) { alldocid++; } strncpy(docz2,docz2); for(k=1;k<54;k++) { alldocid++; } strncpy(docz3,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","Snapshot=t1301731661.inf","docID={NewParam3}","return=Param_return3",LAST); // 判断第一个文档是否读取成功; readf = lr_eval_string("{Param_return3}"); for(k=1;k<42;k++) { readf++; } strncpy(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","Snapshot=t1301731684.inf","docID={NewParam4}","return=Param_return4",LAST); // 判断第二个文档是否读取成功; readf = lr_eval_string("{Param_return4}"); for(k=1;k<42;k++) { readf++; } strncpy(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","Snapshot=t1301731705.inf","docID={NewParam5}","return=Param_return5","0"); if(comp1==0) lr_end_transaction("读取第三个子文档",LR_PASS); else lr_end_transaction("读取第三个子文档",LR_FAIL); return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |