webservice压力测试实例脚本强化
webservice压力测试实例:51Testing软件测试网b A{S7_Qi
SG#~$M0M s'}0http://www.51testing.com/?6343/action_viewspace_itemid_14821.html
|0y_4eB|0d3@)v0在增强这个脚本的时候,我遇到一个问题,就是这个接口的返回值是一个字符串:51Testing软件测试网NY)W0Zp
Response><Result><ToMobile></ToMobile><RetCode>10</RetCode><ErrCause>Web Service</ErrCause><Message>参数为空</Message></Result></Response>
6xl:fk?+@]-p0
9{a{ d!O0QB0:j2@p'q_5VP0开始的时候我以为返回的是xml格式,我就使用lr_xml_get_values函数和lr_xml_find函数,但是都不可以使用;
6r:`_o-Uxc0d
ZU,SEM]d0后来没想出来好方法,就自己写了一个从带标签的字符串中找到标签的值的函数:
)le#r7Rsa3Rb0/*****************************************************51Testing软件测试网X2E
l'N4J8P8vf r
*Author:flyer qi51Testing软件测试网jwp!CH'`}L
*Date:2007-6-2551Testing软件测试网9| p&e*L5[R
*MSN:qiguojie at hotmail dot com
#}f:P\{M'dk0*QQ:410225
0R}2cb5y(_!Y0******************************************************/
EQ#FITx1x#}6q0void str_get_param(char str[],char tag[],char result[])//输入字符串和标签,返回标签的values
$X `(fK}
`0{
.m&I3H;ph C0 int i,j;//循环种子
#@w&A*xb:e0 int lenstr,lentag,lenres;//依次是字符串长度、标签长度和返回值的长度+1
/~xWb(Bj0[0 int lb,rb;//values的左右坐标51Testing软件测试网~;Q F/Z.VkyO,^
int Islb,Isrb;//标签字符判断正确次数51Testing软件测试网5g-WAknG+U0|.d
lenstr = strlen(str);//get字符串长度
\_ cOAnTq]0G0 lentag = strlen(tag);//get标签长度
h+I"n8X&sv0 Islb = Isrb = 1;51Testing软件测试网V5a#m)H
W
for (i=0;i<lenstr;i++)//遍历str的每个字符51Testing软件测试网1Q$vFqh4m
{51Testing软件测试网 Qu ` N@#V
if (str[i] == "<"[0])//如果str的当前字符是"<"51Testing软件测试网h0j!k8Ev&a6j4D
{
i7pu oZ(Op]0 // lr_message("i=%d",i); //debug info
5?9H sf]0 for (j=0;j<lentag;j++) //遍历比较tag标签长度的次数的str"<"后的字符和tag对应是否相等51Testing软件测试网6lR@c:Fwm)F1L1\?~
{51Testing软件测试网~7fbQ:t"D
if (str[i+1+j] == tag[j])
,].i%_,|"fdc
oG0 {
$S_:S)F-n0 // lr_message("str[i+1+j]]=%c,tag[j]=%c,i=%d,j=%d",str[i+1+j],tag[j],i,j);51Testing软件测试网9K l-r W#K)F(e
Islb += 1;//如果相等则正确次数+1
]J#zk:h8B0 // lr_message("Islb=%d,lentag=%d,str[i+1+lentag]=%c",Islb,lentag,str[i+1+lentag]);
YYRwq HK}t0Sf6@z0 }51Testing软件测试网gF(r!H g8T \@kT&g
else51Testing软件测试网[8}CK d4Uhm
{
F0Fp4c/qe0 Islb = 1;
-ODhG#M0 break;51Testing软件测试网i)dv1l)w g
Dj
s
}
4H:b.CS6^TLw0 }51Testing软件测试网Iq LR/Rq)~$i"l
if ((Islb==lentag) &&(str[i+1+lentag]==">"[0]))//如果正确次数和标签的长度相等并且标签后的字符是">"51Testing软件测试网$R%W%@*TP(e?Ou
I:KsG
{51Testing软件测试网;^ `*q6T2JHukn }
lb = i+1+lentag+1;//确定左边界是">"后的坐标
@l
x|&pvn0 // 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);
Rr-Tg\hJ;~6u]0 }else51Testing软件测试网4X7Qp,L9xBm;cN4o}{
{51Testing软件测试网{~h)i,JM.|(b9E
Islb=1;
)I9fF.I6Fk b_9f0 }51Testing软件测试网i\)r|W
}51Testing软件测试网x6CRe`-obiX B
if ((str[i]=="<"[0])&&(str[i+1]=="/"[0]))//如果str的当前字符是"<" 并且"<"后的字符是"/"51Testing软件测试网3_;ra2H;aU4ZQ
{51Testing软件测试网J+R#qY@[U:L
for (j=0;j<lentag;j++)//遍历比较tag标签长度的次数的str"/"后的字符和tag对应是否相等
U7N]K7]_0 {
1Q5m2[&~
TN$B:K0 if (str[i+2+j] == tag[j])51Testing软件测试网$m4mjv2W
{
"Ln PJpQ
WD0 // lr_message("str[i+2+j]=%c,tag[j]=%c,i=%d,j=%d",str[i+2+j],tag[j],i,j);