2011-09-20 12 views
8

के साथ एक JSON पोस्ट अनुरोध भेजना मैं कुछ प्रदर्शन परीक्षण लिखने के लिए जेएमटर के साथ काम कर रहा हूं। उन चीजों में से एक जो मुझे करने की ज़रूरत है वह एक विशाल जेसन अनुरोध को गतिशील रूप से बनाना है और इसे POST अनुरोध पेलोड के रूप में भेजना है। बीएसएफ प्रीप्रोसेसर का उपयोग करके, मैं गतिशील रूप से पेलोड को संशोधित करने में सक्षम हूं हालांकि मेरी जावास्क्रिप्ट स्ट्रिंग को एन्कोड किया जा रहा है, जबकि मैं इसे एन्कोड किए बिना भेजना चाहता हूं।बीएसएफ प्रीप्रोसेसर

मुझे यकीन नहीं है कि बीएसएफ प्रीप्रोसेसर इसे एन्कोड किए जाने से कैसे रोक सकता है। आदेश मैं वर्तमान में मेरे पोस्ट अनुरोध पेलोड को बदलने के लिए उपयोग करते हैं इस प्रकार है:

var jsonData = '[{"item":"value","something":"everything"}]'; 
sampler.addArgument("",jsonData); 

मैं वास्तव में अगर तुम मुझे कुछ उदाहरण जो स्पष्ट रूप से बताएं कि किस तरह बीएसएफ preprocessors इस्तेमाल किया जा करने की संभावना है को इंगित कर सकते हैं की सराहना करेंगे।

एन्कोडिंग को छोड़ने के लिए कोई भी पॉइंटर्स भी सराहना की जाएगी। अपने नमूना "HTTPArgument.always_encode" इस गलत पर पर

उत्तर

1

अक्षम करना चाहिए JMeter 2.6 जब से तुम पोस्ट के मुख्य भाग टैब का उपयोग करके रॉ अनुरोध फलक का उपयोग कर सकते हैं। ,

  1. बीएसएफ नमूना में एक चर में आप JSON डाल:

    तो अपने समाधान निम्न करने के लिए है

    var jsonData = '[{"item":"value","something":"everything"}]'; 
    vars.putObject("jsonData",jsonData); 
    
  2. पोस्ट के मुख्य भाग में, डाल:

    ${jsonData} 
    

यो का उपयोग करने का एक और विकल्प

import org.apache.jmeter.protocol.http.util.HTTPArgument; 
String jsonData = "[{\"item\":\"value\",\"something\":\"everything\"}]"; 
HTTPArgument arg =new HTTPArgument("", jsonData, null, true); 
arg.setAlwaysEncoded(false); 
sampler.getArguments().addArgument(arg); 

सादर

फिलिप एम

-1

सेट संपत्ति तर्क एन्कोडिंग

+1

समाधान है अधूरा, नीचे दिए सभी एक के लिए देखें: उर विधि BeanShell भाषा (नहीं जावास्क्रिप्ट) का उपयोग कर BSFPreProcessor में डालने के लिए है –

संबंधित मुद्दे