6. 創(chuàng)建一個數(shù)據(jù)庫測試計劃(Building a Database Test Plan)
在本節(jié)中,您將學習如何創(chuàng)建一個測試數(shù)據(jù)庫服務器的基本測試計劃异旧。您將創(chuàng)建50個向數(shù)據(jù)庫服務器發(fā)送2個SQL請求的用戶。同時宣吱,您將告訴用戶運行他們的測試100次蓉冈。因此,請求的總數(shù)是(50個用戶)x(2個請求)x(重復100次)= 10,000個JDBC請求钧唐。要構(gòu)造測試計劃忙灼,您將使用以下元素:線程組(參考文章JMeter--測試計劃的要素3.1節(jié))、JDBC請求、摘要報告该园。
本例使用MySQL數(shù)據(jù)庫驅(qū)動程序酸舍。要使用這個驅(qū)動程序,必須將其包含.jar文件(比如 mysql-connector-java- x.x . x. x-bin.jar)復制到JMeter ./lib目錄(更多細節(jié)請參見JMeter's Classpath)里初。
?
6.1 添加用戶(Adding Users)
對每個JMeter測試計劃要做的第一步是添加一個線程組元素啃勉。線程組告訴JMeter要模擬的用戶數(shù)量、用戶應該發(fā)送請求的頻率以及他們應該發(fā)送多少請求双妨。
繼續(xù)添加ThreadGroup元素首先選擇測試計劃(Test Plan),點擊你的鼠標右鍵添加(add)菜單,然后選擇 添加→線程組(ThreadGroup)淮阐。
您現(xiàn)在應該看到在測試計劃下的Thread Group元素。如果您沒有看到該元素刁品,那么單擊Test Plan元素的小箭頭“展開”測試計劃樹泣特。
接下來,需要修改默認屬性挑随。選擇樹中的Thread Group元素状您,如果您還沒有選擇它。您現(xiàn)在應該可以在JMeter窗口的右邊看到Thread Group控制面板(參見下面的圖6.1)镀裤。
首先為我們的線程組提供一個更具描述性的名稱竞阐。在name(名稱)字段中,輸入JDBC用戶名(即該測試計劃的名稱)暑劝。
您將需要一個有效的數(shù)據(jù)庫骆莹、數(shù)據(jù)庫表和對該表的用戶級訪問。在這里顯示的示例中担猛,數(shù)據(jù)庫是“cloud”幕垦,表名是“vm_instance”。
編者注:數(shù)據(jù)庫是由一個個表(table)組成傅联。
接下來先改,將用戶數(shù)量增加到50個。
在下一個字段中蒸走,過渡周期(Ramp-Up Period)仇奶,設置值為10秒。此屬性告訴JMeter在啟動每個用戶之間要延遲多長時間比驻。例如该溯,如果您輸入10秒的過渡周期,JMeter將在10秒結(jié)束前啟動所有用戶别惦。因此狈茉,如果我們有50個用戶和10秒的加速周期,那么啟動用戶之間的延遲將為200毫秒(10秒/ 50個用戶= 0.2個用戶/秒)掸掸。如果將值設置為0氯庆,則JMeter將立即啟動所有用戶蹭秋。
最后,在循環(huán)次數(shù)(Loop Count)字段中輸入100的值堤撵。這個屬性告訴JMeter重復測試多少次仁讨。要讓JMeter重復運行您的測試計劃,請選擇“永遠(Forever)”復選框粒督。
在大多數(shù)應用程序中陪竿,您必須手動接受在控制面板中進行的更改。然而屠橄,在JMeter中族跛,控件面板在您進行更改時自動接受您的更改。如果您更改了一個元素的名稱锐墙,那么在離開控制面板(例如礁哄,在選擇另一個樹元素時)之后,樹將使用新的文本進行更新溪北。
完整的JDBC用戶線程組請參見圖6.2桐绒。
?
6.2 添加JDBC請求 (Adding JDBC Requests)
既然我們已經(jīng)定義了用戶,現(xiàn)在是時候定義他們將要執(zhí)行的任務了之拨。在本節(jié)中茉继,您將指定要執(zhí)行的JDBC請求。
首先選擇JDBC用戶元素蚀乔。點擊你的鼠標右鍵添加菜單,然后選擇添加→配置元件→JDBC Connection Configuration
烁竭。然后,選擇這個新元素以查看它的控制面板(參見圖6.3)吉挣。
設置以下字段(假設我們將使用一個名為“cloud”的MySQL數(shù)據(jù)庫):
- 綁定到池的變量名(Variable name)(比如:myDatabase)派撕。這需要惟一地標識配置。JDBC采樣器使用它來識別要使用的配置睬魂。
- mysql數(shù)據(jù)庫URL(Database URL):jdbc:mysql://ipOfTheServer:3306/cloud
- JDBC Driver class:com.mysql.jdbc.Driver
- 用戶名(Username):數(shù)據(jù)庫的用戶名
- 密碼(Password):用戶名的密碼
屏幕上的其他字段可以保留為默認值终吼。
JMeter使用控制面板中指定的配置設置創(chuàng)建一個數(shù)據(jù)庫連接池。在“Variable Name”字段中的JDBC請求中引用該池氯哮〖使颍可以使用幾個不同的JDBC配置元素,但它們必須具有唯一的名稱喉钢。每個JDBC請求都必須引用JDBC配置池姆打。多個JDBC請求可以引用同一個池。
再次選擇JDBC Users元素出牧。點擊你的鼠標右鍵添加菜單,然后選擇添加→ Sampler →JDBC Request穴肘。然后歇盼,選擇這個新元素以查看它的控制面板(參見圖6.4)舔痕。
在我們的測試計劃中,我們將發(fā)出兩個JDBC請求。第一個用于選擇所有“運行”的VM實例伯复,第二個用于選擇“清除”VM實例(顯然,您應該將這些實例更改為適合您的特定數(shù)據(jù)庫的示例)啸如。這是所示侍匙。
JMeter按將請求添加到樹中的順序發(fā)送請求叮雳。
首先編輯以下屬性(參見圖6.5):
- 將名稱更改為“VM Running”。
- 輸入池名稱:“myDatabase”(與configuration元素中的名稱相同)
- 輸入SQL查詢字符串字段帘不。
- 輸入帶有“Running”值的參數(shù)值字段。
- 輸入帶有'VARCHAR'的參數(shù)類型寞焙。
接下來储狭,添加第二個請求JDBC并編輯以下屬性(參見圖6.6):
- 將名稱改為“VM Expunging”。
- 將參數(shù)值的值更改為“Expunging”捣郊。
?
6.3 添加一個監(jiān)聽器來查看/存儲測試結(jié)果(Adding a Listener to View/Store the Test Results)
您需要添加到測試計劃中的最后一個元素是監(jiān)聽器辽狈。這個元素負責將JDBC請求的所有結(jié)果存儲在一個文件中并顯示結(jié)果。
用戶選擇JDBC元素和添加一個總結(jié)報告監(jiān)聽器(添加 →監(jiān)聽器→Summary Report)呛牲。
最后刮萌,保存測試計劃,并運行測試計劃。
監(jiān)聽器顯示結(jié)果侈净。
本篇文章的原文出處尊勿。