2012-06-29 14 views
11

में जेएमटर स्क्रिप्ट की निर्देशिका कैसे प्राप्त करें मेरे पास जावा में लिखा गया एक कस्टम जेएमटर नमूना है जो फ़ाइल स्थान और फ़ाइल पथ को पैरामीटर के रूप में लेता है और उन पर आधारित एक सेवा पोस्ट करने के लिए एक जेसन फ़ाइल बनाता है (टेम्पलेट फ़ाइल के आधार पर) । चूंकि मेरी स्क्रिप्ट को अलग-अलग निर्देशिका संरचनाओं के साथ कई वातावरणों पर चलने की आवश्यकता है, इसलिए मुझे अपने नमूने में एक सापेक्ष पथ का उपयोग करने के लिए उस फ़ाइल को इंगित करने की आवश्यकता है जिसे मुझे वैध जेसन में अनुवाद करने की आवश्यकता है। क्या मेरी स्क्रिप्ट jmeter में एक चर के रूप में निर्देशिका में रहने का कोई तरीका है? मैंने $ {user.dir} की कोशिश की है, लेकिन वह निर्देशिका देता है जहां jmeter लॉन्च किया गया है, न कि निर्देशिका जहां मेरी स्क्रिप्ट रहता है। क्या कोई अन्य सिस्टम प्रॉपर्टी है जो मैं इस मूल्य को प्राप्त करने के लिए संदर्भित कर सकता हूं? यदि नहीं, क्या किसी ने प्रोग्रामेटिक रूप से इसे पूरा किया है?जेएमटर

+0

क्या आपने http://stackoverflow.com/questions/9179463/access-to-jmeter-script-path में सूचीबद्ध किसी भी समाधान का प्रयास किया है? – DComte

उत्तर

28

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

उस स्थान से संबंधित पथ को हल करने के लिए निम्न बीनशेल अभिव्यक्ति (जिसे सिस्टम-स्तरीय प्रॉपर्टी के रूप में एक्सेस किया जा सकता है) का उपयोग करने का प्रयास करें जिसमें आपके जेएमटर टेस्ट-केस स्थित/निष्पादित हैं।

${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)} 
  • आप फ़ाइल आप बस फ़ाइल नाम जोड़कर "अनुरोध के साथ फ़ाइलें भेजें" फ़ील्ड में/पोस्ट भेजना चाहते हैं के नाम के साथ इस डाल सकते हैं।

    ${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}fileName.sig

  • एक और अधिक क्लीनर कार्यान्वयन एक चर (स्थानीय या गुंजाइश पर वैश्विक निर्भर करता है) के रूप में इस की घोषणा की जाएगी और उचित क्षेत्रों के भीतर इस चर का उपयोग करें।

    absolutePath = ${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}

    ${absolutePath}fileName.sig

नोट: यह दृष्टिकोण सुपर उपयोगी है अगर आप इस तरह के जेनकींस के रूप में एक सतत एकीकरण प्रणाली में अपने JMeter परीक्षण फ़ाइलों प्लग करने के लिए करना चाहते हैं। यह आपके परीक्षण-मामलों को और अधिक रखरखाव बनाता है।

+0

मुझे दिए गए वाक्यविन्यास के माध्यम से फ़ाइल का पथ प्राप्त हो रहा है (कहें: सी: \ उपयोगकर्ता \ test.xlsx) और चर में संग्रहीत। लेकिन जब मैं सामग्री को पढ़ने के लिए जावा I/O क्लास फ़ाइलों (FileInputStream) में एक ही चर का उपयोग करता हूं तो त्रुटियां मिल रही हैं। जब मैंने डीबग को पिछड़ा स्लैश मुद्दा पाया। FileInputStream क्लास में वही चर पारित करने में सक्षम नहीं हो सका। फ़ाइल विभाजक को स्लैश अग्रेषित करने के लिए कोई दृष्टिकोण है? – Manigandan

+1

str = str.replace ("\\", "/"); ? – stuxnetting

+0

यह काम नहीं कर रहा है। – Manigandan

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