Jmeter之TCP取樣器


1.在線程組中添加“TCP取樣器”

 

2.填寫數據

以下截圖是必須配置的

 

TCPClient classname:  填寫TCP報文格式(有三類),默認前綴:org.apache.jmeter.protocol.tcp.sampler.

  • TCPClientImpl:普通文本傳輸,可設置他的編碼格式(eg:json串)
  • BinaryTCPClientImpl:十六進制報文(常用)
  • LengthPrefixedBinaryTCPClientImpl:繼承BinaryTCPClientImpl類,並在BinaryTCPClientlmpl前面增加兩個字節數據長度。

Target Server:填寫正確的IP,和端口

Timeouts:最大連接時間和響應時間,一旦超時就被當做失敗。(一般不設置)

Re-use connectionTCP長連接,一個線程里,復用這個連接(常用)

 

End of line(EOL) byte value響應數據的最后2位,轉換為10進制的值。取值區間[-128,127]

  • 因為TCP長連接是不會斷開的,我們需要從響應數據來判斷並告知TCP取樣器這次請求已經獲得了數據/響應成功,然后運行其他線程
  • 例如:響應數據為“F000”,最后2位是“00”,所以這里填入“0”

  • 如果不知道返回數據,可以調測。因為沒有設置EOL所以在運行后,自行點擊stop。然后在“查看結果樹”的響應數據中查看數據。

  •  

    再如果,這個長連接就是沒有數據返回,那就磨着開發給個返回值,畢竟我就是這樣做的~哈哈。以后發現其他解決方法更新這里

要發送的文本:這個文本需要開發提供

  • 坑1:十六進制數之間不能有空格(報錯:Response message: java.lang.IllegalArgumentException: Hex-encoded binary string contains an uneven no. of digits)
  • 坑2:不能有換行(報錯:Response message: java.lang.IllegalArgumentException: Hex-encoded binary string contains an uneven no. of digits)

 

3.jmeter屬性配置文件修改

依據當前采用的報文格式,修改

#tcp.handler=TCPClientImpl
#tcp.handler=BinaryTCPClientImpl
#tcp.handler=LengthPrefixedBinaryTCPClientImpl

 

 

 4.單線程測試通過后,設置並發量,啟動查看測試結果

 

 


免責聲明!

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



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