2017-01-12 6 views
1

JMeterテスト計画を設定するときに、HTTPSamplerにカスタムヘッダーをプログラムで追加しています。JMeter - プログラムでHTTPSamplerにカスタムHTTPヘッダーを追加する

同じのためのスニペットの下に参照してください:

HeaderManager headerManager = new HeaderManager(); 
headerManager.add(new Header("Foo", "Joe")); 
sampler.setHeaderManager(headerManager);` 

ここでの問題は、このカスタムヘッダーがサーバーに送信されていないということです。

ここには何かがありますか?

答えて

0

このようには動作しません.HeaderManager HashTreeをHTTPSamplerProxy HashTreeに追加するコードを修正する必要があります。念のために

HashTree httpRequestTree = new HashTree(); 
httpRequestTree.add(httpRequest, manager); 

testPlanTree.add(testPlan); 
HashTree threadGroupHashTree = testPlanTree.add(testPlan, threadGroup); 
threadGroupHashTree.add(httpRequestTree); 

完全なコード、:その後、あなたはグループ、のようなものをスレッドにこのHTTPSamplerProxyを追加する必要が

// JMeter Test Plan, basically JOrphan HashTree 
HashTree testPlanTree = new HashTree(); 

// Create Header Manager 
HeaderManager manager = new HeaderManager(); 
manager.add(new Header("Foo", "Joe")); 
manager.setName(JMeterUtils.getResString("header_manager_title")); // $NON-NLS-1$ 
manager.setProperty(TestElement.TEST_CLASS, HeaderManager.class.getName()); 
manager.setProperty(TestElement.GUI_CLASS, HeaderPanel.class.getName()); 

// HTTP Sampler - open example.com 
HTTPSamplerProxy httpRequest = new HTTPSamplerProxy(); 
httpRequest.setDomain("example.com"); 
httpRequest.setPort(80); 
httpRequest.setPath("/"); 
httpRequest.setMethod("GET"); 
httpRequest.setName("Open example.com"); 
httpRequest.setProperty(TestElement.TEST_CLASS, HTTPSamplerProxy.class.getName()); 
httpRequest.setProperty(TestElement.GUI_CLASS, HttpTestSampleGui.class.getName()); 


// Loop Controller 
LoopController loopController = new LoopController(); 
loopController.setLoops(1); 
loopController.setFirst(true); 
loopController.setProperty(TestElement.TEST_CLASS, LoopController.class.getName()); 
loopController.setProperty(TestElement.GUI_CLASS, LoopControlPanel.class.getName()); 
loopController.initialize(); 

// Thread Group 
ThreadGroup threadGroup = new ThreadGroup(); 
threadGroup.setName("Example Thread Group"); 
threadGroup.setNumThreads(1); 
threadGroup.setRampUp(1); 
threadGroup.setSamplerController(loopController); 
threadGroup.setProperty(TestElement.TEST_CLASS, ThreadGroup.class.getName()); 
threadGroup.setProperty(TestElement.GUI_CLASS, ThreadGroupGui.class.getName()); 

// Test Plan 
TestPlan testPlan = new TestPlan("Create JMeter Script From Java Code"); 
testPlan.setProperty(TestElement.TEST_CLASS, TestPlan.class.getName()); 
testPlan.setProperty(TestElement.GUI_CLASS, TestPlanGui.class.getName()); 
testPlan.setUserDefinedVariables((Arguments) new ArgumentsPanel().createTestElement()); 

// HTTP Request Sampler and Header Manager 
HashTree httpRequestTree = new HashTree(); 
httpRequestTree.add(httpRequest, manager); 

// Construct Test Plan from previously initialized elements 
testPlanTree.add(testPlan); 
HashTree threadGroupHashTree = testPlanTree.add(testPlan, threadGroup); 
threadGroupHashTree.add(httpRequestTree); 

JMeterのテスト計画の構築の詳細については、チェックアウトFive Ways To Launch a JMeter Test without Using the JMeter GUIプログラマチックに。

関連する問題