這裏只描述簡單的tcp測試建立步驟,因為目前支持的測試類型很多,無法壹壹陳述,功能細節部分可以參考JMeter文檔
1)創建測試線程組
2)根據需要設定線程組參數
3)建立TCP采樣
3)配置TCP采樣參數
基本上壹個簡單的測試計劃就完成了,點擊運行采樣,就會將文本發送出去。
2.高級功能配置
1)配置結果查看監聽器
有時候需要查看線程組執行結果情況,這個可以通過設定采樣結果查看
針對上面配置的線程組應該執行6次,也就是發送6條消息,通過監控器可以看到的確有6個采樣結果,說明執行成功
2)配置變量
有時候需要在報文中加上壹些變化的內容,可以通過在文本中增加變量設定來實現
如增加壹個變量名 bank, 其值為 1111,在前面發送的報文中加上${bank}即可引用,如
執行之後就可以在監控器中看到報文中有1111了
3)配置TCP 二進制報文
大多數情況下,報文可能非純文本形式,常常都是不可讀的二進制,所以這種情況下需要配置二進制報文。當前JMeter支持HEX形式,也就是16進制的報文輸入配置
參考: mand id和報文長度。比如上文中文本長度在編輯器狀態欄上顯示155長,假定command id是1.
System.out.println("155 hex " + Integer.toHexString(155)); --- 9b
System.out.println("1 hex " + Integer.toHexString(1)); ---1
如果command id是4個字節那麽16進制字符串就是 00 00 00 01
如果length也是4個字節那麽16進制字符串就是 00 00 00 9b
去掉空格加入到前面報文中就拼成如下新報文
000000010000009b3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e3c544c533e3c707273636f64653e6c6f67696e3c2f707273636f64653e3c69643e313233343536373c2f69643e3c746f6b656e3e75736a64666a6b736137356b733833326f6b7564736a643934383737616b6a6475613c2f746f6b656e3e3c2f544c533e
再把新報文放入發送字符串輸入框中。
b.修改JMeter啟動配置,就是前文提到的指定BinaryTCPClientImpl適配
在jmeter.properties文件中找到如下部分,修改壹下
#---------------------------------------------------------------------------
# TCP Sampler configuration
#---------------------------------------------------------------------------
# The default handler class
#tcp.handler=TCPClientImpl
tcp.handler=BinaryTCPClientImpl
重新執行TCP測試,可以看到服務器端正常收到報文,如圖
jmeter測試TCP服務器,使用TCP采樣器模擬發送TCP請求。
TCP采樣器:打開壹個到指定服務器的TCP / IP連接,然後發送指定文本並等待響應。
jmeter模擬發送TCP請求的方法:
1.新建線程組,然後在線程組中新建TCP采樣器
TCP采樣器中填寫服務器地址、端口和“要發送的文本”,其它選項根據需要選填:
re_use connection表示重復發送連接請求
close connection 關閉連接
如果TCP請求需要用戶名/密碼,可以在登錄配置中填寫
2.新建“察看結果樹”監視器,查看發送的請求和響應的結果。如果需要發送16進制報文這個地方會失敗。
jmeter發送16進制TCP報文的方法:
很多TCP服務器報文為16進制,並且多數不能轉換成文本發送,而jmeter默認發送文本。
jmeter.properties中修改tcp.handler=BinaryTCPClientImpl ,啟動jmeter重新發送,抓包查看既是16進制的tcp報文。
另壹個方法:可以在工作臺新建–非測試元件–Property Display,Property Display中修改jmeter.properties只對當前進程有效。