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

loadrunner_webservice压力测试实例脚本强化

发布时间:2020-12-17 00:14:57 所属栏目:安全 来源:网络整理
导读:/***************************************************** *Author:flyer qi *Date:2007-6-25 *MSN:qiguojie at hotmail dot com *QQ:410225 ******************************************************/ void str_get_param(char str[],char tag[],char resul

/*****************************************************
*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,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,j=%d,lb=%d",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,str[i+2+j],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=222221",
? "Password=222221",
? "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}"));

(编辑:李大同)

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

    推荐文章
      热点阅读