2013-08-03 75 views
0

我想用我所有的線程實現3 TPS的目標。我使用Constant Throughput Timer,但不知何故,它不提供恆定的TPS。它的確超過了3TPS,比如10TPS。恆定的吞吐量計時器JMeter


測試方案

線程組1

  • 此線程組提交一份關於服務器XML和檢查狀態。
  • 我把這個提交報價行爲下的常量計時器,並設置值爲每分鐘3。
  • 在每次報價提交後,我會執行一些操作。

線程組2

  • 此線程組提交服務器上的XML並檢查其狀態像第一個線程組,但其餘動作比第一不同。
  • 我把這個提交報價行爲下的常量計時器,並設置值爲每分鐘3。

線程組2

  • 此線程組提交服務器上的XML和檢查像第一&第二個線程組,但其餘動作的狀態比第一&第二不同。
  • 我把這個提交報價行爲下的常量計時器,並設置值爲每分鐘3。

我需要3 TPS從所有這些線程組對提交報價單步,我能夠做到這一點有點,但它不是恆定的。 enter image description here

有些人可以幫忙管理TPS嗎?

下面是上圖可以看到一些高交易: enter image description here

+0

你想每個線程組3TPS或所有線程組的所有線程? –

+0

我只是想要提交報價運行在3TPS,所有3線程組都有這種情況下,我嘗試了第一個計時器在測試計劃和第二個人計時器的方式,如每個線程組的屏幕截圖所示。 – Akshay

+0

看起來沒有解決方案,我仍然在等待答案。我使用了替代解決方案,但現在它再次給我帶來麻煩。 – Akshay

回答

0

CTT會給你「常量」吞吐量一段時間後,沒有在這種降低的時間作爲測試節目。

您看到的峯值來自服務器響應時間的變化。

也許你可以試試這個方法:

配置線程組:

  • 循環計數= 1

  • 斜坡向上測試的時間段=時間(3600秒我的例子)

  • 延遲線程創建直到需要= true

  • 調度持續時間=3600秒

  • 調度啓動延遲= 0如果運行1小時,以實現3個反每分鐘,線程的數量設置到180

+0

我放的圖只有15分鐘,但即使我運行了2小時,我也看到了同樣的行爲。我注意到在單線程中我正在做多個動作,如果我只在每個線程中保持一個動作,它就可以正常工作。通過使用線程間通信預處理器,我能夠將其他場景放入不同的線程並實現CTT。 – Akshay

0

  • 我能夠通過將操作分離到多個線程來進行管理。在我之前在Thread 1中的例子中,我正在執行一些影響CTT的操作。要解決問題,我使用隊列概念。 enter image description here

    • 首先分開你的線程的,如果你需要時間的任何行動將它們移動到單獨的線程。在下面的示例動作QuoteStatus和進一步是我的線程1的一部分,由於服務器響應緩慢,它不允許我CTT。

    enter image description here

    如果你看一下上面的響應時間從一個線程它相當恆定的,有多個動作是一個線程的原因的問題。如果你的目標是保持恆定的吞吐量,那麼最好每個線程保持一個動作,然後使用Inter_Thread通信在其他線程中傳遞數據。