第二步:創建測試腳本:在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.anti-gravitydesign.com