程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 以MySQL為例介紹數據庫測試工具dbmonster的使用

以MySQL為例介紹數據庫測試工具dbmonster的使用

編輯:MySQL綜合教程

數據庫測試工具dbmonster可以用來測試數據庫的性能,本文以MySQL數據庫為例,測試一下它的INT型主鍵、外鍵以及varchar型數據的生成,接下來我們就開始介紹這一過程。

前期准備:

准備使用MySQL用來做測試,如果你還沒有安裝mysql請先安裝,然後下載mysql jdbc驅動,解壓後將mysql-connector-java-5.1.17-bin.jar 文件拷貝到dbmonster-core-1.0.3\lib目錄下。

創建數據庫test,新建表parent,child

  1. CREATE DATABASE test;  
  2.  
  3. CREATE TABLE parent   
  4.  
  5. (  
  6.  
  7. id INT NOT NULL,  
  8.  
  9.         PRIMARY KEY (id)  
  10.  
  11. ) ENGINE=INNODB;  
  12.  
  13. CREATE TABLE child   
  14.  
  15. (  
  16.  
  17. id INT, parent_id INT,  
  18.  
  19. childname VARCHAR(20) DEFAULT NULL,  
  20.  
  21.         INDEX par_ind (parent_id),  
  22.  
  23.         PRIMARY KEY (id),  
  24.  
  25.         FOREIGN KEY (parent_id) REFERENCES parent(id)  
  26.  
  27.         ON DELETE CASCADE  
  28.  
  29. ) ENGINE=INNODB; 

修改配置文件dbmonster.properties:

以MySQL為例介紹數據庫測試工具dbmonster的使用

  1. dbmonster.jdbc.driver=com.mysql.jdbc.Driver  
  2.  
  3. dbmonster.jdbc.url=jdbc:mysql://192.168.159.144:3306?dbmonster?charSet=iso-8859-2  
  4.  
  5. dbmonster.jdbc.username=root 
  6.  
  7. dbmonster.jdbc.password=123456 
  8.  
  9. dbmonster.jdbc.transaction.size=50 
  10.  
  11. # for Oracle and other schema enabled databases  
  12.  
  13. dbmonster.jdbc.schema=test 
  14.  
  15. # maximal number of (re)tries  
  16.  
  17. dbmonster.max-tries=1000 
  18.  
  19. # default rows number for SchemaGrabber  
  20.  
  21. dbmonster.rows=1000 
  22.  
  23. # progres monitor class  
  24.  
  25. dbmonster.progress.monitor=pl.kernelpanic.dbmonster.ProgressMonitorAdapter 

DBMonster的schema文件

schema 文件描述了產生數據的規則,在DBMonster中,數據的產生是通過Generator生成的,DBMonster中缺省的數據 Generator包括兩個Key Generator用於產生不重復的數據,分別為MaxKeyGenerator和StringKeyGenerator)和 10 個Data Generator。以下簡單說明一下Data Generator的使用。

BinaryGenerator用於從外部文件中獲取二進制數據並插入相應字段,該Generator有兩個屬性,分別為file和nulls,file屬性描述數據來源,而nulls屬性則給出該字段生成null的幾率。

BooleanGenerator用於產生bool型數據,該Generator包括兩個屬性,分別為probability和nulls,probability屬性描述產生true值數據的幾率,nulls屬性給出生成null的幾率。

ConstantGenerator用於產生固定值的數據,該Generator只有一個屬性constant,給出要插入數據庫的值;

DateTimeGenerator 用於產生DateTime型數據,該Generator包括四個屬性,分別是startDate,endDate,returnedType和 nulls, startDate描述開始時間,endDate描述終止時間,格式為“yyyy-mm-dd hh24:MM:ss”;returnedType描述生成數據的類型,可以為date、time或是timestamp;

DirectoryGenerator 用於根據本地文件字典)的條目向數據庫插入數據,該Generator包括兩個屬性,分別為dictFile和unique,dictFile指明字典 文件所在的位置,unique指明產生的數據是unique的還是random的;

ForeignKeyGenerator用於為設置了外鍵的字段生成數據,該Generator包含兩個屬性,分別是tableName和columnName,tableName指明外鍵引用的表名,columnName指明外鍵引用的字段名;

NullGenerator用於產生null類型的數據,該Generator不帶任何參數只產生null);

NumberGenerator 用戶產生數值類型的數據,該Generator包括5個屬性,分別是minValue、maxValue、returnedType、scale和 nulls。其中,minValue和maxValue分別給出產生值的下邊界和上邊界;returnedType給出生成數據的類型,可以是 short、integer、long、float、double和numeric類型;scale指明小數位數;nulls表示產生null的幾率;

StringGenerator 用於產生字符串類型的數據,該Generator包括5個屬性,分別是minLength、maxLength、allowSpaces、 excludeChars和nulls。其中,minLength和maxLength限定了字符串長度;allowSpaces控制字符串中是否包含空 格;excludeChars排除產生字符串時不使用的字符;nulls表示產生null的幾率;

修改dbmonster.properties文件:

以MySQL為例介紹數據庫測試工具dbmonster的使用

注意:

ForeignKeyGenerator中tableName,columnName指的是主表的表名和字段名。

現在就可以使用dbmonster來創建隨機數據了。命令如下:dbmonster.bat -c dbmonster.proprities -s dbmonster-schema.xml  

執行成功截圖:

以MySQL為例介紹數據庫測試工具dbmonster的使用

child表部分數據截圖:

以MySQL為例介紹數據庫測試工具dbmonster的使用

關於數據庫測試工具dbmonster的使用就介紹到這裡了,希望本次的介紹能夠對您有所收獲!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved