欢迎所有爱好软件测试的任人志士加入本空间!
用LoadRunner编写socket应用的测试脚本
上一篇 /
下一篇 2007-05-16 16:31:45
LoadRunner提供了很好的对socket应用的支持,用户可以通过录制方法完全获得客户端发送和接收的数据,然后在录制的基础上对相应的数据进行参数化和关联等处理。
软件测试网u(f2[D/cy gPB(MTp,FtB?9n5{
X0 但在有些情况下(例如,客户端程序没有
windows上的版本),我们就很难通过录制达成生成脚本的目标了。但如果我们能够完全知晓服务端和客户端的交互过程,完全手工编写一个
测试脚本也并不是一件特别困难的事情。
~ze#J{A G0d@}1mQ%C | H0 在本文中,我们以一个实际的例子说明如何根据服务端和客户端交互的过程,用LoadRunner自行编写相应的脚本。
.`{0|~$F k$X0C9S.\P+?{E0 以下是服务端工作线程的代码:
y7j$`/^| ?0
DWORD WINAPI mythread( LPVOID lpParameter) //客户线程
-v8BQ D+}cu0{软件测试网{x*D|?8k
struct My my;
5qj5P.M#r4\g0 memcpy(&my,lpParameter,sizeof(My));
*kKMI;A(U/]C2N0 printf("One client connect!\n");
/i8_4E4R9X}0 char str1[1024]; //接收字符串
9FO8JEa7T p0 char str2[1024];
ib!U5l;~9t0 软件测试网/y&|
F1aa{-tv#K
int i;软件测试网%YNTs
?
i=recv(my.skt,str1,sizeof(str1),0); //接收客户请求软件测试网.R
m[pJ,D5F)Y
str1[i]=0;软件测试网,v1X Gu,r}
6\)c\On0 char *filename;
_$B)j e \,e;t2hB m9j0 filename=new char[255];
oUq-pG)Ip0 for(int j=2;j<i;j++) //获得文件名软件测试网b
M0o7j(}&lPnPR
{
5|?/Ib,xg'R&M0 filename[j-2]=str1[j];
,Q[_q.D1I0 }
`
MR5TMv
h3XLC0 filename[i-2]=0;
,F1y u)\,m2fY%O9C0
!aNq:i T{WG3`0
A1B8nJ\7o0 if (str1[0]=='S')
-w0wW4QuWY0 {
y$x1?.A*q W+~a0 printf("The file name : %s\n",filename);
4kZ!{w4N"@
pIi0 ofstream out(filename); //创文件流
$i4eI z7r SS0 if (!out)软件测试网l)XUB6P:f;Vw
{
x3N r:JB
xcm`0 printf("cannot open file.\n"); //文件是否正确打开,打开错误则退出