MILY: 宋體; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">關于事務(transaction)這個概念我最早是在做應用層測試的時候接觸的,那個是時候知道還在應用HTTP1.0,在HTTP1.0中如果不設置Active的情況下,每個connection(鏈接)上只能跑一個Transanction,那個時候接觸這個概念,是指的HTTP的這種請求,比如HTTP的Get或者HTTP的post等,應用測試儀表Avalanche&Relflector;那么具體這個事務是什么概念呢,我們可以看一下RFC3511《防火墻性能測試基本方法》這個文檔,在這個文檔中有一個測試的指標要求測試Maximum HTTP Transaction Rate即最大HTTP傳輸速率,考察防火墻設備能夠支持的應用層處理的能力。在這里要求的協議是HTTP1.0或者HTTP1.1;他指的是每秒處理的HTTP的請求數,但是這個過程是在TCP三次握手以后開始執行HTTP Get或者Post的請求。所以說這里的事務指的是HTTP層,或者說應用層上的請求處理情況。
后來在Chariot(網絡戰車)這個工具上也看到了這個概念,他的吞吐量測試過程中,首先通過TCP層建立連接,然后再TCP層上傳輸文件,在這個工具上稱這個傳輸文件的過程為Transaction;然后計算在單位時間可以傳輸多少個Mb的文件。從而計算出吞吐量。
再后來用到Load Runner,Mercury公司的一款性能測試的產品,這個時候看到在腳本中可以直接插入用戶定義的事務,將事務插入到腳本中,可以參考我的一篇文章:http://blog.csdn.net/Test_sunny/archive/
因此在LoadRunner 中事務就是一組函數,事務本身沒有一個特定的意義,這一組函數是:lr_start_transaction("test");和lr_end_transaction("test", LR_AUTO);這一組函數必須同時出現,如果出現其中一個,比如只有開始函數lr_start_transaction("test");沒有lr_end_transaction("test", LR_AUTO);函數系統運行后會報錯:Error: Vuser started transaction "test", but did not reached a corresponding end transaction statement. The transaction ended automatically with status 'fail'.同樣的如果只有結束事務沒有開始的事務函數報以下錯誤:Error: Failed to end Transaction "test" (by name). Please check that you made a call to start transaction operation.
跟事務相關的幾個指標:
1) TPS 每秒鐘事務處理數,是指單位時間對于特定事務來說能夠處理的個數;
2) Response time 響應時間,這個也是根據不同事務統計的一個時間,是指完整這個事務所花費的時間。
文章來源于領測軟件測試網 http://www.kjueaiud.com/