| 网站首页 | 测试时代论坛 | Blog技术社区 | 软件测试技术 | 自动测试技术 | 软件质量保证 | 资料下载中心 |
     | 业界新闻 | 软件测试活动 | 软件测试培训 | 软件测试服务 | 软件测试期刊 | 测试时代工作室 | Segue工具专区 |
您现在的位置: 软件测试时代 >> 自动测试技术 >> Rational工具 >> 文章正文 用户登录 新用户注册
[推荐]Robot进行数据库的并发测试            【字体:
Robot进行数据库的并发测试
作者:Spark.le…    文章来源:转自51    点击数:    更新时间:2006-12-12    

第一步:创建演示程序:打开SQL SERVER查询分析器,在SQL SERVER测试数据库中执行下列脚本(脚本执行操作:创建表testtable,并插入一条记录;创建存储过程test):

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Test]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

drop procedure [dbo].[Test]

GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[testtable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[testtable]

GO

CREATE TABLE [dbo].[testtable] (

       [testid] [int] NULL ,

       [counts] [int] NULL

) ON [PRIMARY]

GO 

insert into testtable (testid,counts) values (1,0)

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO 

CREATE Procedure dbo.Test

as

  declare @count int

  begin tran TEST   

    select @count=counts  from testtable where testid=1   

    update testtable set counts=@count+1    

  if (@@error >0) begin

       rollback tran TEST

  end else begin

       commit tran TEST

  end

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

第二步:创建测试脚本:在Robot中新建VU脚本,输入以下内容:

#include <VU.h>

{

push Timeout_scale = 200; /* Set timeouts to 200% of maximum response time */

push Think_def = "LR";

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

push Timeout_val = Min_tmout;

ser=sqlconnect("server","sa","888","192.168.0.99","sqlserver");

set Server_connection = ser;

push Think_avg = 0;

sync_point "logon";

sqlexec ["sql_1000"] "testdb..test";

sqldisconnect (ser);

}

说明:

ser=sqlconnect("server","sa","888","192.168.0.99","sqlserver")

  sa为数据库用户名,888为sa密码,192.168.0.99数据库IP地址

  以上三项按实际的测试数据库设置更改,其他两项不用修改

sqlexec ["sql_1000"] "testdb..test"

  testdb为新建存储过程test所在的数据库,按实际的数据库修改

第三步:执行测试:运行上一步创建的脚本(运行时自动创建Suite),在Run Suite窗口中的“Number of users”上输入20。运行完脚本,打开数据库查看counts的数值。把counts值改为零多次运行脚本,观察每次运行后counts的结果。

测试说明

(1)、测试示例程序的目的是,存储过程test每执行一次,表testtable中的counts字段增加一;

(2)、第三步的测试可以发现每次执行后counts结果并不相同,而且不等于20,这说明这个程序是在并发时是问题的。

(3)、将存储过程中的select @count=counts  from testtable where testid=1修改为select @count=counts  from test

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

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    使用Robot连接SQL的例子
    使用 Rational Robot 实现自…
    Rational 完成自动化功能测试
    Rational Robot压力测试实例
    Rational中的数据池(DATAPO…
    Rational Robot 常用语句
    数据库输出HTML格式报表的测…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)