加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

loadrunner脚本实例——webservice协议

发布时间:2020-12-16 23:33:14 所属栏目:安全 来源:网络整理
导读:和loadrunner脚本实例化——java Vuser协议文章中的相同的系统,这里使用webservice协议实现。 业务场景:需要从webservice接口中读取文件,文件包含一父三子共4个文件。 需要先使用searchdoc获取父文件ID; 读取父文件的同时,根据父文件ID使用getchilddoci

和loadrunner脚本实例化——java Vuser协议文章中的相同的系统,这里使用webservice协议实现。

业务场景:需要从webservice接口中读取文件,文件包含一父三子共4个文件。

  1. 需要先使用searchdoc获取父文件ID;
  2. 读取父文件的同时,根据父文件ID使用getchilddocids方法获取所有子文件ID;
  3. 根据获取的子文件ID依次读取子文件;
  4. 根据返回的文件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","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;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读