采用鋪底數據進行 SOA 應用的性能測試軟件測試
在大規模 SOA 應用的性能測試中,一個很重要的事就是準備鋪底數據。所謂鋪底數據,即在性能測試之前人工的向數據庫里面存入用來模擬歷史的或無用的大量數據。那么,為什么要準備鋪底數據呢?通常情況下,準備大概每個表 1 G 的數據,數據量大概是每張表大于 5000 萬條數據,如何快捷真實的準備鋪底數據呢?本文還將簡單介紹一下在性能測試的時候為什么需要搭建 WebSphere Process Sever (WPS) Cluster,以及如何搭建 WPS Cluster。最后,通過 Rational Performance Tester (RPT) 7 結合 WPS 集群進行性能測試,并分析比較在 WPS 服務器下的有無鋪底數據支持的性能。
場景及背景介紹
本文假設對某大型 SOA 系統進行的性能測試。其中主要的測試場景是案例的申請,保證所有在線用戶同時在線錄入檔案。測試場景包括了創建成員的信息、收入及支出信息和提交救援案例的申請。共有 10 個 web services。
在這個系統中,性能測試需要模擬很多人同時在線的情景,通過性能測試工具能模擬任意多的人同時在線,而且要保證系統性能穩定,不論任何時候都要保證系統的請求和響應時間基本保持穩定,不會隨著數據庫的數據的增加而變慢;谶@些問題,就需要找到一種有效的方式來對系統進行性能測試。
1. 為什么要準備鋪底數據
在上面的場景中,需要一個長時間穩定的環境,那我們就可以增大數據庫里面的數據量,并用一些負載平衡的應用服務器環境。綜上所述,可以在數據庫里面存入鋪底數據,在服務器端搭建集群服務器。
那么如何制作鋪底數據呢?以下的幾段我們將詳細闡述。
1.1 什么是鋪底數據
鋪底數據就是我們在做性能測試之前,在數據庫里面除數據庫字典表外按照業務邏輯存入的大量的數據。這些數據可以視為垃圾數據,因為它們對系統的業務邏輯沒有實際的影響,但對系統的性能卻有著很大的影響。
鋪底數據需要按照實際的情況去生成,要符合實際的生產情況的表的數據比例。譬如:有一張表的數據量和另外一張表的倍數關系是 5:1,那么準備數據的時候不論準備的數據是多少條,也需要保證這兩個表的數據量的倍數是 5:1。
鋪底數據雖然是垃圾數據,但同樣需要遵守數據庫中數據的依賴關系。比如一對一,一對多的關系。
如下是我們在性能測試中準備的數據:
在性能測試之前在 DB2 里面準備的鋪底數據,總量是:10.5 GB。
表 1:在性能測試之前在 DB2 里面準備的鋪底數據
Table Name | Data size(KB) | Data Count |
Interested_party | 3,630,594 | 7,730,000 |
Address | 178,600 | 1,230,000 |
Interested_party_type_association | 760,719 | 7,720,000 |
Household_member | 546,328 | 4,487,000 |
Household | 28,840 | 1,239,000 |
Document | 610,632 | 5,251,000 |
Interested_party_association | 542,390 | 4,958,000 |
Interested_party_address | 99,602 | 1,232,000 |
Contact_phone | 143,581 | 1,232,000 |
Address_contact_phone | 109,356 | 1,232,000 |
Case | 269,039 | 2,479,000 |
Case_document_association | 22,731 | 1,235,000 |
Case_party_association | 537,562 | 4,958,000 |
Evidence | 2,793,073 | 43,295,000 |
evidence_party_association | 796,680 | 43,295,000 |
1.2 有沒有鋪底數據的性能會有很大差異
文章來源于領測軟件測試網 http://www.kjueaiud.com/