1. 程式人生 > >Badboy自動化測試工具 匯出指令碼用於JMeter效能測試

Badboy自動化測試工具 匯出指令碼用於JMeter效能測試

本節使用在拉手搜尋KTV團購的案例,講述Badboy匯出指令碼用於JMeter效能測試,以及JMeter的簡單使用。

一 錄製指令碼(必須在Request模式下)

2. 點選前進->,啟動錄製

3. 輸入KTV,點選搜尋

4. 點選Record,錄製結束

image

5.回放指令碼,以確定指令碼錄製無誤

6.點選File—》Export to JMeter

image

7. 指令碼命名為“Lashou_Search”.jmx, 點選Save,指令碼匯出成功。

image

Badboy與jmeter使用注意事項:

1 匯出jmeter指令碼的時候,指令碼不被匯出,因為jmeter無內嵌瀏覽器,jscrīpt元素無法執行.

2 data sources不被匯出.

二 JMeter簡介

  • JMeter,一個100%的純Java桌面應用,它是Apache組織的開放原始碼專案,它是功能和效能測試的工具。JMeter可以用於測試靜態或者動態資源的效能(檔案、Servlets、Perl指令碼、Java物件、資料庫和查詢、ftp伺服器或者其他資源)。原先Jmemer是為Web/HTTP測試而設計的,但是它已經擴充套件以支援各種各樣的測試模組。它和用於HTTP和SQL資料庫(使用JDBC)的模組一起運送。它可以用來測試靜止資料庫或者活動資料庫中的伺服器的執行情況,可以用來模擬對伺服器或者網路系統加以重負荷以測試它的抵抗力,或者用來分析不同負荷型別下的所有執行情況。它也提供了一個可替換的介面用來定製資料顯示,測試同步及測試的建立和執行。
  • JMeter 的特性:
    a) 能夠對HTTP和FTP伺服器進行壓力和效能測試,也可以對任何資料庫進行同樣的測試(通過JDBC)。
    b) 完全的可移植性和100%純Java。
    c) 完全 Swing 和輕量元件支援(預編譯的JAR使用 javax.swing.*)包。
    d) 完全多執行緒框架允許通過多個執行緒併發取樣和 通過單獨的執行緒組對不同的功能同時取樣。
    e) 精心的GUI設計允許快速操作和更精確的計時。
    f) 快取和離線分析/回放測試結果。
    g) 高可擴充套件性:
    h) 可連結的取樣器允許無限制的測試能力。
    i) 各種負載統計表和可連結的計時器可供選擇。
    j) 資料分析和視覺化外掛提供了很好的可擴充套件性以及以及個性化。
    k) 具有提供動態輸入到測試的功能(包括Javascrīpt)。
    l) 支援指令碼變成的取樣器(在1.9.2及以上版本支援BeanShell)。

    如果你想執行JDBC測試,你當然需要從廠商得到適當的JDBC驅動。JMeter沒有提供任何JDBC驅動。其它你可能需要下載的軟體:

      · BeanShell

      · Java Activation Framework - JavaMail需要

      · Java Mail - mail 顯示 and SOAP 測試需要

      · JMS - JMS 取樣器

      · General Java download page

imageimage

  • JMeter啟動

      2. 解壓縮到D盤下,點選bin下的Jmeter.bat

image

     3. 介面開啟成功

image

  4. 為方便對介面的熟悉度,可以將語言改為中文

image

三. 執行Lashou_Search指令碼測試效能

1. 開啟JMeter會有一個預設的測試計劃,點選檔案-開啟,選中錄製的指令碼檔案如:Lashou_Search.jmx,

image

2. 命名測試計劃為Lashou,同時可以自定義描述,

3. 重新命名執行緒組為Search,點選儲存

image

4. 給Search執行緒組上新增監聽器-聚合報告(用於分析測試結果)

image

5. 命名為“Search_Aggregate report”,點選儲存

image

6.點選執行-啟動或工具欄上的啟動按鈕,開始測試

7. 測試結果展示在聚合報告中

image

  • Label:每個 JMeter 的 element (例如 HTTP Request )都有一個 Name 屬性,這裡顯示的就是 Name 屬性的值
  • #Samples:表示你這次測試中一共發出了多少個請求,如果測試計劃模擬10個使用者,每個使用者迭代10次,這裡就會顯示100
  • Average:平均響應時間 — 預設情況下是單個 Request 的平均響應時間,當使用了事務控制器時,也可以以事務為單位顯示平均響應時間。也就是說當一個request響應傳送到服務端時伺服器響應請求的時間是多少,然後將所有的時間平均的相應時間就是Average。
  • Median:中位數,也就是 50 %使用者的響應時間
  • 90% Line: 90 %使用者的響應時間
  • Min:最小響應時間
  • Max:最大響應時間
  • Error%:錯誤率,本次測試中出現錯誤的請求的數量 / 請求的總數
  • Throughput:吞吐量 —— 預設情況下表示每秒完成的請求數( Request per Second )
  • KB/Sec:每秒從伺服器端接收到的資料量,請求從客戶端發出給伺服器端之後,伺服器會返回給客戶端經過處理的結果,這個資料量返回/時間,就是每秒從伺服器端接收到的資料量。

1. 在Jmeter中開啟上節課(10)Badboy匯出的在拉手網查詢KTV的指令碼Lashou_Search.jmx.

image

2. 右擊Lashou節點,Add->Listener->Aggregate Graph & Graph Results

image

3. 對影象報表進行配置(配置省略)

image

4. 點選Search節點,執行緒組配置介面展開:

5. 線上程組裡設定負載資訊,即執行緒屬性,選中Start next thread loop , 執行緒數: 10 , Ramp-up period(inseconds): 0, 迴圈次數: 1

image

說明1. :向測試計劃中增加相關負載設定是Jmeter需要模擬十個請求者,每個請求者在測試過程中併發請求,並且連續請求2次。

      執行緒數代表傳送請求的使用者數目,Ramp-up period(inseconds)代表每個請求發生的總時間間隔,單位是秒。假如我的請求數目是5,而這個引數是10,那麼每個請求之間的間隔就是 10/5,也就是2秒。如果設定為0就代表併發請求。Loop Count代表請求發生的重複次數,如果選擇後面的forever(預設),那麼請求將一直繼續,如果不選擇forever,而在輸入框中輸入數字,那麼請求將重複指定的次數。

  說明2:排程器配置

            啟動時間:測試計劃什麼時候啟動,啟動延遲會覆蓋它。

            結束時間:測試計劃什麼時候結束,持續時間會覆蓋它。

            持續時間:測試計劃持續多長時間,會覆蓋結束時間。

            啟動延遲:測試計劃延遲多長時間啟動,會覆蓋啟動時間。

6. 點選Aggregate Graph, 點選執行後觀察執行結果

image

7. 觀察並行測試的結果

image

image

8. 再次執行一次10人查詢併發測試,我們可以觀察到Result介面下記錄了所有執行的報告趨勢,我們可以指定一個檔案路徑和輸出檔名,儲存這個報告,程式碼優化或效能改進後,我們再次呼叫此報告,對比改進效果。

image