Jmeter4.0之TCP 壓測


前提:IP、端口號、入參、響應數據  開發都提供好。

一.步驟

1.新建線程組,並add -->Sampler-->TCP Sample

 

2.在TCP取樣器中,設置TCP請求的參數,主要設置的參數為:

(1)TCPClient classname:org.apache.jmeter.protocol.tcp.sampler.TCPClientImpl

  TCPClient classname 該參數一般有三個值設置:

  • org.apache.jmeter.protocol.tcp.sampler.TCPClientImpl(以文本編輯器中的純文本作為內容發送)
  • org.apache.jmeter.protocol.tcp.sampler.BinaryTCPClientImpl(以文本編輯器中所編輯的16進制字符(hex)內容為基礎轉換為二進制的字節內容進行發送)(常用)
  • org.apache.jmeter.protocol.tcp.sampler.LengthPrefixedBinaryTCPClientImpl(在BinaryTCPClientImpl基礎上默認以發送內容的長度以字節前綴進行填充)

(2)服務器IP和端口號:輸入自定義的-開發提供,如下圖  

(3)Text to send:待發送的數據報文 -開發提供,如下圖中要發送的文本(16進制)

 

 

3.下載第三方的TCP插件包ApacheJMeter_tcp.jar,並放置在jmeter\apache-jmeter-4.0\lib\ext目錄下

4.修改jmeter.properties 配置文件(路徑apache-jmeter-4.0\bin下)

  搜索tcp 搜索到#tcp.handler=TCPClientImpl  是被注釋掉的 在下面新增一行,如下:

        tcp.handler=BinaryTCPClientImpl   保存文件,並重啟Jmeter

5.最最重要的一點  End of line(EOL) byte value  值的設置

因為響應數據是以05結尾的(16進制), 需要將其轉換為10進制,所以此處的值應該設置為5

 

  

 以下重要概念來源請看這里    https://www.cnblogs.com/bf-blackfish/p/10579867.html  (寫的很詳細,解決了我的問題!!!)

 

 

 6.單線程接口運行成功

 

二.遇到的坑:

1.text  to send   輸入的16進制  不能換行 換行會報錯Response message: java.lang.IllegalArgumentException: Hex-encoded binary string contains an uneven no. of digits

  解決辦法:刪除掉多余的空行

2.End of line(EOL) byte value  該值不設置或者設置的不對  報500  jmeter.protocol.tcp.sampler.TCPSampler: org.apache.jmeter.protocol.tcp.sampler.ReadException:而且服務器一直沒給返回,

  解決辦法:文本結束符,非常重要 End of line(EOL) byte value:響應數據的最后2位,轉換為10進制的值。取值區間[-128,127]

3.要想每一個tcp請求結束后關閉掉鏈接,不然服務器上會顯示多個鏈接,一直沒釋放

   解決辦法:勾選close connection:一個取樣器就只會用一個tcp連接,也就是發送完報文以后,就關閉tcp連接。

4.建議設置超時時間和長連接(沒用到  可以關注下)

       Timeouts:設置請求和響應的超時時間,超時的話會報500錯誤。它決定了在你沒有輸入End of line 的時候,什么時候斷開tcp連接。如果沒有填寫的話就會一直在這里,

  Re-use connection:在一個線程里,復用一個連接,在要求TCP長連接的時候需要用到這個。

5.Test Action(試了下   沒仔細研究)

  在jmeter使用過程中,接口之間相關關聯,而有些接口響應時間較長,導致下個接口執行時,可能未能獲取到需要的信息。這個時候需要對上個接口做延時處理,就用到Test Action。

6.響應斷言

  勾選Main sample only   、響應文本 要測試的模式中,輸入 響應數據

  

 


免責聲明!

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



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