2016-09-13 5 views
1

Ich habe zwei Anforderungen, die erste ist GET, die zweite ist PUT. Ich sollte die Antwortdaten von der GET-Anfrage erhalten, sie ein wenig ändern und mit der PUT-Anfrage senden. Bisher habe ich alles geschafft, außer die Antwortdaten zu modifizieren.JMeter Ändern der GET-Antwort zur Verwendung in PUT

Für GET-Anfrage verwenden I Regular Expression Extractor als Preprocessor: parsing get

Und zur Zeit ich die PUT-Anfrage senden, ohne die Daten zu modifizieren: sending put

JSON Struktur:

{ 
    "property1" : 1, 
    "property2" : "2", 
    "innerPropery" : { 
    "innerProperty1" : "value1", 
    "innerProperty2" : "value2", 
    "innerProperty3" : "value3" 
    } 
} 

I sollte die innere Eigenschaft2 ändern.

Danke!

Antwort

3

Sie können dies ohne den Zwischenschritt "Regular Expression Extractor" tun.

  1. hinzufügen JSR223 PostProcessor als Kind des getForm Anfrage
  2. groovy Wählen Sie in der "Sprache" drop-down
  3. Setzen Sie den folgenden Code in "Script" Bereich:

    import groovy.json.JsonBuilder 
    import groovy.json.JsonSlurper 
    
    def response = prev.getResponseDataAsString() 
    def json = new JsonSlurper().parseText(response) 
    
    def builder = new JsonBuilder(json) 
    builder.content.property2 = '2.1' 
    
    vars.put("response", builder.toPrettyString()) 
    
  4. In saveForm Anfrage Verwendung ${response} als Anfrage Körper

Referenzen:

0

Ich habe es geschafft, dies über BeanShell PostProcessor zu tun. Zuerst habe ich einen neuen BeanShell PostProcessor hinzugefügt: klicke rechts auf getFrom, Add -> Post Processors -> BeanShell PostProcessor. Danach öffnete ich die reated BeanSChell und haben den folgenden Code in Feld Skript geschrieben:

responseString = vars.get("response"); 
log.info("Received response: " + responseString); 
responseString = responseString.replace("\"prop1\" : \"value2\"", "\"prop1\" : \"value2.1\""); 
log.info("Response to send: " + responseString); 
vars.put("modifiedResponse", responseString); 

In Parameter Feld habe ich geschrieben:

response 

Schließlich habe ich für PUT-Anfrage von

den Körper verändert
${response} 

zu

${modifiedResponse} 
Verwandte Themen