用jmeter進行多用戶並發壓力測試 [轉]


近日manager要求對項目進行壓力測試,開始對jmeter進行了研究。jmeter是Apache一個開源項目,可對各種項目進行測試,甚至包括junit。

     測試要求如下,多用戶同時登陸web應用程序,並進行操作,查看在多用戶操作下,程序的performence。恰好,jemter下有個CSV Data Set Config,它用來設定一組參數,以便在向程序發出請求時,傳入參數。在進行壓力測試以前,應先將操作過程記錄下來。jmeter有個http prox serve,用它可以進行記錄。但有個更好的軟件,即badboy,如下圖,

 

badboy記錄操作過程

只要輸入請求地址,便可將所有的操用步驟記錄下來,導出jmeter的script,jmeter導入這個sccript就是一個工程了,可以在里面對其進行修改參數和添加新的斷言,監聽器等。多用戶的參數文件就在這里設。

 csv

右鍵單擊選擇配置器,一一輸入參數文件地址(便jmeter能找到的路徑),變量名稱(參數引用時就是引用這個變量,用${變量名}進行引用,),參數分隔符(在參數文件中,參數以一行為一組參數,其間可用;,

等隔開,如是tab,用/t),recycle on EOF(文件結束后是否要循環),stop thread on EOF(文件結束是否中止線程)。一般來講,如有n組參數,線程數就設為n,如下圖,

 

可在操作中添加一些斷言,看參數是否用上了,比如一個登陸界面,傳入用戶名和密碼,這個請求完成后,可對response頁面內容進行斷言。

 

 

在使用Jemeter做壓力測試的時候,往往需要參數化用戶名,密碼以到達到多用戶使用不同的用戶名密碼登錄的目的.這個時候我們就可以使用CSV Data Set Config實現參數化登錄:

首先通過Test Plan或者Thread Group的Add->Config Element->CSV Data Set Config添加



 以下是CSV Data Set Config各個參數的簡要說明:

  • FileName:即同目錄下csv文件的名稱
  • File Encoding: 默認為ANSI
  • Varible Names: 定義文本文件中的參數名,參數之間逗號分隔.定義后可在腳本在以Shell變量的同樣的方式引用
  • Allow Quoated data: 雙引號相關
  • Recycle on EOF: 設置為True后,允許循環取值
  • Stop Thread on EOF: 當Recycle on EOF為false並且Stop Thread on EOF為true,則讀完csv文件中的記錄后,停止運行
  • Sharing Mode: 設置是否線程共享

設置2個線程去運行,結果如下:



成功讀取CSV中的參數.

最后,我們需知Jmeter還有如下方式可以進行參數化:

    • User Defined Varibles: 一般對不需要改變的參數進行
    • User Parameters:
    • 通過系統函數: Options->Function Helper Dialog,通過自己輸入參數值,點擊"Generate" 按鈕產生


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM