创建演示程序:打开SQL SERVER查询分析器,在SQL SERVER测试数据库中执行下列脚本(脚本执行操作:创建表testtable,并插入一条记录;创建存储过程test):
-------
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
-------
if exists(select * from dbo.sysobjects where id = object_id(N'[dbo].[Test]') and OBJECTPROPERTY(id,N'IsProcedure') = 1)
drop procedure [dbo.Test]
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_IDETIFIER OFF
GO
SET ANSI_NULLS ON
GO
第二步:创建测试脚本:在Robot中新建VU脚本,输入以下内容:
#include
{
push Timeout_scale = 200; /*Set timeout 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_connect = 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的结果。