1. 利用測試載入器類比多個終端使用者進行並發測試;
這種測試方法的缺點:終端使用者往往並不是直接連接到資料庫上,而是要經過一個和多個中間服務程式,所以並不能保證訪問資料庫時還是並發。其次,這種測試方法需要等到用戶端程式、服務端程式全部完成才能進行;
2. 利用測試載入器編寫指令碼,直接連接資料庫進行並發測試;
這種方法可以有效保證並行作業,而且在資料庫訪問程式完成即可測試,可以大大縮短測試時間,而且測試效果更好。
下面通過一個示範程式,示範使用Robot使用第二種測試方法進行資料庫的並發測試。
第一步:建立示範程式
開啟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=countsfrom testtable where testid=1
update testtable setcounts=@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