产品的质量依赖于过程的质量, 而过程的质量依赖于企业文化和管理! 欢迎大家来到我的小窝~!

性能测试脚本的一个例子

上一篇 / 下一篇  2010-11-23 09:42:24

性能测试脚本的一个例子51Testing软件测试网_t[XFOsoW

 业务场景描述:5000用户分批次登陆系统,但是要保证登陆的用户中,时刻有一定比例的用户做业务(6%)其他用户登陆后等待;执行完业务的用户进入等待队列,然后从等待队列选取一人继续执行业务,但是要保证时刻有6%的执行业务占比。可以控制总的性能测试执行时间!51Testing软件测试网-`F)lEb1d+@;_{#k
51Testing软件测试网poNi!y)s}X@
  如下是我编写的场景脚本51Testing软件测试网$[+C f/T$e
#include <VU.h>
a\q ~9?M SH:`.O0#include <cvicse.h>
#] [ |(t\-R-QZ:zB0{
:f }Xt u'hF"T0
string logger;51Testing软件测试网*DwI1o8S;eo$N
//
共享变量,控制业务的起止时间
7w$L\\ A9lH0shared t_start,t_end;51Testing软件测试网\$^5nCvY*j
int t,t_zong;51Testing软件测试网3i6F%w&\ V+Mm,q+g;}
//
用于第一组并发用户的判断,同时也把值赋予id_yw;
:t1Jj ah;FC&X&S aS0shared num_yw,num_yw1;
E%dkZnA6S;Q0//
业务组内,每个虚拟用户的id
M&l ZU4LU;D&TTy0int id_yw;
9valvP%Py+g0//
下一个操作业务的用户id51Testing软件测试网#k#D tQ tZ3{i,|pg6`
shared id_next,share;51Testing软件测试网)I5n.F!X `b
int num_zong, num_binf;51Testing软件测试网;\^8[@ _2mT
//
设定wait的等待时间51Testing软件测试网M8XJ ^f IpG
int
 time_out;51Testing软件测试网'TR_7id~iS?%Wa

'N-u&_8`g |(HKP0//
根据业务所占比重计算,暂时用2,测试取整函数!51Testing软件测试网\)D!@k? u8luza
num_zong = _nusers;
#@0\w5H'b8d0num_binf = (_nusers*3)/10;51Testing软件测试网"?$e/V[:Ixo

%}CK;rN&fx ?6L0//
设定wait的等待时间,越长越好,假若一直没被激活,此时间可以设置为session的失效时间。51Testing软件测试网 g lH*C5Hz
time_out = (_nusers)*3000;
9E0GX P-~+R0
0D_:I7s8GK6t/Fct+O0//t_zong
,业务运行时间,暂时根据并发用户计算,1200  6060100051Testing软件测试网 Qh o0`Q
t_zong = (_nusers)*3000;51Testing软件测试网0H4xy)GV,e'z*Mk S)m3|

y\S-x Z0//
登录系统,一秒两个用户51Testing软件测试网V,hD&pf!T/L5v
//delay((_uid)*500);51Testing软件测试网)j0Ht,z*V7v~
share = num_binf;
1JUAN*u kM051Testing软件测试网DrlU-O'v4E
//
开始业务51Testing软件测试网;EFZ1B*n+rN9B Tp
num_yw1++;
cn2W/y9so+iC0id_yw = num_yw1;51Testing软件测试网 sp,Te5s3i3`B
t_start = start_time["yw_time"];51Testing软件测试网fH5kK9y%i#J:q6R3W
  
4Qn#q eVo`v3N051Testing软件测试网"g6C6cI!mIw1a/S
do{
/x7@d7Z3U dc-A-|4p0    num_yw++;
:z3jr2O7EN0  
g0kDa \8q|X0   //
第一次发起并发,发起id_yw比较小的(数量为该组需要并发的人数),大于id_yw的用户等待被激活
g @ge?7Pn+E(ix/Q0    if(num_yw > num_binf)51Testing软件测试网-Yh-A2cd(QsUPc#m
    {51Testing软件测试网3hn"I5xh^;v
    //
此处用户一直在监听,是否被激活,即现有操作人员结束操作后,随机产生的id号是否与自己匹配。如果匹配则开始业务操作,否则继续等待。
(bh%w'UMcnO0    wait(&id_next,id_yw,id_yw,0,time_out);51Testing软件测试网&yR U,JrKO2^
    if(wait(&id_next,id_yw,id_yw,0,time_out) == 0)51Testing软件测试网$N-F^vg Kr,B
    {
q?8xD"b"[0        //break;
vm SQ4Ot7{0        //script_exit("");
,}:`p\7zV0        user_exit(-1, "Fatal Error - Aborting");
-FO0ZDX4Zpd0    }51Testing软件测试网.g \@6_shy b
    //
说明:此处判断是否是被正常激活。0为等待超时(非正常激活)。当suite结束时,势必会造成大量的51Testing软件测试网 aK#UQc0_
    //
用户非正常激活,从而同时并发下面的业务。所以,此处设置适当延迟,使用户顺序推出。51Testing软件测试网8~7S YfT
    //delay(id_yw*10000);
7Kthr9\3wCRk#Uz1|0  51Testing软件测试网K@S jewy+}
    }
"y0LPE2E0    else
9L?r#P_-ng`0        {
j6x Nx2Z.A)tA*^0        logger = "the yw is starting.....";
ZI*s.SA%QX e0        writelog(logger);
j.zZm No _tR8u0        }51Testing软件测试网+pc;G6^!\5R
    //else
直接往下走。
H\*CE._0  
3N [ly6|X;N$HD8U0    //
开始操作业务51Testing软件测试网9`~4];}B
    //
使用delay(8000)模拟业务51Testing软件测试网/n6k7k Dz/{n}%nj
    delay(8000);51Testing软件测试网6s9H _ ZA
    //
结束操作业务
~h"l.u_8X1_ QL051Testing软件测试网F-H7oTH9|
    t_end = stop_time["yw_time"];   
 
x/P,YJ:E*oZi0
j2x2H0~ J0    t = t_end - t_start;51Testing软件测试网a9uV1Id5qm x#q
    //
业务结束后,在用户组内随机取一个用户id,赋给共享变量next_id51Testing软件测试网r1Z#|{,{#BN0SC
    //id_next =  ((rand()) % num_zong )+1;51Testing软件测试网4p x*i}(i
  
T {(s.Ow0    share++;51Testing软件测试网-`%A Ef"^\
    if(share<=num_zong)
/B-L!n[-?B%t*\:Z0    {
hO s,g6n9Y0        id_next =share;51Testing软件测试网n/\"A5h5p i _YY
    }else{
MV\+xv5w0K)Do}0        share = 1;51Testing软件测试网'E&^.I;ok3q'l!]iF
        id_next =share;51Testing软件测试网WT xC.ggg
    }51Testing软件测试网nP,fj3q:[/@ {5b;Z
51Testing软件测试网)`\*I)w,[6u
    }while(t<t_zong);51Testing软件测试网%{#S#[4`8Okk'n
}

Mbu-kuF0

 51Testing软件测试网(dF)G p.@1gF


TAG:

 

评分:0

我来说两句

日历

« 2024-04-21  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 50757
  • 日志数: 65
  • 文件数: 1
  • 建立时间: 2010-11-23
  • 更新时间: 2011-10-18

RSS订阅

Open Toolbar