2015-02-11 33 views
0

按照我之前的2個主題 - 我是Jmeter新手,需要性能測試新的Web應用程序 - 我正在取得進展,但如果沒有問題,我需要一些指針。基於數據庫更新的jmeter響應時間

我的環境:JMeter的V2.11,JDK 7,遠程Oracle 12 RDBMS

有一個系統(A),將發送2000 SOAP/XML的提交(每小時)到接收系統(B)。系統B將在數據庫表中插入一個新行(對於每個新提交),處理請求並使用隨機數值填充狀態列,一旦處理完成/提交被「批准」。表中沒有日期/時間戳列。

我有一個要求,說明這些A到B提交需要在60秒內「批准」。

我發現另一個線程夫婦是非常有幫助的線程和我已經採取了位,這些其他線程件拿出如下:

  • 線程組 - >主題數:1,循環計數:2000,持續時間:3600
  • JDBC連接配置
  • JDBC預處理程序 - >從表中選擇max(recordid)+1; '變量名' 爲 'maxrecordidvar'(識別下一個提交的記錄在數據庫中)
  • BeanShell的採樣器 - >生成XML提交
  • WHILE控制器 - >($ {__使用Javascript( 「$ {STATUS_1}」! = null)})
  • JDBC SAMPLER - >從表中選擇狀態where recordid = maxrecordidvar; 「變量名稱」作爲「狀態」

我希望以上就能讓我能夠確定的響應時間,然而,我有點失去了對如何驗證響應時間。我在這裏提交了一個前面的線程來處理響應時間,但是Dmitri T(感謝Dmitri!)指出,對於這種情況,我實際上是吞吐量而不是響應時間。
我理解控制器會執行,直到發現它是假的(所以對於我上面的例子,它會運行,直到狀態列不爲空),但如果上面的線程對象在我的示例層次結構中是正確的,我不知道如何確定響應時間 - 我將使用哪些聽衆?我可以看到一個響應時間圖,並且我可以看到一個持續時間斷言,它指定了斷言的時間限制 - 但我不知道如何將此映射到特定行的狀態列被填充時的映射方式,以及如何使用該行插入的時間爲開始時間以比較兩者。本質上 - 我需要證明每個XML提交在60秒內處理所有響應。

我希望我對我的要求一直很清楚和簡潔 - 非常感謝任何人都可以提供幫助!

回答

0

如果添加收聽者View Results in Table,您也應該看不到每個請求的響應時間。

JDBC Results In Table

這裏是我用來運行測試JMX file的副本。

1

JMeter提供的Assertions能夠基於通過或失敗標準有條件地將結果標記爲通過或失敗。

爲了確保響應來自在60秒內,你可以一個Duration Assertion添加到您的JDBC採樣(作爲一個孩子或同等水平),所以如果響應時間超過60秒閾值可以斷言失敗樣本的結果。

要了解更多有關斷言:類型,提示,技巧,放置位置等信息,請查看How to Use JMeter Assertions in 3 Easy Steps指南。