`
kalogen
  • 浏览: 889922 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

loadrunner_webservice压力测试实例脚本强化

阅读更多

/*****************************************************
*Author:flyer qi
*Date:2007-6-25
*MSN:qiguojie at hotmail dot com
*QQ:410225
******************************************************/
void str_get_param(char str[],char tag[],char
result[])//输入字符串和标签,返回标签的values
{
 int i,j;//循环种子
 int lenstr,lentag,lenres;//依次是字符串长度、标签长度和返回值的长度+1
 int lb,rb;//values的左右坐标
 int Islb,Isrb;//标签字符判断正确次数
 lenstr = strlen(str);//get字符串长度
 lentag = strlen(tag);//get标签长度
 Islb = Isrb = 1;
for(i=0;i<lenstr;i++)//遍历str的每个字符
{
  if (str =="<"[0])//如果str的当前字符是"<"
  {
//lr_message("i=%d",i);  
//debug info
   for(j=0;j<lentag;j++)
//遍历比较tag标签长度的次数的str"<"后的字符和tag对应是否相等
   {
    if(str[i+1+j] == tag[j])
    {
  //lr_message("str[i+1+j]]=%c,tag[j]=%c,i=%d,j=%d",str[i+1+j],tag[j],i,j);
     Islb+= 1;//如果相等则正确次数+1
   //  lr_message("Islb=%d,lentag=%d,str[i+1+lentag]=%c",Islb,lentag,str[i+1+lentag]);
    }
    else
    {
     Islb= 1;
     break;
    }
   }
   if((Islb==lentag)&&(str[i+1+lentag]==">"[0]))//如果正确次数和标签的长度相等并且标签后的字符是">"
   {
    lb= i+1+lentag+1;//确定左边界是">"后的坐标
   // lr_message("str[i+1+j]]=%c,tag[j]=%c,i=%d,j=%d,lb=%d",str[i+1+j],tag[j],i,j,lb);
   }else
   {
    Islb=1;
   }
  }
  if((str=="<"[0])&&(str[i+1]=="/"[0]))//如果str的当前字符是"<"并且"<"后的字符是"/"
  {
   for(j=0;j<lentag;j++)//遍历比较tag标签长度的次数的str"/"后的字符和tag对应是否相等
   {
    if(str[i+2+j] == tag[j])
    {
    // lr_message("str[i+2+j]=%c,tag[j]=%c,i=%d,j=%d",str[i+2+j],tag[j],i,j);
     Isrb+= 1;//如果相等则正确次数+1
    }
    else
    {
     Isrb= 1;
     break;
    }
   }
   if ((Isrb ==lentag)&&(str[i+1+lentag+1]==">"[0]))//如果正确次数和标签的长度相等并且标签后的字符是">"
   {
    rb= i;//确定右边界是"<"的坐标
   }else
   {
    Isrb=0;
   }
  }
}

if ((lb == 0)&&(lb == rb))
{
  lr_message("没有此标记");
}else
{
  lenres = rb-lb;
//获取values的长度
//  lr_message("要获取的值的长度是%d",lenres);
//  lr_message("要获取的值的左边界坐标是%d,值是%c,右边界坐标是%d,前面的值是%c",lb,str[lb],rb,str[rb-1]);
  for(i=0;i<lenres;i++)//遍历values,赋值给返回值字符数组
  {
//   lr_message("result=%c,str=%c",result,str);
   result =str[lb+i];
  }
}
}
Action()
{
char re[1024];
// web_reg_save_param("Retcode","LB=&lt;RetCode&gt;","RB=&lt;/RetCode&gt;",LAST);
// web_reg_save_param("message","LB=&lt;Message&gt;","RB=&lt;/Message&gt;",LAST);
web_service_call( "StepName=sendXml_101",
  "SOAPMethod=SMSWS.SMSWebServiceSoapPort.sendXml",
  "Resp",
  "Service=SMSWS",
  "Snapshot=t1182823768.inf",
  BEGIN_ARGUMENTS,
  "Carrier=1",
  "Id=111111",
  "Password=111111",
  "ToMobile=1111",
  "Message=111",
  "MsgType=111",
  END_ARGUMENTS,
  BEGIN_RESULT,
  "sendXmlResult=res",
  END_RESULT,
  LAST);
str_get_param(lr_eval_string("{res}"),"Message",re);
lr_message("result=%s",re);
lr_think_time(3);
return 0;
}

 

 

============================

如果你想要><RetCode>10</RetCode>中的"10"
可以这样:
                lr_output_message(lr_eval_string("{response}"));

                lr_xml_get_values("XML={response}",
              "ValueParam=Result",
              "Query=//RetCode",
              LAST);

                lr_output_message(lr_eval_string("{Result}"));

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics