2017-09-05 3 views
0

Ici demande POST qui utilise le type MIME en tant que Multipart/form-data et le paramètre en tant que spb Je passe 1 fichier texte qui a complet corps JSON .comment mettre à jour des champs de fichier texte, en prenant la réponse de la demande http précédente dans jmeter

text file : upload.txt 
{ 
    "id":"Rx2160C-019A", 
    "iAgree":false, 
    "price":"31.25", 
    "maxDispenceDays":null, 
    "RxId":"DRAFT9800E", 
....... 
} 

Chaque fois que je dois mettre à jour le id et RxId dans le fichier texte basé sur la dernière requête HTTP.

J'essayais de faire avec BeanShell PostProcessor élément, mais je ne reçois pas le code et la solution pour cela.

f = new FileOutputStream("/Users/bhkuma/Documents/Bharath/Jmeter/Loa‌​dTesting/goRxDigitiz‌​e.txt", true); 
p = new PrintStream(f); 
this.interpreter.setOut(p); 
print(name + "," + email); 
f.close(); 

Comment puis-je y parvenir?

C'est le code mis à jour que je suis en train ..

import java.io.File; 
import java.io.FileWriter; 
import java.io.FileReader; 
import java.io.IOException; 
import java.io.BufferedReader; 

import org.json.JSONException; 
import org.json.JSONObject; 
import com.fasterxml.jackson.databind.ObjectMapper; 


//ObjectMapper mapper = new ObjectMapper(); 

//JSONObject root = mapper.readValue(new File("/Users/bhkuma/Documents/Bharath/Jmeter/LoadTesting/upload.txt"), JSONObject.class); 
FileReader fr = new FileReader("/Users/bhkuma/Documents/Bharath/Jmeter/LoadTesting/upload.txt"); 
     BufferedReader br = new BufferedReader(fr); 

      String sCurrentLine; 

      String output=""; 
      while ((sCurrentLine = br.readLine()) != null) { 
       output += sCurrentLine; 
       //System.out.println(sCurrentLine); 
      } 
log.info("bharath"); 
log.info(output); 

JSONObject obj = new JSONObject(output); 

JSONObject value = new JSONObject(); 
value.put("id","Rx2160C-100A"); 
log.info(value); 
obj.put(value); 
log.info(output); 

System.out.println("Successfully updated json object to file...!!"); 

et ici JSON objet ne fonctionnera pas ...

+0

Ajoutez votre plan de test et post-processeur – user7294900

+0

processeur shell Bean im essayant .. il s aucun document à mettre à jour les champs de fichier texte .. f = new FileOutputStream ("/ Users/bhkuma/Documents/Bharat/Jmeter/LoadTesting/goRxDigitize.txt ", true); p = new PrintStream (f); this.interpreter.setOut (p); print (nom + "," + email); f.close(); .... essayer avec ce code .. vient de l'autre page SOF. –

+0

Quelle est votre réponse? mettre l'exemple de la réponse avec les ID – user7294900

Répondre

0

J'ai entendu Groovy is the New Black Je recommande donc passer de Beanshell à JSR223 PostProcessor. Le correspondant du code Groovy pour remplacer id serait quelque chose comme:

def upload = new File('/Users/bhkuma/Documents/Bharath/Jmeter/LoadTesting/upload.txt') 
def json = new groovy.json.JsonSlurper().parse(upload) 
def builder = new groovy.json.JsonBuilder(json) 

builder.content.id = 'Rx2160C-100A' 

def writer = upload.newWriter() 
writer << builder.toPrettyString() 
writer.close() 

Références:

0

Ceci est le code final que je suis venu jusqu'à .. son fonctionnement bien

import java.io.File; 
import java.io.FileWriter; 
import java.io.FileReader; 
import java.io.IOException; 
import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import org.json.JSONObject; 


import com.fasterxml.jackson.databind.ObjectMapper; 

String path = "/Users/bhkuma/Documents/Bharath/Jmeter/LoadTesting/goRxDigitize1.txt"; 


FileReader fr = new FileReader(path); 
     BufferedReader br = new BufferedReader(fr); 

      String sCurrentLine; 

      String output=""; 
      while ((sCurrentLine = br.readLine()) != null) { 
       output += sCurrentLine; 
       //System.out.println(sCurrentLine); 
      } 

      log.info("bharath"); 
log.info(output); 

JSONObject obj = new JSONObject(output); 
obj.put("id",vars.get("orderId")); 
obj.put("RxId", vars.get("RxId")); 
//log.info(obj); 
//obj.id="test1"; 

File file = new File(path); 

      // If file doesn't exists, then create it 
      if (!file.exists()) { 
       file.createNewFile(); 
      } 

      FileWriter fw = new FileWriter(file.getAbsoluteFile()); 
      BufferedWriter bw = new BufferedWriter(fw); 

      // Write in file 
      bw.write(obj.toString()); 

      // Close connection 
      bw.close(); 

//obj.id = "test"; 
/*JSONObject value = new JSONObject(); 

log.info(value); 
obj.put(value); 
log.info(output);*/ 

//file.write(obj.toString()); 
System.out.println("Successfully updated json object to file...!!");