測試方案
為了比較事務處理模型,我們使用了一個方法,在數據庫的相應表中插入訂單標頭和詳細信息。如果任何插入操作失敗,我們將事務處理恢復到原始狀態。如果所有插入操作成功,則提交事務處理。
為了使測試盡可能符合實際情況,加載的數據庫中包含了 10 萬行客戶帳戶,100 萬行訂單(每個客戶 10 個訂單)和 500 萬個訂單詳細信息(每個訂單 5 個詳細信息)。這些數據位于 SQL Server 2000 數據庫和 SQL Server .NET 數據提供程序中,用于連接 SQL Server。此處比較的某些方法使用了 SQL Server 2000 的 XML 功能。
InsertOrder
InsertOrder 方法接受代表一個訂單和多個詳細信息的數據,然后將數據插入到數據庫中相應的 Order 和 OrderDetails 表中,作為該事務處理的一部分。
測試工具和策略
在我們的測試中,一個 ASPX Web 頁調用了一個包含測試代碼的 .NET 程序集。如果直接測試事務處理控件技術,而不是通過 Web 服務器,我們可以獲得更好的絕對性能,然而,對通用應用程序方案而言,在無狀態環境中進行測試更具現實意義。另外,有很多測試工具可以對提供多線程測試的 Web 頁進行適當地強度測試。
為達到測試目的,我們使用了 Microsoft 應用程序中心測試 (ACT)。它可以對 Web 服務器進行強度測試,分析 Web 應用程序(包括 ASP 頁及其使用的組件)的性能和可伸縮性問題。有關如何創建和運行測試的詳細信息,請參閱 ACT documentation(英文)。通過打開到服務器的多個連接并迅速發送 HTTP 請求,應用程序中心測試可以模擬一大組用戶。它還允許我們建立實際的測試方案,我們可以在方案中使用一組隨機參數值調用同一個方法。此功能很重要,這樣用戶就不必使用相同的參數值反復調用同一個方法。另一個有用的功能是,應用程序中心測試可以記錄測試結果,從而提供有關 Web 應用程序性能的最重要的信息。
根據業務需求不同,應用程序可能在不同的事務處理隔離級別上運行。隔離是指一個事務處理必須和其他事務處理分離的程度。隔離級別越高,越能保證數據的一致性,但可能會嚴重影響應用程序的伸縮能力。降低隔離級別可以增強應用程序的可伸縮性,但卻不能保證數據的準確性。Microsoft SQL Server 2000 支持四種隔離級別:READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ 和 SERIALIAZABLE。默認情況下,它在 READ COMMITTED 隔離級別下運行。有關詳細信息,請參閱 Microsoft SQL Server 2000 documentation(英文)。Windows 2000 上運行的 COM+(1.0 版)只支持 SERIALIAZABLE 隔離,即最高程度的隔離。這樣高的數據保護級別大大影響了性能。(注意:與 Microsoft Windows .NET Server(目前最高版本是 Beta 3)一同發行的 COM+ 1.5 允許對事務處理組件的隔離級別進行配置。)為了對事務處理模型進行客觀的比較,我們在 SERIALIAZABLE 隔離級別上運行事務處理。
計算機配置
下表提供了用于執行測試的測試臺配置的簡單摘要。
表 1:客戶端計算機配置
客戶端數量計算機/CPU CPU 數量內存硬盤軟件
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/