2017-08-08 1 views
-1

[ここに画像の説明を入力してください] [1] [ここに画像の説明を入力してください] [2] Jmeterの次のリクエストで、要求の一部を使用して使用するにはどうすればよいですか? (私はログイン後に100行が表示され、100制限に達した後にスクロールするとlazyloading呼び出しがサーバーに送られ、さらに50レコードが取得されます)ここでの呼び出しはJSON形式であり、最初のスクロールはリクエストとして100レコードすべてを送信し、レスポンスでは50レコードを取得します。150レコードを超えてスクロールすると、リクエストは150レコードすべてをリクエストとしますが、レスポンスは50です。カウントは200、cumulatinveになります。今では、ループコントローラをそこに置き、ループの残りの部分をスクロールしようとしています)。すべてのlazyloading呼び出しは50レコードしか出ませんが、要求の次の反復ではレコードの累積数が要求として送信されます。Jmeterのループコントローラの次の反復でリクエストの一部を使用する方法は?

私の直感は、これにプリプロセッサとポストプロセッサを併用すると言います。私はJmeterを新しくしています。この目的のためにどのプリプロセッサーか、あるいはこれを解決するための他の選択肢があるかどうかはわかりません。

デフォルトのページ応答が "fgAhi"で、最初のJsonリクエストで渡すには値 "A"が必要です。したがって、最初のリクエストは "xAy"のようなものになり、応答は "pBq"になります。今度は2回目の反復のために、私は "xABy"であることを要求し、応答は "pCq"になります。 3番目のリクエストは "xABCy"で、レスポンスは "pDq"となります。

答えて

0

最初のレスポンスから50レコード、2番目のレスポンスから50レコードが100レコードの新しいJSONオブジェクトに追加する必要がある場合は、このためJSR223 PostProcessorを使用するサンプルコードは次のようになります。

import groovy.json.JsonOutput 
import groovy.json.JsonSlurper 

def previousResponse = vars.get('previousResponse') 

def currentResponse = prev.getResponseDataAsString() 

log.info('Previous response: ' + previousResponse) 
log.info('Current response: ' + currentResponse) 

def slurper = new JsonSlurper() 
def json1 = slurper.parseText(previousResponse) 
def json2 = slurper.parseText(currentResponse) 

def cumulativeResponse = JsonOutput.prettyPrint(JsonOutput.toJson ([json1, json2])) 

log.info('Cumulative response: ' + cumulativeResponse) 

vars.put('previousResponse', cumulativeResponse) 

デモ:

JMeter Groovy JSON Merge

参考文献:

返信用の
+0

感謝。 –

+0

しかし、これは私が欲しいものではありません。常に50レコードの出力を持つjsonメソッドがあります。要求は常に累積的です。デフォルトでログインしたときと同じように、100レコードがあり、初めてjsonを実行した後、50レコードが新たに記録されました。次のJSON REQUESTには150(最初のレスポンスではデフォルトで100 + 50)が必要で、2番目のレスポンスは50レコードで、3番目のJSON REQUESTには200レコード(100のデフォルト+ 50の最初のレスポンスレコード+ 50秒レスポンス記録)。私はこれをループに無限の時間入れなければなりません。 –

+0

であり、2番目のレスポンスは50レコード、3番目のJSON REQUESTは200レコード(100のデフォルト+ 50の最初のレスポンスレコード+ 50秒のレスポンスレコード) –

関連する問題