先介紹一下tcp取樣器的界面
名稱,注釋:
顧名思義就不講了。。
TCPClient classname:
這是重點,這代表了你發出去的TCP報文是什么格式的,Jmeter自己提供的是實現了三類:
TCPClientImpl:
這是最簡單的實現類,就是基礎的文本,可以設置他的編碼格式。一般用來發xml格式。
BinaryTCPClientImpl:
這是我要重點說的,這個是用來發送十六進制報文的時候,在classname里設置成BinaryTCPClientlmpl,他能將十六進制報文轉換成二進制,然后讀取響應的時候又反過來。
LengthPrefixedBinaryTCPClientImpl:
這個類是實現了BinaryTCPClientImpl類,所以繼承了所有功能,它在BinaryTCPClientlmpl前面增加兩個字節數據長度。
服務器名稱或ip,端口號:
這個也是顧名思義,就是填你要發送報文的地址,相當於你發快遞填的收貨人。
超時:連接,響應:
這個挺重要的,它決定了在你沒有輸入End of line 的時候,什么時候斷開tcp連接。
##超時會報500錯誤,如果你沒有設置End of line的話,會在讀取流的時候無限阻塞,直到超時,報500錯誤
因此第二步的行尾EOL必須填寫,很重要,否則會報500!!!
那么如何獲取這個值,有兩種方法:
1.用wireshark抓包,返回的最后兩位16進制數,轉為10進制填入
2.手動暫停Jemter請求,雖然報了500,但返回結果里已經有值了,把文本格式轉為16進制,取最后兩位轉為10進制即可
下面是demo
第一步:jmeter取樣器中添加tcp取樣器
第二步:填寫取樣器信息
第三步:添加監聽器,以查看運行結果