7.創建一個數據庫測試計劃

7.創建一個數據庫測試計劃

在這一部分,你將學會如何去創建一個基礎的測試計劃來測試一個數據庫服務器。你會創建10個用戶來給數據庫服務器發送2次SQL請求。同樣,你也可以讓用戶運行他們的測試三次。這樣總的JDBC請求數量就是(10用戶)*(2次請求)*(重複3次)=60。要構建這個測試計劃,你將會用到下面的元件:線程組,JDBC請求,圖形結果。

這個例子使用了MySQL數據庫驅動。要使用這個驅動,它所包涵的.jar文件必須複製到../lib/directory下(詳情參見JMeter's ClassPath)。另外我們期望在運行這個測試計劃的時候有的堆棧跟蹤數量。

7.1 添加用戶

處理每個JMeter測試計劃的第一步就是添加 線程組元件。這個線程組會告訴JMeter你想要模擬的用戶數量,用戶應該發送請求的頻率和應該發送的數量。下一步來添加一個線程組:首先選擇這個測試計劃,用鼠標右鍵點擊然後在得到的菜單中選擇添加--> 線程組。這時你應該看到這個線程組已經在測試計劃下面了,如果沒有看到,就點擊測試計劃元件展開這個測試計劃樹。

下一步,你需要修改這些默認的屬性。如果你還沒有選擇線程組元件,則從測試計劃樹型結構中選擇它。這時你應該看到JMeter窗口右邊的線程組控制面板了(見圖7.1)。

首先給這個線程組起一個有意義的名字。在名稱域中, 輸入JDBC Users

你將需要一個可用的數據庫,數據庫表,和表的用戶使用權限。在這個例子中,數據庫是'mydb',表名是'Stocks'。

接下來,將用戶的數量(即threads)增加不10。在下一個the Ramp-Up Period文本域中 , 使用默認值爲0。這個屬性表示每個用戶啓動的遲延時間。例如,如果你輸入Ramp-Up Period 爲5秒,JMeter將會在五秒結束前完成 啓動所有的用戶。所以,如果你有五個用戶並且Ramp-Up Period爲五秒,那麼開始用戶的延遲就是1秒。(5個用戶 / 5秒 = 1 用戶每秒). JMeter將會立即啓動你所有的用戶,如果你設置其值爲0。

最後,取消標記爲"永遠"的複選框選擇並設置循環次數爲2。 這個屬性表示你的測試的重複次數。如果你設置爲1,JMeter將你的測試只運行一次。 要讓JMeter不斷的運行,你要選擇"永遠"這個複選框。

在大多數的應用程序中,你需要手動來接受你在控制面板中所做的修改。但在JMeter中,如果你做了修改,控制面板可以自動的接受。如果你修改的元件的名字,樹型菜單自動更新當你離開控制面板後。 (例如, 當你選擇另外一個樹元件。)

圖 7.2 爲完整的JDBC Users線程組。

7.2 添加JDBC請求

我們已經定義了用戶,現在要定義他們的行爲了。在這一部分,我們將會詳細說明JDBC請求。

首先選擇JDBC用戶元件,右鍵點擊,在彈出的菜單中選擇Add --> Config Element --> JDBC Connection Configuration。然後,選擇這個新的元件來顯示它的控制面板(見圖7.3)。

設定下面的文本域的值(我們這裏假定用一個本地的MySQL數據庫名爲test)。

  • Variable name bound to pool. 這需要能夠唯一標識這個配置。
  • Database URL: jdbc: mysql://localhost:3306/test
  • JDBC Driver class: com.mysql.jdbc.Driver
  • Username: guest
  • Password: password for guest

剩下的文本域我們可以保留默認的值。

Figure 7.3. JDBC Configuration

再次選擇JDBC用戶元件。右鍵點擊,並在彈出的菜單中選擇Add --> Sampler --> JDBC Request。然後,選擇一個新的元件來顯示其控制面板(見圖7.4)。

Figure 7.4. JDBC Request

在我們這個測試計劃中,我們將發送2個JDBC請求。第一個是向Eastman Kodak stock,第二個是向Pfizer stock(很顯然需要改變這些例子來適合你的特殊的數據庫)。下面的插圖文字說明。

JMeter發送請求的次序就是你向樹中添加它們的次序。

首先修改下面的屬性值勤(見圖7.5):

  • 修改名字Name爲"Kodak"
  • 輸入Pool Name:MySQL(在配置元件裏面一樣)
  • 輸入SQL Query String(數據庫查訊字符串)

Figure 7.5. JDBC Request for Eastman Kodak stock

然後,添加第二個JDBC請求並編輯正面的屬性(見圖7.6):

  • 修改名字Name爲"Pfizer"
  • 輸入SQL Query 語句

Figure 7.6. JDBC Request for Pfizer stock

7.4添加一個監聽器瀏覽/保存測試結果

你需要添加到你測試計劃的最後元件是一個監聽器。這個元件責任是儲存所有你的JDBC請求結果到文件,並且展示一個可視數據模型。

選擇JDBC Users元件,添加一個Graph Results監聽器(Add --> Listener --> Graph Results)。

Figure 7.7. Graph results Listener

7.5保存測試計劃

雖然它不是需要的,但是我們推薦你在運行前保存測試計劃到一個文件。爲了保存測試計劃,從File菜單選擇Save Test Plan(使用最新版本,它不再需要首先選擇測試計劃元件)。

JMeter允許你保存這個測試計劃樹或者其中一部分。爲了僅保存在測試計劃樹上的特殊"分支",選擇在樹中用來啓動"分支"的測試計劃元件,然後右擊在菜單項中選擇"Save"。或者,選擇合適測試計劃元件,然後從Edit菜單選擇Save。

7.6 運行測試計劃

從Run菜單,選擇Run。

如果你測試正在運行,JMeter在右手上方的角落點燃一個綠正方形顯示。當所有測試停止,那個方塊變成灰色。即使你選擇了"stop",綠光依然會繼續停留,知道所有測試都已經停止。

7.7 JDBC設置

不同的數據庫和JDBC驅動程序需要不同的JDBC設置。JDBC執行的提供者來定義數據庫URL和數據庫驅動程序類。

下面是一些可能的設置。要得到詳細的說明請看JDBC驅動程序文檔。

Datebase Driver class Database URL
MySQL com.mysql.jdbc.Driver jdbc:mysql://host:port/{dbname}
PostgreSQL org.postgresql.Driver jdbc:postgresql:{dbname}
Oracle oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:user/pass@//host:port/service
Ingres (2006) ingres.jdbc.IngresDriver jdbc:ingres://host:port/db[;attr=value]
上面的可能不正確,請查看相應的JDBC驅動程序文檔。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章