2012-07-03 14 views
24

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

<responseData class="java.lang.String">&lt;html&gt;&#xd; 
&lt;body&gt;&#xd; 
ERROR=0&#xd; 
MSG=N/A&#xd; 
FILELIST=1555;1340778737370;1526545487;&#xd; 
VERSION=1.002&#xd; 
URL=https://192.168.100.46/updserver/download?action=signature_download&amp;token=&#xd; 
INTERVAL=0&#xd; 
&lt;/body&gt;&#xd; 
&lt;/html&gt;&#xd; 
</responseData> 

मैं "FileList" और "URL" चर निकालें और उन्हें एक नया URL में इंजेक्षन करने की जरूरत है:

https://192.168.100.46/updserver/download?action=signature_download&amp;token=1555;1340778737370;1526545487;&#xd; 

मैं जानता हूँ कि कुछ पोस्ट-प्रोसेसर है ऐसा करने के लिए, लेकिन कोई संकेत नहीं कि यह कैसे करें। बीटीडब्लू, दूसरा अनुरोध टॉमकैट सर्वलेट से कुछ फाइल डाउनलोड करेगा, क्या जेएमटर को स्ट्रीम डाउनलोड करने का कोई तरीका है लेकिन भौतिक फाइल को लिखने के बिना? ताकि मैं अपने सर्वलेट के खिलाफ लोड प्रदर्शन परीक्षण कर सकूं।

उत्तर

20

ठीक है तो आप पहले से ही जानते हैं कि कैसे अपनी प्रतिक्रिया से बाहर यूआरएल को निकालने के लिए, मैंने यह बताया कि मेरे पिछले जवाब में:

https://stackoverflow.com/a/11188349/169277

लेकिन यहाँ मैं बस उस पर विस्तार करेंगे। तो आपके पास आपका नमूना है और आपको पहले ही $ {url} मिल गया है। अब आपको FILELIST की आवश्यकता है और नया यूआरएल इकट्ठा करें।

मान लीजिए कि आपके पास पहले से ही अनुरोध और यूआरएल निकालने वाला स्थान है। एक नया Regular expression extractor जोड़ें।

Right click on request sampler -> Post Processors -> Regular Expression Extractor

Reference Name : FILELIST 
Regular Expression : FILELIST=(\S+) 
Template : $1$ 
Match No. (0 for Random): 1 

तो अब आप 1 अनुरोध नमूना और 2 नियमित अभिव्यक्ति एक्सट्रैक्टर्स है। नए यूआरएल को इकट्ठा करने में सक्षम होने के लिए आपको अतिरिक्त पोस्ट प्रोसेसर जोड़ने की जरूरत है।

Right click on request sampler -> Post Processors -> BSF PostProcessor

Script language तहत चुनें भाषा droplist से beanshell और बड़े क्षेत्र Script: में इस पेस्ट:

vars.put("NEW_URL", "${__javaScript('${url}'.replace('&#xd;'\,'${FILELIST}'))}"); 

और अब आप ${NEW_URL} है अपने परीक्षण में आगे उपयोग करने के लिए।

समस्याओं को हल करने के एक से अधिक तरीके हमेशा होते हैं, यह एक लाइनर वास्तव में बदसूरत दिखता है लेकिन यह उद्देश्य प्रदान करता है।

अपने परीक्षण में परिणाम के रूप में आप का अनुरोध किया (डीबग नमूना) है:

url=https://192.168.100.46/updserver/download?action=signature_download&amp;token=&#xd; 
FILELIST=1555;1340778737370;1526545487;&#xd; 
NEW_URL=https://192.168.100.46/updserver/download?action=signature_download&amp;token=1555;1340778737370;1526545487;&#xd; 

संपादित करें:

मुझे लगता है कि मुझे समझ नहीं आता कि कैसे आप अपने चर नाम। लेकिन अंतिम परिणाम वह है जिसे आपने अपने प्रश्न में वर्णित किया है। कृपया देखें।JMX परीक्षण काम कर उदाहरण के साथ संलग्न:

http://www.filefactory.com/file/1q7nfitmh4qd/n/so_11309469_jmx

यह एक JMeter .jmx JMeter

+0

चींटी @ के 2.6+ संस्करण के साथ काम फ़ाइल है, आपकी मदद के अनुसार, वर्तमान में मैं sample1 है (जो 3 पद प्रोसेसर : यूआरएल/टोकन एक्सट्रेटर/बीएसएफ पोस्ट प्रोसेसर), और नमूना 2 नया अनुरोध भेजने के लिए। लेकिन अभी भी कुछ त्रुटि है कि नमूना 2 को सही यूआरएल नहीं मिला है, कृपया मेरा डीबग नमूना ढूंढने में मदद करें: [लिंक] http://pastebin.com/rXB00uTL –

+0

@ ग्रेस कृपया अद्यतन उत्तर – ant

+0

@ चींटी पर एक नज़र डालें, मैं मुझे खेद है कि मैंने एक भयानक गलती की है। यह अब मेरे पक्ष में काम करता है, मैं आपकी महान मदद के लिए और अधिक सराहना नहीं कर सकता। –

7

capture प्रतिक्रिया का हिस्सा Regular Expression Extractor का उपयोग करें।

आप ViewResultsTree श्रोता का उपयोग कर प्रतिक्रिया डेटा पर अपनी regex अभिव्यक्ति का परीक्षण कर सकते हैं। अपने ViewResultsTree श्रोता में बाएं हाथ पैनल के नीचे ड्रॉप-डाउन बॉक्स में बस Regexp परीक्षक का चयन करें।

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