2016-10-04 4 views
0

Ich stelle in JMeter Pure Java, wie content-type application/json in httpSampler setzen?JMeter API-Set Content-Typ

// HTTP Sampler 
 
     HTTPSampler httpSampler = new HTTPSampler(); 
 
     httpSampler.setDomain("localhost"); 
 
     httpSampler.setPort(8080); 
 
\t \t httpSampler.setPath("/posts"); 
 
     httpSampler.setMethod("POST"); 
 
     httpSampler.setName("API"); 
 

 
\t \t String data = "{\"items\":[{\"stacking_limit\":null,\"id\":\"MLA60428354\",\"weight\":300,\"height\":20,\"only_rotate_axis\":null,\"width\":35,\"length\":45,\"quantity\":1}],\"pack\":{\"weight\":2000,\"height\":100,\"width\":100,\"length\":100}}"; 
 
\t \t httpSampler.addNonEncodedArgument("", data, ""); 
 
\t \t httpSampler.setPostBodyRaw(true); 
 

 
\t \t HeaderManager headerManager = new HeaderManager(); 
 
\t \t Header h = new Header("Content-Type", "application/json"); 
 
\t \t headerManager.add(h); 
 
\t \t httpSampler.setHeaderManager(headerManager);

Wenn ich einen Beitrag an den Server senden, überprüfe ich, dass Header application/x-www-form-urlencoded enthalten, wie es ändern?

+0

Ihr Code sieht gut aus. Wie haben Sie überprüft, dass der Header "application/x-www-form-urlencoded" enthält? I.e. Sind Sie sicher, dass ein 'Content-Type' von Ihrer Anfrage eingetroffen ist und nicht 'Accept' oder' Content-Type' der Antwort? Auch funktioniert es von JMeter UI (könnte Ihr Server etwas komisch machen) –

Antwort

0

Die ähnliche Frage wurde hier in der Diskussion des Five Ways To Launch a JMeter Test without Using the JMeter GUI Artikel gefragt wurde, ist der wesentliche Teil der Lösung:

// Create Header Manager 
HeaderManager manager = new HeaderManager(); 
manager.add(new Header("Content-Type", "application/json")); 
manager.setName(JMeterUtils.getResString("header_manager_title")); 
manager.setProperty(TestElement.TEST_CLASS, HeaderManager.class.getName()); 
manager.setProperty(TestElement.GUI_CLASS, HeaderPanel.class.getName()); 

// Create HTTP Sampler 
HTTPSamplerProxy httpSampler = new HTTPSamplerProxy(); 
httpSampler.setDomain("localhost"); 
httpSampler.setPort(8080); 
httpSampler.setPath("/posts"); 
httpSampler.setMethod("POST"); 
httpSampler.setName("API"); 
httpSampler.setProperty(TestElement.TEST_CLASS, HTTPSamplerProxy.class.getName()); 
httpSampler.setProperty(TestElement.GUI_CLASS, HttpTestSampleGui.class.getName()); 

//Add HTTP Header Manager to HTTP Sampler  
HashTree httpSamplerTree = new HashTree(); 
httpSamplerTree.add(httpSampler, manager);