接口壓測工具--jmeter


jmeter

    jmeter是apache公司基於java開發的一款開源壓力測試工具,是一個較輕量的測試工具。運行需要安裝jdk環境,jmeter為免安裝軟件,

        解壓后直接運行jmeter執行腳本即可。它也是跨平台的,支持在windows、linux、macos上使用。

    1 jmeter-http接口腳本基本流程

      添加線程組

      添加http請求

      在http請求中寫入url、路徑、請求方式、參數

      添加查看結果樹

      調用接口、查看返回值

       具體操作見下圖示:

      

      有時還需添加cookie和header,只需在【配置元件】里添加【HTTPCookie管理器】和【HTTP信息頭管理器】即可,其配置如圖示:

      

      cookie的名稱、值依據接口文檔填寫,域需要填寫HTTP請求頁里的【服務器名稱或ip】。

      

      header的名稱、值依據接口文檔填寫。

      添加【查看結果樹】

        【添加】-【監聽器】-【查看結果樹】,具體界面如下圖示:

        

        通過【查看結果樹】可以查看請求數據,也可查看服務器的響應數據,以此來判斷測試結果。

 

    2 jmeter-參數化

      jmeter參數化有三種方式:

        用戶定義的變量

          這種是為了方便管理參數,只能有一個值,比如ip地址。

          在線程組中添加一個用戶定義的變量,然后寫key、value就可以,key是參數名,value是具體值,調用時使用${key},其中key就是變量名稱。

          如下圖中變量名稱是ip:

          

          

        函數生成器

          可參照一定規則生成數據,比如生成隨機數、時間等。

          函數助手可按照規則生成一些參數,常用的參數有隨機數__Random、獲取當前時間__time、唯一值__UUID。

            隨機數__Random,可在指定范圍內取隨機數

            獲取當前時間__time,獲取當前系統時間,具體格式為:yyyy-MM-dd HH:mm:ss

            唯一值__UUID,每次生成一個隨機的uuid,都是唯一值

            

            

            

            

        從文件中讀取

          事先寫好數據,然后從文件中讀取數據,比如登錄接口的賬號、密碼。

          從文件中讀取,需要三個步驟:讀取文件、取文件內容里的參數,賦予一個名字、使用值

          從文件讀取的話,需要在線程組里添加【CSV Data Set Config】,如下圖示:

          

    3 jmeter斷言

      斷言是用來檢查返回接貨對不對的,如果對,就代表請求返回正確;如果沒有的話,就代表請求結果與預期不一致,並以此來作驗證測試是否通過。

      添加方法:【添加】-【斷言】-【響應斷言】,添加后的界面如下圖示:

        

    4 jmeter-關聯

      關聯是獲取到服務器返回的值,保存起來,給別的請求使用,做一些其他處理。

      jmeter關聯是通過正則表達式提取器來完成的添加方式為:

        【添加】-【后置處理器】-【正則表達式提取器】,字段詳解見下圖示:

                 

        通過上面的關聯,其他請求使用時,調用${code}就可以獲取到關聯數據。

        另可通過加載第三方插件來做關聯:jp@gc - JSON Path Extractor

         【添加】-【后置處理器】-【正則表達式提取器】,字段詳解見下圖示:

        

        此種關聯方式適用於響應數據為json串的方式,操作上更簡單一點。

 

    5 jmeter-mysql操作

      要操作mysql需要引入第三方jar包,因為jmeter本身不能直接連接mysql,操作mysql需要如下步驟:

        在測試計划里導入jdbc的jar包

        創建數據庫連接配置(mysql的url、端口號、賬號、密碼等)

        寫sql語句,執行sql

        查看結果

        具體操作見下圖示:

         【測試計划】-【Add directory or jar to classpath】下導入jdbc的jar包

        

        【添加】-【配置元件】-【JDBC  Connection Configuration】

        

        配置mysql連接池名稱,要與后面sql請求的【Variable Name】一致

        數據庫的url:

          jdbc:mysql://192.168.1.116:3307/bugfree?allowMultiQueries=true

        數據庫驅動:

          指定數據庫類型是mysql、orcle、sqlserver等,驅動列表如下:

          

        賬號密碼:

          所連接數據庫的賬號、密碼。

    6 測試結果查看

      【添加】-【監聽器】-【聚合報告】,具體參數解釋見下圖示:

      

      查看結果需關注的幾個指標:

        tps,每秒處理的請求數,tps越高說明服務器處理能力越好

        響應時間,每個請求的處理時間

        並發用戶數,即並發量

    7 jmeter-linux下運行

      linux下運行jmeter是在jmeter的bin目錄下執行jmeter.sh腳本,命令如下:

      sh jmeter.sh -n –t a.jmx -l res.jtl

        -n  代表以沒有圖形化界面啟動

        -t   代表后面是測試腳本

        a.jmx  就是做好的測試腳本

        -l    代表后面是測試結果

        res.jtl  就是測試結果文件

      若要在查看結果樹中查看測試結果,只需在【查看結果樹】視圖中導入這個res.jtl文件即可。

    8 jmeter 添加負載機

      壓測過程中,當並發較大,一台機器已經啟動不了那么多並發時,需要添加負載機。

      首先在做壓力機的機器上啟動jmeter的代理:

        jmeter的bin目錄下有一個jmeter-server,啟動它即可,此文件就是jmeter代理。

      然后在控制機上添加壓力機ip:

        jmeter的bin目錄下有一個jmeter.properties,打開后找到remote_hosts模塊,添加ip后重新啟動jmeter,就可以在jmeter里看到壓力機了。

        

 

 

 

        

        

        

 


免責聲明!

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



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