datafactory-如何快速生成大批量數據

http://blog.csdn.net/lykangjia/article/details/53837070轉載《IT衝浪者》mysql

上次在個人博客中講述了sql

quest公司的spotlight系列軟件,此次來扯淡一下quest公司的另外一測試輔助軟件 datafactory(數據工廠),顧名思義,數據工廠是生產數據的,主要應用領域是性能測試中的大數據量測試, 也就是性能測試數據準備階段。數據庫

 

原理說明:多線程

經過和數據庫進行鏈接後,對選定表的字段設定必定的插入規則,而後批量插入記錄。Datafactory支持各類主流數據庫(Oracle、DB二、MS SQL),甚至excel、access等。下面以以主流的oracle爲例進行說明。併發

 

環境說明:oracle

Oracle10g,建立2個表,一個是testtable,一個testtable2。計劃用datafactory往testtable中插入記錄,其中須要讀取testtable2中的部分字段信息。testtable表的字段類型以下(字段類型已經儘量覆蓋多種狀況):oop

Testtable表:性能

 

testtable字段類型

 

Testable2字段類型和testtable相似,裏面記錄狀況以下:測試

編號大數據

姓名

性別

出生日期

畢業院校

分數

照片

考覈狀況

1

張三

1

2009-12-21

北京大學

85.5

<BLOB>

<NCLOB>

2

李四

0

2002-7-16

清華大學

78.2

<BLOB>

<NCLOB>

3

王五

1

1999-6-8

湖南大學

65.5

<BLOB>

<NCLOB>

 

 

 

詳細操做描述:

安裝完datafactory以後,進入file菜單下面點擊new,而後選擇oracle數據庫類型。

oracle數據類型

 

而後會要求輸入oracle的net服務,和鏈接的用戶名和密碼。

 

 

 

選擇要插入記錄的表。

 

 

進入設置插入表規則界面,對每一個字段的插入規則在右邊界面進行設置。

 

設定規則,testtable表中編號字段爲long integer類型,這裏設定爲插入順序值(insert sequential values)。

 

設定規則,testtable表中姓名字段爲vachar2類型,這裏設定從testtable2表中查詢結果隨機取值。

 

 

設定規則,testtable表中出生日期爲date類型,這裏設定設定一個隨機的時間,時間跨度爲1982年-1988年的任何一天。

 

 

設定規則,testtable表中分數爲爲number類型,這裏設定設定一個隨機數值,數字跨度爲50-85.5。

 

設定規則,testtable表中考覈狀況爲NCLOB類型,這裏設定隨機從文件夾中的text文件得到內容。

 

設定規則,testtable表中照片爲BLOB類型,這裏設定隨機從文件夾中的得到圖片。

 

設定完畢後,點擊上面的run按鈕,成功執行插入。插入後的效果以下所示:

 

 

 

引起的另一個問題:

      由於datafactory試用版只能每次插入100條數據,購買正版又沒有錢,而大數據量的測試動不動就要100萬級的數據,那要準備100萬條數據但是要點10000次鼠標啊,那樣的話,性能測試尚未開始,人就已經崩潰了。其實,有不少辦法可以解決這個問題。如寫一個多線程的程序,反覆觸發插入事件。固然最簡單的辦法,仍是用HP公司的Loadrunner錄一段插入的腳本,而後設定幾個虛擬用戶(原理上也是多線程插入的方式)進行插入就能夠輕鬆搞定了。

錄製插入腳本,把整個插入操做看成一個事務。

 

設定場景,這裏設定8個虛擬用戶,併發插入,時限爲5分鐘。

 

場景運行狀況,插入事務一共經過了2635個。

 

從上面的事務來看,一共有2635個事務經過,由於試用版每次插入100條數據,則應該插入的總記錄數爲:2635×100=263500條,進入數據庫,執行查詢,能夠發現記錄數正確。

相關文章
相關標籤/搜索