Jmeter之TCP取樣器

1.在線程組中添加「TCP取樣器」java

 

2.填寫數據git

如下截圖是必須配置的apache

 

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

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

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

Timeouts:最大鏈接時間和響應時間,一旦超時就被當作失敗。(通常不設置)tcp

Re-use connectionTCP長鏈接,一個線程裏,複用這個鏈接(經常使用)測試

 

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

  • 由於TCP長鏈接是不會斷開的,咱們須要從響應數據來判斷並告知TCP取樣器此次請求已經得到了數據/響應成功,而後運行其餘線程
  • 例如:響應數據爲「F000」,最後2位是「00」,因此這裏填入「0」spa

  • 若是不知道返回數據,能夠調測。由於沒有設置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.單線程測試經過後,設置併發量,啓動查看測試結果

 

相關文章
相關標籤/搜索