2017-08-09 121 views
0

我已經在JMeter的ThreadGroup下設置了一個TCP採樣器。數據是從CSV文件中提取的。第一行數據用於驗證,所有後續行都是實際的參數數據。類似下面,Jmeter TCP採樣器 - 如何重用線程之間的連接?

AAAAAAA21 
BBBBBBBCCCCCCCDDDDDDD 
BBBBBBBCCCCCCCDDDDDDD 
BBBBBBBCCCCCCCDDDDDDD 

我想的是,如果線程組與10個線程,例如連續運行,第一個線程獲取數據的第一線,使得與服務器進行身份驗證的連接。所有後續線程使用相同的連接(而不是每次創建新連接)並簡單地將數據發送到服務器。這樣做的原因是數據模擬發送第一個數據包進行身份驗證並創建連接的設備,並且所有後續數據包都將在同一個連接上發送數據。我想用JMeter來模擬設備測試。

我發現的限制是JMeter正在爲每個線程創建一個新的連接,並且在線程退出時連接會關閉。似乎沒有辦法共享threadGroup中所有線程之間的連接,或者可能有一種我不知道的方式。

尋找中,我可以測試這個用例

回答

1

方式不幸的是沒有可能分享不同的線程之間的連接爲每個線程代表一個單獨的虛擬用戶虛擬用戶不知道對方什麼。此外,如果您嘗試共享不同線程之間的連接,則一次只能使用連接(否則當多個線程同時寫入同一連接時會遇到這種情況,從而導致數據損壞)

所以您可以使用每個虛擬用戶1個連接(即你將有總共10個連接)

  1. 添加Loop Controller到你的線程組,要麼剔Forever框或設置循環計數-1 - 這樣的孩子採樣器(S)將永遠運行
  2. 將TCP採樣器添加爲小孩迴路控制器和蜱Re-use connection對話框,以便您的測試計劃看起來像:

    JMeter TCP Reuse Connection

How to Load Test TCP Protocol Services with JMeter文章以獲取更多信息。

+0

謝謝。我跟着上面提到的文章。但是對於我的特殊用例,它並沒有幫助。我會接受這個作爲現在工具的限制。 – Avi