• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Robot壓力測試實例

    發布: 2009-4-01 11:14 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 68次 | 進入軟件測試論壇討論

    領測軟件測試網

    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=counts  from 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

     

    第二步:創建測試腳本:在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 testtable with (UPDLOCK) where testid=1。再次進行并發測試,每次的結果應該都是20。

     

        以上演示程序,僅僅演示了測試的方法。在實際的數據庫并發測試中,首先要確定存在哪些并發情況、哪些數據受到并發影響,然后編寫腳本,設置suite進行并發測試。

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    22/2<12

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>