2012-04-19 13 views
13

में एक चर के भीतर एक चर के संदर्भ में मैं जेएमटर के साथ काम कर रहा हूं। मैं इस तरह उपयोगकर्ता निर्धारित चरों का उपयोग कर परीक्षण मेजबान निर्दिष्ट करने के लिए, चाहते हैं:जेएमटर

variable name  value 
localhost   localhost 
test    192.168.0.1 
hostname   ${localhost} 

परीक्षण निष्पादित, मुझे लगता है कि होस्ट नाम मूल्य प्रतिस्थापित नहीं है, और स्पष्ट रूप से परीक्षण विफल रहता है। मुझे पता है कि मैं गुणों का उपयोग कर सकता हूं और कमांड लाइन से होस्टनाम पास कर सकता हूं, या बस होस्टनाम मान बदल सकता हूं। क्या यह संभव है जैसे मैंने समझाया है?
धन्यवाद।

उत्तर

12

मैंने अपनी समस्या का समाधान करने में कामयाब रहा है। मैं करने के लिए होस्ट नाम चर मूल्य बदल दिया है: ${__evalVar(${localhost})}, लेकिन मैं इस त्रुटि मिल गया है:

ERRROR jmeter.functions.EvalVarFunction: Variables have not yet been defined

तो मैं अपने नमूना नोड के एक "उपयोगकर्ता परिभाषित चर" बच्चे नोड में होस्ट नाम चर घोषणा स्थानांतरित किया है। यह हल हो गया।

+4

ठीक है कि आपने इसे स्वयं हल किया है। एक नोट: [परीक्षण योजना में सभी यूडीवी तत्व - चाहे वे कहीं भी हों - शुरुआत में संसाधित हो जाएं] (http://jmeter.apache.org/usermanual/component_reference.html#User_Defined_Variables), इसलिए मैं बस भी 2 _consequent_ अलग यूडीवी का उपयोग करें और 1 'localhost' var में और दूसरे - 'होस्टनाम' में परिभाषित तरीके से परिभाषित करें। –

+0

धन्यवाद, मैंने इस दृष्टिकोण के बारे में नहीं सोचा था। मुझें यह पसंद है। – Carlo

0

नए नए संस्करण (2.2 से), आप ${__V(${...})}/ का उपयोग कर सकते हैं।

पूर्व: ${__V(${SERVER_CONTEXT})}/rest

रूप @Alies Belik, का उल्लेख किया है, तो आप

ERRROR jmeter.functions.EvalVarFunction: Variables have not yet been defined 

मिलता तो अगले अन्य UDV में 2 चर (उपयोगकर्ता निर्धारित मान) नोड परिभाषित करते हैं।

+1

'$ {__ वी' यहां व्यर्थ है। वह var-vars करने की कोशिश नहीं कर रहा है। – Pacerier

5

हल करने के लिए इस आप होस्ट नाम का उपयोग करना चाहिए = $ {__ eval ($ {स्थानीय होस्ट})}
http://jmeter.apache.org/usermanual/functions.html#__eval
कार्लोस 'जवाब एक गलती (जो मैं प्रतिनिधि के कारण इस पर टिप्पणी नहीं कर सकते हैं) के रूप में यह evalVar का उपयोग करता है, इसे एक सादा स्ट्रिंग के रूप में आवश्यक है:

This works: ${__evalVar(localhost)})
This works: ${__eval(${localhost})}
This doesn't work (the current answer): ${__evalVar(${localhost})} http://jmeter.apache.org/usermanual/functions.html#__evalVar

+0

छोटी बात, लेकिन ऐसा लगता है कि के अंत में आपके पास अतिरिक्त दाएं कोष्ठक है, यह काम करता है: $ {__ evalVar (localhost)}) '। – raph

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