51Testing软件测试论坛

标题: SilkPerformer使用点滴 [打印本页]

作者: qi.wang    时间: 2005-10-28 17:27
标题: SilkPerformer使用点滴
1.        应用登陆问题
在很多客户的应用中不允许同一个用户登陆多次,那么如果需要在登陆这个业务点上加压的话,就必需对登陆的用户名和密码进行参数化。但是仅仅做了参数化还是不够的,因为如果让SilkPerformer的脚本在执行过程中自己去随机的取用户名和密码时,还是有可能会取到同一个用户名和密码,这样就冲突了,所以还必需要添加一些限制。
     FileCSVLoadGlobal(hfile, csvFile, ",");        //导入参数化文件
     FileGetRow(hfile, GetUserId());                 //根据虚拟用户的ID来取参数化的数据
     sAccountName:=FileGetCol (hfile, 1, 10);//取数据的第一列  
     sPassword:=FileGetCol (hfile, 2, 10);                //取数据的第二列
如果我们在第二行里面使用FileGetRndRow(hfile)函数,随机的在参数化文件里取数的话,当并发量大的时候,难免会取数冲突。所以在这里,用了GetUserId()来制定了那一个虚拟用户用那一个用户名和密码登陆,这样就不存在冲突的问题了。
2.        插入数据的问题
在压力测试中,用户测试用例中经常会有增加数据这样的业务。所以对插入数据的主键要进行必要的定制,不然加压时插入同一条数据,肯定是会出错的。但是插入数据的主键值又分为两种,一种是服务器端自动生成的,一种是客户端自己输入的。对于前一种…..,对于后一种就必需对数据进行处理。
在silkPerformer中有几个函数可以帮助我们处理这样的业务:
GlobalVarSet(in sVariable : string,
in nValue    : number,
in nTimeout  : number optional): boolean;
这个函数用来设定一个全局变量的值。
GlobalVarInc(in  sVariable : string,
             in  nInc      : number,
             out nValue    : number,
             in  nTimeout  : number optional): boolean;
此函数用来给这个全局变量递增。
GlobalVarGet(in  sVariable : string,
             out nValue    : number,
             in  nTimeout  : number optional): boolean;
这个函数用于从全局变量中取数值。
GlobalVarSet("CustID1", 40000);
GlobalVarInc("CustID1",1,nCustID);
sCustID := "2300" + string(nCustID);

从上面三行代码,我们可以看到,把主键的值sCustID不断的递增了,从而造成主键的唯一。
作者: qi.wang    时间: 2005-10-28 17:29
呵呵,有错误还请大家多多指正,谢谢
作者: cnothing    时间: 2005-11-28 23:38
怎么半调子的
对于前一种…..,怎么做?
作者: asks_zhuang    时间: 2005-12-19 13:24
标题: 赫赫
对于前一种,就让服务器自己去做了,是不是?
不过还是要考虑了这种情况下服务器端根据那些信息来自动完成插入的,看是否和客户端相关。
我猜测qi.wang的意思是:
如果需要插入的内容是当前的时间(服务器),那么由于和客户端无关,所以是不需要参数化的,直接完成即可




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2