不要追求绝对的公平,红尘之中没有公平而言,人活一世,难得糊涂。                                           it is no use doing what you like, you have got to like what you do.

性能测试脚本自动建立测试datapool应用

上一篇 / 下一篇  2006-12-06 20:58:20 / 个人分类:软件测试技术

实际应用

&Y(]/yhN!M)\ ~ C _0


F/PC ET^0为了说明问题。我用分别用
vb,delphi, DotNET实现一个简单添加用户的功能,后台用ACCESS数据库,例用ado通过odbc连接。51Testing软件测试网a XFp k$s2p

1        分析程序实现的结构,是简单的c/s结构,利用odbc连接。并且客户端,服务器端都配置在一台计算机。(请注意这个是条件,我们第二步选择的基础)51Testing软件测试网\5] {p.^G$Y

2        设置session Record Options

9X]mi4^5\p0

录制方法选择api record录制,协议用odbc。(如果我后台换sqlserver或则oracle,其他实现方式不变,应该选择什么协议,因该添加什么协议)51Testing软件测试网bP4P'lfw

3         Vb,delphi编码方式的功能脚本录制成功(创建同名datapool)。DotNet脚本录制成功,却无法产生同名的datapool(怎么办)。不成功脚本如下:

k/hl h$`2O0

       /*

0h%lh2G]1Iw+q3KL0

      ->-> Session File Information <-<-51Testing软件测试网`)L%s W2C&zc

       Created: Sun Apr 25 23:24:36 2004

yH,ngy5A{0

          Name: G:\Program\robot\lead\TestDatastore\DefaultTestscrīptDatastore\TMS_Sessions\demo.wch

)GA#D!?ER+U$m2n0]"l$h0

          Type: Rational Robot - API51Testing软件测试网 `zZj@N7j(F

                (with ODBC)*/51Testing软件测试网;w$BSl h ET$f(^^
#include <VU.h>
51Testing软件测试网0k6g(`&?kY:xW-c%f0]

{51Testing软件测试网HQV^n(n8i:s1O

push Timeout_scale = 200; /* Set timeouts to 200% of maximum response time */51Testing软件测试网p n5zi:Z2]v

push Think_def = "LR";51Testing软件测试网C C4` zEc

Min_tmout = 120000;       /* Set minimum Timeout_val to 2 minutes          */51Testing软件测试网5Rv)T t|EY ~&a0Y

push Timeout_val = Min_tmout;51Testing软件测试网6D!s GcO3e*Ms\

/* No Datapool Items Remain */51Testing软件测试网v^"V(s[k

/* After All Data Analyses. */

C#?6Eu Z'OY0

VBNETDemo = sqlconnect("VBNETDemo", "", LOOKUP_PWD,51Testing软件测试网"TWJiEB

                       "VBNETDemo", "odbc",51Testing软件测试网 A D)O[$P-V8[B:HR

                       "DRIVER_INFO='DSN=?;;UID=DEFAULT;PWD=DEFAULT;'");51Testing软件测试网DU+k \-?K7q2kwfO-v

/*{ INFO SERVER "UNKNOWN"="0.0.0.0"; }  */51Testing软件测试网ln;a)E4D#WW

/* Unable to determine Server Name/Address  */

P%dEVSw0

set Server_connection = VBNETDemo;

7THQfi8QA0

push Think_avg = 0;

7C!~8u/D6f&@S0

stmt_2_1_id = sqlopen_cursor ["pre001"] "", "select * from login";51Testing软件测试网kq!{5z1H,o2Xz

set Think_avg = 313;

#PMkV;?+QX0

push CS_blocksize = 1;

| w0z"z;`4Q(oF0

sqlfetch_cursor ["pre002"] stmt_2_1_id, ALL_ROWS;

Guh!x3l+m J0

set Think_avg = 0;
:d&a }5|/|0

f4H+[-nj0Vx4oJ0

sqlclose_cursor ["pre003"]  stmt_2_1_id ;51Testing软件测试网7T[ Y3j&f7M/Dj

set Think_avg = 4078;51Testing软件测试网DA:LX.|E#xeZ6p9@

stmt_2_2_id = sqlopen_cursor ["pre004"] "", "INSERT INTO `login` (`name`,`password`) VALUES (?,?)",

0xMr~Z3w x1m0

   "'f\002'<varchar(50):I>",

h9^ v*xDg"@0

   "'f\002'<varchar(50):I>";

7?k%[j`/@+}"I0

set Think_avg = 0;
%m0YI"cly3Kl0
-i:D*K6C iH2p2P0sqlfree_cursor( stmt_2_2_id );51Testing软件测试网@$ql_9b _Q

/] fS8x&@\-~m,W0set Think_avg = 2781;
fe1J#{3{hmp7zPq0
&noaD%CsuG0sqlfree_cursor( stmt_2_1_id );
5\l7fK5Tbu ~;p051Testing软件测试网#|H[J$TR,cm
sqldisconnect(VBNETDemo);51Testing软件测试网%n$Fa~,lFT&P L
51Testing软件测试网F1WNSKSR9p f$P
pop [Think_def, Think_avg, Timeout_val, Timeout_scale];

eTc'}1P JY(a0

pop CS_blocksize;  }51Testing软件测试网i/S5r&M6B1ok3]w

       EDIT->Datapool information报错没有datapool config,那就动手修改脚本

k5g]1}q p!i },w0

4.修改脚本后如下

j7v1]'M-bV0

      /*->-> Session File Information <-<-

y9J%R }"g0l\C0

       Created: Sun Apr 25 23:24:36 2004

rk|:E5W!?-o5{0

       Name: G:\Program\robot\lead\TestDatastore\DefaultTestscrīptDatastore\TMS_Sessions\demo.wch

f'Yv,^-N^D0j0

          Type: Rational Robot - API51Testing软件测试网}6@ a5u^ q

                (with ODBC)*/
o5jrX7S Ol0
8d Fh){p T@S L0#include <VU.h>
51Testing软件测试网'wM[oCzY/H

{51Testing软件测试网^G9s)O9`5s
push Timeout_scale = 200; /* Set timeouts to 200% of maximum response time */

L5O/C_"y {0

push Think_def = "LR";51Testing软件测试网1A-mQ G,RuD)Y;e*n

Min_tmout = 120000;       /* Set minimum Timeout_val to 2 minutes          */

,U ]}D7b)d#a%s_0

push Timeout_val = Min_tmout;51Testing软件测试网j v;{$[D o r
51Testing软件测试网)n(~5^)o4NnK-k5G
/* No Datapool Items Remain */ 
红色字体是无法生成datapool的解释

[$C3|g2jR0

/* After All Data Analyses. */51Testing软件测试网D'p'| q?@&L6~.X

3x'rm5Jj VgPWD0DP1 = datapool_open("lead");   //
添加的脚本51Testing软件测试网S$a%V jpM x

datapool_fetch(DP1);          //添加的脚本51Testing软件测试网['tb(CzD
51Testing软件测试网EJQ%KCyG#N
VBNETDemo = sqlconnect("VBNETDemo", "", LOOKUP_PWD,

Z2^,hw&gp+D JIZ^0

                       "VBNETDemo", "odbc",

*Mo(X c0b}"\2O0

                       "DRIVER_INFO='DSN=?;;UID=DEFAULT;PWD=DEFAULT;'");
3i9JM&o b pE051Testing软件测试网%xIYZ%Z
/*{ INFO SERVER "UNKNOWN"="0.0.0.0"; }  */
51Testing软件测试网#iB8k.|4V-L/|

/* Unable to determine Server Name/Address  */
M&fc%SC/irh"|051Testing软件测试网L| v5}4l
set Server_connection = VBNETDemo;51Testing软件测试网bw+X/Xzr
51Testing软件测试网5m$YU)My$l$y;K
push Think_avg = 0;

0n/SVMQT_E-I4Ss0

stmt_2_1_id = sqlopen_cursor ["pre001"] "", "select * from login";

(lc E*y'g;@t*\H.od2X0[0set Think_avg = 313;

push CS_blocksize = 1;51Testing软件测试网C-pnMoea%c0?

sqlfetch_cursor ["pre002"] stmt_2_1_id, ALL_ROWS;51Testing软件测试网9N)l ? UR*kt

set Think_avg = 0;

AVJ'S-yW#bV,P0

sqlclose_cursor ["pre003"]  stmt_2_1_id ;

B9\ f%`"_y%u0

set Think_avg = 4078;

llpo8y'R(k0

stmt_2_2_id = sqlopen_cursor ["pre004"] "", "INSERT INTO `login` (`name`,`password`) VALUES (?,?)",

G9LKq]1oi[/{0

   "'f\002'<varchar(50):I>",

l _d/aJ4C/S0

   "'f\002'<varchar(50):I>";51Testing软件测试网ou'pe"a3H

 set Think_avg = 0;51Testing软件测试网,Y {%v5K.[dK#p;~

sqlfree_cursor( stmt_2_2_id );

+L5Hckp:KUCYq0

set Think_avg = 2781;51Testing软件测试网]&S r7y!wc1Jl4r

sqlfree_cursor( stmt_2_1_id );51Testing软件测试网&` `4] MXN

sqldisconnect(VBNETDemo);
@ C_%[hr)}:f051Testing软件测试网(G&J%mh'\u;g
pop [Think_def, Think_avg, Timeout_val, Timeout_scale];

f HD)~ T'aD0

pop CS_blocksize;51Testing软件测试网H%xYD P(N7U

}51Testing软件测试网+|N+P ]s2d&Z%H*J

//下边是添加的脚本51Testing软件测试网 NU;Ad9s*w

DATAPOOL_CONFIG "lead"  OVERRIDE DP_NOWRAP DP_SEQUENTIAL DP_SHARED

p L3_(Q1~6XL0

{51Testing软件测试网1w5F&M7zT*X9VH

        EXCLUDE, "rpcarg", "string", "f";

F0a3G5d3ld0

        EXCLUDE, "rpcarg", "string", "f";51Testing软件测试网(dr+Q*D)D%KzL,L"O

}51Testing软件测试网a%KTe\rm)T

 

3PGD3M3BR#pn1]7P0

脚本修改完成后,错误解决,可以打开datapool information.

zs/D!fZ+n.Y@0

4建立datapool51Testing软件测试网4C(_?T/z/r

Exclude含义是建立datapool但不建立datapool中字段,运行脚本的时候从实际录制的脚本中读数据。51Testing软件测试网$n,y?"?1gSP8}

Includedatapool建立一个同名的字段,运行脚本时从datapool中读数据。Overridedatapool中建立同名字段,运行脚本时从实际脚本中读数据。51Testing软件测试网@6jA&v)c1I Pn6{

修改datapoolusage属性为include,建立datapool字段,生成数据,修改数据(添加测试用例中的数据)51Testing软件测试网bvD ka^

5(确定脚本运行正常) robot中运行脚本,启动testmanager,点run suit。或者直接在testmanager中启动suit,修改changage,选择脚本51Testing软件测试网^Q'oL0WSY$k

6.多用户访问。运行20个用户同时访问服务器(修改suitnumber of users),运行,修改数字为20,同时运行51Testing软件测试网qO;h {/M;^}

7.我们需要多用户同时访问,但是数据不同。51Testing软件测试网 q {{[q3X"pm @

修改usage属性excludeinclude51Testing软件测试网#[ cJ6vS%u

修改DATAPOOL Informationplayback behavīoraccessradom51Testing软件测试网t.x`q3F#e2Q

use scrīpt dataobey usage。运行testmanagesuit51Testing软件测试网6foug4p3d


TAG: 性能测试 Datapool TestManager 自动化测试 实际应用

 

评分:0

我来说两句

Open Toolbar