不要追求绝对的公平,红尘之中没有公平而言,人活一世,难得糊涂。
it is no use doing what you like, you have got to like what you do.
用LoadRunner编写socket应用的测试脚本
上一篇 /
下一篇 2007-04-17 16:03:06
/ 个人分类:Mercury LoadRunner
LoadRunner提供了很好的对socket应用的支持,用户可以通过录制方法完全获得客户端发送和接收的数据,然后在录制的基础上对相应的数据进行参数化和关联等处理。
b
M.T.?&}Y051Testing软件测试网,b*U,]4X+dA\z 但在有些情况下(例如,客户端程序没有windows上的版本),我们就很难通过录制达成生成脚本的目标了。但如果我们能够完全知晓服务端和客户端的交互过程,完全手工编写一个
测试脚本也并不是一件特别困难的事情。
q/E:P c#GmBA0|?z(LRA"L{o$^K8FD0 在本文中,我们以一个实际的例子说明如何根据服务端和客户端交互的过程,用LoadRunner自行编写相应的脚本。
51Testing软件测试网7o6q
v.Q#Z3t51Testing软件测试网^j+yGl"hu 以下是服务端
工作线程的代码:
51Testing软件测试网!D!OY P ^%Y,a7ZDWORD WINAPI mythread( LPVOID lpParameter) //客户线程51Testing软件测试网%KeW8O1j7aQ
{51Testing软件测试网OI#eF!O%jh8f
struct My my;51Testing软件测试网7yz~!u;{Ff
memcpy(&my,lpParameter,sizeof(My)); 51Testing软件测试网9r N)v9hex"f
printf("One client connect!\n");
4\)mn'v1LD6]"d0 char str1[1024]; //接收字符串
@{5zZZ9m4x(V0 char str2[1024];51Testing软件测试网:P"O0?3~)Rb$i
,dAJ^"}
S0 int i;51Testing软件测试网I4LR1Y$Qu`VYY
i=recv(my.skt,str1,sizeof(str1),0); //接收客户请求
!y9n8gI2F^D0 str1[i]=0;51Testing软件测试网7q.@-l"lT O'V
A`BE0g0H0 char *filename;
&F
u+KY9NJr/vD4s$d0 filename=new char[255];
;X,X/LxP0 for(int j=2;j<i;j++) //获得文件名51Testing软件测试网8z)t,K+s_b
{51Testing软件测试网6v n)R*M.r7|?
filename[j-2]=str1[j];
moDn9Y4@ y8\0 }
9PqP7p*g
P0 filename[i-2]=0;51Testing软件测试网 Oup/WJ$e3ba
51Testing软件测试网H+p"s{^~#d!w
N |E$@jj%Q0 if (str1[0]=='S')51Testing软件测试网 ~/g9B(Cky!ya
{51Testing软件测试网z)Bv-I2h ]%F0p2|3k
printf("The file name : %s\n",filename);51Testing软件测试网,?"Xf5\f(z
ofstream out(filename); //创文件流
}7oe)v;MzC
g8a0 if (!out)
f_X%S nGK0 {51Testing软件测试网_jeF s7I
printf("cannot open file.\n"); //文件是否正确打开,打开错误则退出
g&N