使用軟件測試工具Robot對數據庫進行并發測試

發表于:2009-09-27來源:作者:點擊數: 標簽:軟件測試數據庫工具robotRobot
使用軟件 測試 工具 Robot 對 數據庫 進行并發測試 第一步:創建演示程序:打開 SQL SERVER查詢分析器,在SQL SERVER測試數據庫中執行下列腳本(腳本執行操作:創建表testtable ,并插入一條記錄;創建存儲過程test): if exists (select * from dbo.sysobj

使用軟件測試工具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=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

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97