| 网站首页 | 测试时代论坛 | Blog技术社区 | 软件测试技术 | 自动测试技术 | 软件质量保证 | 资料下载中心 |
     | 业界新闻 | 软件测试活动 | 软件测试培训 | 软件测试服务 | 软件测试期刊 | 测试时代工作室 | Segue工具专区 |
您现在的位置: 软件测试时代 >> 自动测试技术 >> Segue工具 >> 文章正文 用户登录 新用户注册
SilkPerformer使用点滴            【字体:
SilkPerformer使用点滴
作者:笑游天涯…    文章来源:网络    点击数:    更新时间:2006-8-11    
 

一、录制时脚本为空的解决办法

 

使用SilkPerformer最常见的问题是在用录制时,录制不上内容,Functions数始终为0,脚本为空。

1. 检查注册表中的Key HKEY_LOCAL_MACHINE | SOFTWARE | Microsoft | Windows NT | CurrentVersion | Windows | AppInit_DLLs ,其值应为:qaphooks.dll。如果在qaphooks.dll后面有逗号或者空格,必须删除逗号或空格。

2. 检查注册表中的Key HKEY_CURRENT_USER | SOFTWARE | Microsoft | Windows | CurrentVersion | Explorer | BrowseNewProcess,其值应为:yes

3. 检查注册表中的Key HKEY_LOCAL_MACHINE | SOFTWARE | Microsoft | Windows | CurrentVersion | Explorer | BrowseNewProcess,其值应为:yes

4. 如果修改注册表的上述项后,function还一直为0,再检查SilkPerformerprofileproxy设置:

1)打开SilkPerformer,选择Settings | System | Recorder | Application Profiles

2)编辑您所使用的浏览器设置;

3)在protocol selection区内,确保Webcheckbox是选中的,然后选择“Web Settings”按钮;

4)确保Winsock的选项是W2_32.dll

 

 

二、与OracleLoadRunner端口冲突的解决办法

 

在装了OracleLoadRunner的机器上安装SilkPerformer,会造成SilkPerformerOracleLoadRunner通信端口冲突,如下图所示:

 

Oracle XDBXML数据库)Http服务的默认端口是8080,而SilkPerformer脚本记录器的http协议监听端口也默认的是8080

解决此端口冲突的方法有两种,一是更改Oracle XDB Http服务的端口;另一种方法就是更改SilkPerformer脚本记录器的Http协议监听端口。下面就简要介绍如何更改SilkPerformer脚本记录器的http协议监听端口。

1)打开SilkPerformer,选择Settings | System | Recorder | Proxies

2)选择HTTP协议,点“Edit”按钮编辑其设置;

3)把“listen port”编辑框中默认的8080,改为其它端口值就可以了,如18080

安装了LoadRunner的机器会占用端口1080,而SilkPerformer脚本记录器的Socks协议监听端口也默认的是1080。解决此端口冲突的方法与上面相同。

 

 

三、应用登录问题

 

在很多客户的应用中不允许同一个用户登录多次,那么如果需要在登录这个业务点上加压的话,就必需对登录的用户名和密码进行参数化。但是仅仅做了参数化还是不够的,因为如果让SilkPerformer的脚本在执行过程中自己去随机的取用户名和密码时,还是有可能会取到同一个用户名和密码,这样就冲突了,所以还必需要添加一些限制。

     FileCSVLoadGlobal(hfile csvFile "") //导入参数化文件

     FileGetRow(hfile GetUserId())           //根据虚拟用户的ID来取参数化的数据

     sAccountName=FileGetCol (hfile 1 10)//取数据的第一列 

     sPassword=FileGetCol (hfile 2 10)    //取数据的第二列

如果在第二行里面使用FileGetRndRow(hfile)函数,随机的在参数化文件里取数的话,当并发量大的时候,难免会造成取数冲突。所以在这里,用了GetUserId()来制定了那一个虚拟用户用那一个用户名和密码登录,这样就不存在冲突的问题了。

 

 

四、插入数据的问题

 

在压力测试中,用户测试用例中经常会有增加数据这样的业务。所以对插入数据的主键要进行必要的定制,不然加压时插入同一条数据,肯定是会出错的。但是插入数据的主键值又分为两种,一种是服务器端自动生成的,一种是客户端自己输入的。对于后一种就必需对数据进行处理。

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"1nCustID)

sCustID : = "2300" + string(nCustID)

从上面三行代码,我们可以看到,把主键的值sCustID不断的递增了,从而保证主键的唯一。

 

文章录入:huanghaiqing    责任编辑:seanhe 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    SilkPerformer负载测试流程
    SilK系列自动化测试工具技术…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)