loadrunner vugen scripting challenges
लोडरनर वोगेन स्क्रिप्टिंग में शामिल चुनौतियों का परिचय:
इस में जानकारीपूर्ण लोडरनर प्रशिक्षण श्रृंखला , हमने खोजबीन की वुगन स्क्रिप्ट एन्हांसमेंट्स हमारे पिछले ट्यूटोरियल में। अपने पहले के ट्यूटोरियल से अब तक, हमने वुगेन के साथ शानदार प्रगति की है।
हमने सीखा कि वेब HTTP / HTML प्रोटोकॉल में स्क्रिप्ट कैसे रिकॉर्ड की जाती है, सहसंबंध और पैरामीटर के साथ डेटा / मूल्यों की देखभाल कैसे करें, यह सुनिश्चित करने के लिए कि यदि प्रतिक्रिया चौकियों के साथ सही है, तो लेन-देन कैसे डालें जो उपयोगकर्ता की दर और प्रतिक्रिया समय को मापता है कार्रवाई और अन्य चीजें।
इनके साथ, हमें लगभग सभी वेब अनुप्रयोगों के लिए स्क्रिप्ट बनाने में सक्षम होना चाहिए।
=> लोडरनर ट्यूटोरियल की पूरी श्रृंखला के लिए यहां क्लिक करें
एलआर भाषा
ऐसी परिस्थितियाँ हो सकती हैं जहाँ हमें VuGen स्क्रिप्ट में अधिक चुनौतीपूर्ण कार्य करने की आवश्यकता होती है। इस ट्यूटोरियल में, हम स्क्रिप्टिंग चुनौतियों के साथ-साथ उन्हें संभालने के लिए उपलब्ध तकनीकों के बारे में चर्चा करेंगे।
इन पर चर्चा करने से पहले, आइए कुछ बातों को समझें। VuGen (या लोड रनर) केवल अपनी भाषा समझ सकते हैं (आइए हम इसे LR भाषा कहते हैं, LR लोडर का संक्षिप्त रूप है)। इसलिए यह जो भी लिपि उत्पन्न करता है उसे LR भाषा में कहा जा सकता है। एलआर भाषा में, केवल एक डेटा प्रकार है - स्ट्रिंग (और अधिक सटीक रूप से ’एलआर स्ट्रिंग’)।
अब, VuGen स्क्रिप्ट में एन्हांसमेंट करने के लिए, हम आम तौर पर C भाषा का उपयोग करते हैं।
हम जानते हैं कि सी भाषा में कई डेटा प्रकार होते हैं जैसे इंट, चार, फ्लोट, लॉन्ग आदि। यदि हम सीधे सी मानों को एक अनुरोध में परिभाषित करते हैं और उपयोग करते हैं, तो वुगन को समझ नहीं आएगा (क्योंकि यह केवल 'एलआर स्ट्रिंग्स' को समझता है) और फेंक देगा एक त्रुटि। इसलिए हमें अनुरोध में इसका उपयोग करने से पहले किसी भी C मान (किसी भी प्रकार का डेटा) को before LR string ’में बदलना होगा।
इसे समझने के बाद, हम कुछ वास्तविक समय के चुनौतीपूर्ण परिदृश्यों पर चलते हैं।
परिद्रश्य 1:VuGen अनुरोध में C स्ट्रिंग का उपयोग कैसे करें
मान लें कि VuGen स्क्रिप्ट में हमारे पास एक अनुरोध है जिसमें एक फ़ील्ड है जिसका नाम 'PlanName' है (मान लें कि यह स्क्रिप्ट कुछ वित्तीय नियोजन एप्लिकेशन के लिए है)। रिकॉर्डिंग करते समय, हमने 'न्यूप्लान' के रूप में मान दर्ज किया।
web_submit_data('MyPlan', 'Action= {pURL} ', 'Method= POST ', 'TargetFrame=', 'RecContentType= text/html ', 'Snapshot= t21.inf ', 'Mode= HTML ', ITEMDATA , 'Name= PlanId ', 'Value= 67213 ', ENDITEM , 'Name= PlanName ', 'Value= NewPlan ', ENDITEM , 'Name= Age ', 'Value= 57 ', ENDITEM , 'Name= MaritalStaus ', 'Value= Married ', ENDITEM , LAST );
कहें कि हम योजना के नाम के रूप में एक उपयोगकर्ता-परिभाषित स्ट्रिंग का उपयोग करना चाहते हैं।
तो, हमें एक स्ट्रिंग को घोषित करना और परिभाषित करना होगा जैसा कि नीचे दिखाया गया है
char sPlanName() = ' MyFinancialPlan ';
String sPlanName 'एक C स्ट्रिंग है और इसलिए हमें इसे LR स्ट्रिंग (अनुरोध में उपयोग करने के लिए) में बदलने की आवश्यकता है।
हम नीचे दिखाए गए अनुसार shown lr_save_string 'फ़ंक्शन का उपयोग करते हैं:
lr_save_string(sPlanName,”LRPlanName”);
यह फ़ंक्शन LR पैरामीटर / वैरिएबल के लिए एक मान प्रदान करता है। यह दो विशेषताएँ लेता है - पहला गुण स्रोत (C स्ट्रिंग) है और दूसरी विशेषता गंतव्य (LR पैरामीटर / चर) है।
इसलिए यह फ़ंक्शन C वेरिएबल का मान बचाता है जिसे हमने LR पैरामीटर 'LRPlanName' में परिभाषित किया है।
अब हम VuGen अनुरोध में किसी भी अन्य पैरामीटर की तरह P LRPlanName ’को स्थानापन्न कर सकते हैं।
web_submit_data('MyPlan', 'Action= {pURL} ', 'Method= POST ', 'TargetFrame=', 'RecContentType= text/html ', 'Snapshot= t21.inf ', 'Mode= HTML ', ITEMDATA , 'Name= PlanId ', 'Value= 67213 ', ENDITEM , 'Name= PlanName ', 'Value= {LRPlanName} ', ENDITEM , 'Name= Age ', 'Value= 57 ', ENDITEM , 'Name= MaritalStaus ', 'Value= Married ', ENDITEM , LAST );
ध्यान दें कि जब हम इस स्क्रिप्ट को चलाते हैं, तो सभी Vusers और सभी पुनरावृत्तियों योजना नाम के समान मान लेंगे। इसलिए प्रत्येक रन के लिए योजना का नाम अद्वितीय बनाने के लिए, हम ऐसा कुछ कर सकते हैं।
char sPlanName() = ' MyFinancialPlan _{pVuserId}_{pIteration}'; lr_save_string( lr_eval_string(sPlanName),'LRPlanName' );
यहाँ ‘pVuserId’ और ation pIteration ’er Vuser ID’ और parameters Iteration Number ’पैरामीटर हैं (हमने अपने पिछले ट्यूटोरियल में पैरामीटर प्रकारों पर चर्चा की है)। इनका उपयोग योजना नाम में यह सुनिश्चित करने के लिए किया जाता है कि हमारे पास प्रत्येक Vuser और पुनरावृत्ति के लिए अद्वितीय नाम हैं।
Ev lr_eval_string ' फ़ंक्शन किसी भी एम्बेडेड मापदंडों का मूल्यांकन करने के बाद इनपुट स्ट्रिंग देता है। तो, इस मामले में, इस फ़ंक्शन का आउटपुट पहले Vuser के लिए 'MyFin FinancialPlan_1_1', पहले Vuser के दूसरे पुनरावृत्ति इत्यादि के लिए 'MyFin FinancialPlan_1_2' होगा।
और हां, हम जानते हैं कि क्या S lr_save_string ' कार्य करता है।
अब हम ऊपर दिखाए गए अनुसार subst LRPlanName ’पैरामीटर को प्रतिस्थापित कर सकते हैं।
परिदृश्य 2:लोडर वेरिएबल को C पूर्णांक में कैसे बदलें
अंतिम ट्यूटोरियल में, हमने यह समझने के लिए एक उदाहरण देखा कि हम किसी शर्त के आधार पर लेनदेन को मैन्युअल रूप से कैसे पास करते हैं या विफल करते हैं।
उदाहरण:
web_reg_find('Text= Welcome ','SaveCount= WelcomeCount ', LAST ); web_submit_data('login.pl', 'Action= http://127.0.0.1:1080/cgi-bin/login.pl ', 'Method= POST ', 'TargetFrame= body ', 'RecContentType= text/html ', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in= home ', 'Snapshot= t2.inf ', 'Mode= HTML ', ITEMDATA , 'Name= userSession ', 'Value= {corUserSession} ', ENDITEM , 'Name= username ', 'Value= jojo ', ENDITEM , 'Name= password ', 'Value= bean ', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= login.x ', 'Value= 66 ', ENDITEM , 'Name= login.y ', 'Value= 12 ', ENDITEM , LAST ); if( atoi (lr_eval_string('{WelcomeCount}'))>0) { lr_end_transaction('Login', LR_PASS ); } else { lr_end_transaction('Login', LR_FAIL ); }
हमने 'if' कथन का उपयोग 'SaveCount' विशेषता के साथ किया है। Of WelcomeCount ’पैरामीटर जो पाठ की घटनाओं की संख्या को बचाता है, का उपयोग सीधे‘ अगर 'की स्थिति में नहीं किया जा सकता है क्योंकि यह लोड रनर स्ट्रिंग है। इसलिए इस पैरामीटर को पहले C स्ट्रिंग में और फिर C पूर्णांक में बदलना होगा। Ev lr_eval_string ' तथा ‘अटोई’ इसकी देखभाल के लिए कार्यों का उपयोग (क्रमशः) किया जाता है।
‘अटोई’ C फ़ंक्शन एक C स्ट्रिंग को C पूर्णांक में परिवर्तित करता है।
इस रूपांतरण के बाद, इसे किसी अन्य C पूर्णांक की तरह उपयोग किया जा सकता है।
परिदृश्य 3:अनुरोध में यादृच्छिक मान कैसे भेजें
बहुत बार हम आवेदन परिदृश्यों के आसपास आते हैं, जहाँ हमें एक यादृच्छिक मूल्य (एक ड्रॉप डाउन से कहना) का चयन करना होता है। VuGen स्क्रिप्ट में हम इसे कैसे संभालते हैं? हम यह कैसे सुनिश्चित करते हैं कि हर पुनरावृत्ति के लिए यादृच्छिक मूल्य चुना जाता है? आइए इसे विस्तार से देखें।
आइए हम अपने Tours वेब टूर्स ’एप्लिकेशन का उदाहरण लें। जैसा कि हमने पहले देखा, हमारे पास ‘फ़्लाइट फ़्लाइट’ पेज है जहाँ हमें फ़्लाइट का चयन करना है।
मान लें कि हम सूची में पहले वाले को चुनते हैं। स्क्रिप्ट में संबंधित अनुरोध इस तरह है (जहां चयनित उड़ान के लिए संबंधित मूल्य)।
web_submit_data('reservations.pl_2', 'Action= http://127.0.0.1:1080/cgi-bin/reservations.pl ', 'Method= POST ', 'TargetFrame=', 'RecContentType= text/html ', 'Referer= http://127.0.0.1:1080/cgi-bin/reservations.pl ', 'Snapshot= t5.inf ', 'Mode= HTML ', ITEMDATA , 'Name= outboundFlight ', 'Value= 020 ;338;04/03/2018', ENDITEM , 'Name= numPassengers ', 'Value= 1 ', ENDITEM , 'Name= advanceDiscount ', 'Value= 0 ', ENDITEM , 'Name= seatType ', 'Value= Coach ', ENDITEM , 'Name= seatPref ', 'Value= None ', ENDITEM , 'Name= reserveFlights.x ', 'Value= 39 ', ENDITEM , 'Name= reserveFlights.y ', 'Value= 10 ', ENDITEM , LAST );
हमें पिछली प्रतिक्रियाओं में से एक से सभी चार उड़ानों के लिए संबंधित मूल्यों को पहले पकड़ना होगा। हम अनुरोध के पहले ation ORD = ALL ’विशेषता के साथ सहसंबंध समारोह (web_reg_save_param) का उपयोग कर सकते हैं जिनके जवाब में ये मूल्य हैं।
इसका उत्पादन इस तरह होगा जहां सहसंबंधित पैरामीटर 'cFlight' में चार उड़ानों के अनुरूप चार मान हैं।
अगला चरण बेतरतीब ढंग से इनमें से किसी एक मान का चयन करना और अनुरोध में सबमिट करना होगा। यह प्रयोग करके किया जा सकता है 'Lr_paramarr_random' नीचे दिखाए अनुसार कार्य करें।
strcpy (flightVal,lr_eval_string(lr_paramarr_random('cFlight')));
के लिए इनपुट 'Lr_paramarr_random' फ़ंक्शन एक पैरामीटर सरणी है और आउटपुट इस सरणी से एक यादृच्छिक मान है। तो यहाँ इस फंक्शन का आउटपुट चार उड़ान मूल्यों में से एक है। और जैसा कि यह यादृच्छिक मान एक LR स्ट्रिंग है, this lr_eval_string 'फ़ंक्शन का उपयोग किया जाता है (उसी स्ट्रिंग में परिवर्तित करने के लिए)।
‘Strcpy ' सी फ़ंक्शन अंत में इस मान को एक सी स्ट्रिंग चर 'फ्लाइटवैल' में कॉपी करता है।
अब फिर से हमें अनुरोध में भेजने में सक्षम होने के लिए इस स्ट्रिंग स्ट्रिंग को LR स्ट्रिंग में बदलना होगा।
lr_save_string(flightVal,'randomFlight'); web_submit_data('reservations.pl_2', 'Action= http://127.0.0.1:1080/cgi-bin/reservations.pl ', 'Method= POST ', 'TargetFrame=', 'RecContentType= text/html ', 'Referer= http://127.0.0.1:1080/cgi-bin/reservations.pl ', 'Snapshot= t5.inf ', 'Mode= HTML ', ITEMDATA , 'Name= outboundFlight ', 'Value= {randomFlight} ', ENDITEM , 'Name= numPassengers ', 'Value= 1 ', ENDITEM , 'Name= advanceDiscount ', 'Value= 0 ', ENDITEM , 'Name= seatType ', 'Value= Coach ', ENDITEM , 'Name= seatPref ', 'Value= None ', ENDITEM , 'Name= reserveFlights.x ', 'Value= 39 ', ENDITEM , 'Name= reserveFlights.y ', 'Value= 10 ', ENDITEM , LAST );
परिदृश्य 4:एक स्ट्रिंग को टोकन में कैसे विभाजित किया जाए
कहें कि एक ऐसा परिदृश्य है जहां हमें एक स्ट्रिंग को टुकड़ों / टोकन में विभाजित करना होगा। आइए हमारे Tours वेब टूर्स ’के आवेदन से उदाहरण लें जहां उड़ान मूल्य से 020 है ; 338; 04/03/2018 कहते हैं कि हमें केवल ‘338’ का उपयोग करना है, फिर हमें इस स्ट्रिंग को विभाजित करने और इसे एक चर में संग्रहीत करने की आवश्यकता है।
यह करने के लिए ‘स्ट्रटोक ' फ़ंक्शन का उपयोग किया जाता है।
'स्ट्रटोक' C फ़ंक्शन निर्दिष्ट वर्णों द्वारा सीमांकित स्ट्रिंग से एक टोकन लौटाता है। पहले आह्वान के बाद, हमें अगले टोकन प्राप्त करने के लिए स्ट्रिंग के मूल्य के रूप में as NULL ’पास करना होगा। नीचे दिए गए उदाहरण से पता चलता है कि सेमीकॉलन (?) सीमांकक के आधार पर उड़ान मान को विभाजित करने के लिए इस फ़ंक्शन का उपयोग कैसे किया जाता है।
उदाहरण:
मान लें कि फ़्लाइट वैल्यू को प्रासंगिक प्रतिक्रिया से पैरामीटर 'cFlight' में कैप्चर किया गया है।
char string(100); char *token; int i=1; strcpy(string,lr_eval_string('{cFlight}')); token=(char *)strtok(string,';'); lr_output_message('Token %d is %s',i,token); while(token != NULL) { i=i+1; token=(char *)strtok(NULL,';'); lr_output_message('Token %d is %s',i,token); }
इसका आउटपुट रिप्ले लॉग में देखा जा सकता है।
हम एक पैरामीटर में आवश्यक टोकन की प्रतिलिपि बना सकते हैं और इसका उपयोग कर सकते हैं।
परिदृश्य 5:डेटा को टेक्स्ट फ़ाइल में कैसे पढ़ें और डेटा कैसे लिखें
कभी-कभी बाहरी फ़ाइल से डेटा पढ़ना या बाहरी फ़ाइल पर डेटा लिखना आवश्यक हो सकता है। आइए देखते हैं कि हम एक वुगेन लिपि में यह कैसे करते हैं।
चलिए पहले देखते हैं कि टेक्स्ट फ़ाइल से डेटा कैसे पढ़ें।
उदाहरण: मान लें कि हमें एक्सएमएल को बाहरी डेटा फ़ाइल से पढ़ना है और इसे स्क्रिप्ट में अनुरोध के रूप में उपयोग करना है।
ऐसा करने के लिए, हम उपयोग करते हैं ‘फ़्रेड’ सी फ़ंक्शन।
यह फ़ंक्शन चार विशेषताएं लेता है:
बफर - डेटा स्ट्रीम को स्टोर करने के लिए बफर।
आकार - बफर का आकार।
गिनती - पढ़ने के लिए बाइट्स की संख्या।
file_pointer - फाइल पॉइंटर
उदाहरण कोड (टिप्पणियों के साथ)
char buffer(1000); //The buffer to store the read data stream char *filename = 'C:\Temp\mysamplefile.txt'; /* name and path of the file to be read from */ char * accessmode = 'r'; /* access mode r /r+ = open for reading , w /w+ = open for writing ,a /a+ = open for appending */ /* '+' sign indicates that the file must already exist */ long filepointer; /* declaring a file pointer */ int count=500; /* number of bytes to be read */ filepointer = fopen (filename, accessmode); /* open file in read mode */ fread (buffer,sizeof(char),count,filepointer); /* read from output file */ lr_save_string(buffer,'requestbody'); //we can use this as a LR parmeter and can use in the script now fclose (filepointer); //close the file pointer
ध्यान दें कि ऊपर दिखाए गए कोड में, हम पाठ फ़ाइल से 500 बाइट पढ़ते हैं। जाहिर है, हम हमेशा फ़ाइल का आकार नहीं जान सकते हैं। तो हम उपयोग कर सकते हैं Ek fseek ' तथा ‘फुटेल’ फ़ाइल के आकार को खोजने और उपयोग करने के लिए C फ़ंक्शंस (मैं इसका पता लगाने के लिए आपको छोड़ दूंगा) 'गिनती' की विशेषता ‘फ़्रेड’ तदनुसार कार्य करें।
अब देखते हैं कि टेक्स्ट फाइल पर डेटा कैसे लिखें।
उदाहरण: कहो कि हमारे पास एक स्क्रिप्ट है जो आदेश बनाती है और 'आदेश' उत्पन्न करती है। यदि हम एक परीक्षण में हमारी स्क्रिप्ट द्वारा बनाई गई सभी ऑर्डर आईडी जानना चाहते हैं, तो हम अपनी स्क्रिप्ट को बाहरी टेक्स्ट फ़ाइल में इन ऑर्डर आईडी को कॉपी कर सकते हैं।
‘फ़र्फ़रफ़’ - C फ़ंक्शन किसी फ़ाइल में स्वरूपित आउटपुट लिखता है।
यह फ़ंक्शन इन विशेषताओं को लेता है:
file_pointer - फाइल पॉइंटर
format_string - फ़ाइल को लिखने के लिए स्वरूपित स्ट्रिंग।
आर्ग - एक या एक से अधिक वैकल्पिक प्रिंट तर्क।
उदाहरण कोड नीचे दिखाया गया है। मान लें कि हमने 'आदेश' को 'पैरामीटर' में बदल दिया है और सहेजा है।
उदाहरण:
char *filename = 'C:\Temp\mysamplefile.txt'; /* name and path of the file to be created or edited */ char * accessmode = 'a+'; /* access mode r /r+ = open for reading , w /w+ = open for writing ,a /a+ = open for appending */ /* '+' sign indicates that the file must already exist */ long filepointer; /* declaring a file pointer */ filepointer = fopen (filename, accessmode); /* open file in append mode */ fprintf (filepointer, '%s
', lr_eval_string('{cOrderId}')); /* write orders id to output file */ fclose (filepointer); /* close the file pointer */
आशा है, अब हम बाहरी फ़ाइल में डेटा पढ़ने या लिखने से डेटा पढ़ने की अवधारणाओं के साथ अच्छे हैं (निश्चित रूप से ऊपर हमने जो चर्चा की थी, वही काम करने के अन्य तरीके हो सकते हैं)। सी में फ़ाइल संचालन पर गहन अध्ययन करना बहुत उपयोगी होगा (आप किसी भी अच्छे सी ट्यूटोरियल या पुस्तकों का उल्लेख कर सकते हैं) क्योंकि ये कई वास्तविक समय परिदृश्यों में बहुत आवश्यक हैं।
परिदृश्य 6:जब सीमाएं बदल रही हैं तो सहसंबंध को कैसे संभालें
सहसंबंध ट्यूटोरियल में, हमने प्रतिक्रिया से गतिशील मूल्यों को पकड़ने के लिए सीमा आधारित सहसंबंध समारोह (ओं) का उपयोग किया। लेकिन, क्या होगा अगर हमारे पास एक परिदृश्य है जहां सीमाएं बदल रही हैं? ऐसी स्थितियों से निपटने के कई तरीके हैं। आइए इन्हें विस्तार से देखें
a)) IC ’,‘ DIG ’और UM ALNUM’ झंडे का उपयोग करना:
I C - यह ध्वज वामन / वाम सीमा में मामले की अनदेखी करने के लिए वुगन को निर्देश देता है।
उदाहरण: यदि वाम सीमा कभी ऊपरी मामले में और कभी-कभी निचले मामले में होती है, तो हम इस ध्वज का उपयोग करते हैं।
web_reg_save_param ('corUserSession','LB/IC= name='userSession' value='','RB='/>', LAST);
आप प - यह ध्वज किसी भी एक संख्या पर विचार करने के लिए वुगन को निर्देश देता है जहां वाम / अधिकार सीमा में जंगली वर्ण is # का उपयोग किया जाता है।
कंपनियों है कि आप अपने उत्पादों की कोशिश करने के लिए भुगतान करते हैं
उदाहरण: यदि वाम सीमा (या दाईं सीमा) इस तरह बदल रही है (किसी विशेष स्थिति में केवल एक संख्या)।
GJHi3rty
1GJHi8rty
GJHi7rty
हम नीचे दिखाए गए अनुसार can DIG ’ध्वज का उपयोग कर सकते हैं जो बदलती संख्या का ध्यान रखेगा।
एलबी / डीआईजी = जीजेएचआई # रेती
बादाम - यह ध्वज वुगन को किसी भी एक वर्णमाला चरित्र पर विचार करने का निर्देश देता है जहां जंगली चरित्र '^' का उपयोग वाम / अधिकार सीमा में किया जाता है।
उदाहरण: यदि वाम सीमा (या दाईं सीमा) इस तरह बदल रही है (केवल एक विशेष स्थिति में केवल एक अल्फ़ान्यूमेरिक वर्ण)।
GJHi3rty
GJHiKrty
GJHitrty
हम नीचे दिखाए गए अनुसार can ALNUM ’ध्वज का उपयोग कर सकते हैं जो बदलते अक्षरांकीय वर्ण का ध्यान रखेगा
LB / ALNUM = GJHi ^ rty
इसके अलावा, हम एक साथ दो झंडे का उपयोग कर सकते हैं - जैसे 'ALNUMIC' जो 'ALNUM' और 'IC' दोनों है।
बी)) सेवलेन ’और set सेवऑफसेट’ विशेषताओं का उपयोग करना:
हम इन दो विशेषताओं का उपयोग कर सकते हैं 'Web_reg_save_param' फ़ंक्शन केवल बाएं / दाएं सीमाओं के स्थिर भाग को इनपुट करने के लिए उपयुक्त है।
ग) नियमित अभिव्यक्ति का उपयोग करना:
हम प्रयोग कर सकते हैं ‘Web_reg_save_param_regexp ' नियमित मूल्य से मेल खाने वाले गतिशील मान (एक पैरामीटर में) को बचाने के लिए सहसंबंध समारोह।
उदाहरण: मान लें कि जिस डायनामिक वैल्यू को हम कैप्चर करना चाहते हैं, वह दिए गए टेक्स्ट से 9 3959339 ’है।
PriceControl_ctl01 “Name = jack”, “Refid = 3959339” संतुलन
हम यहां सीमा आधारित सहसंबंध समारोह का उपयोग नहीं कर सकते हैं, क्योंकि ऊपर 'नाम' जैसे क्षेत्र का मान और लंबाई बदल सकती है (और इसलिए हम इसे बाईं या दाईं सीमा में उपयोग नहीं कर सकते हैं)।
हम उपयोग कर सकते हैं ‘Web_reg_save_param_regexp ' सहसंबंध समारोह इस समस्या की देखभाल करने के लिए नीचे दिखाया गया है।
web_reg_save_param_regexp('ParamName=corName', 'RegExp= PriceControl_ctl01 'Name=((a-z)+)', 'Refid=((0-9)+)' balance', 'Group=1','Ordinal=All', LAST);
नियमित अभिव्यक्ति समूहों को कोष्ठक में रखा जाता है और attribute समूह की विशेषता यह तय करती है कि किस समूह को निर्दिष्ट पैरामीटर (पहले विशेषता में) से संबंधित मैच को बचाने के लिए विचार किया जाए।
कुछ नियमित अभिव्यक्ति मिलान नीचे दिखाए गए हैं:
d - एकल अंक से मेल खाता है
w - एक एकल शब्द से मेल खाता है
(ए-जेड) + - ऊपरी मामले में किसी भी शब्द से मेल खाता है
(a-z) + - निचले मामले में किसी भी शब्द से मेल खाता है
(0-9) + - किसी भी संख्यात्मक मान से मेल खाता है
परिदृश्य 7:एक VuGen स्क्रिप्ट में एक फ़ंक्शन कैसे लिखें और उपयोग करें
किसी भी अन्य प्रोग्रामिंग भाषा की तरह, हम किसी फ़ंक्शन को मैन्युअल रूप से लिख सकते हैं / परिभाषित कर सकते हैं (आमतौर पर उपयोगकर्ता-परिभाषित फ़ंक्शन) और इसका उपयोग VuGen स्क्रिप्ट में कहीं भी कर सकते हैं।
आइए मान लें कि हमें किसी विशेष स्क्रिप्ट के प्रत्येक अनुरोध में एक अद्वितीय योजना नाम भेजना है। इसलिए कई बार आवश्यक कोड लिखने के बजाय (जो कि एक विशिष्ट नाम उत्पन्न करता है), हम एक फ़ंक्शन (जो एक अद्वितीय नाम उत्पन्न करता है) को परिभाषित कर सकते हैं और जब भी (और जहां भी) यह वुज़ेन स्क्रिप्ट में आवश्यक हो।
हालांकि एक VuGen स्क्रिप्ट में कार्य किसी भी कार्रवाई के अंदर लिखा जा सकता है, यह आम तौर पर अंदर लिखा जाता है 'Globals.h' फ़ाइल (VuGen स्क्रिप्ट के अतिरिक्त फ़ाइल अनुभाग के तहत) या एक नई बनाई गई फ़ाइल के अंदर (उसी section अतिरिक्त फ़ाइलें अनुभाग के तहत)। एक बार लिखे जाने के बाद, फ़ंक्शन को किसी भी एक्शन (एस) से बुलाया जा सकता है।
नीचे दी गई छवि एक उपयोगकर्ता-परिभाषित फ़ंक्शन दिखाती है below MyFunction ’जिसे als globals.h’ फ़ाइल के अंदर लिखा गया है।
जैसा कि ऊपर चर्चा की गई है, दूसरा तरीका एक नई फ़ाइल बनाना और उसके अंदर फ़ंक्शन लिखना है।
एक नई फ़ाइल बनाते समय याद रखने वाली एकमात्र बात यह है कि हमें इसे to globals.h 'फ़ाइल में शामिल करना होगा (जिसके बिना VuGen इस फ़ाइल को नहीं पहचानेगा)।
निष्कर्ष
इस प्रकार इस ट्यूटोरियल में, हमने देखा कि वुगन स्क्रिप्टिंग में कुछ वास्तविक समय की चुनौतियों से कैसे निपटना है और जब हम विभिन्न अनुप्रयोगों पर काम करते हैं तो हम स्पष्ट रूप से कई अन्य परिदृश्यों में आएंगे।
इसके अलावा, आपने महसूस किया होगा कि विभिन्न स्थितियों से निपटने के लिए C स्ट्रिंग फ़ंक्शंस और C फ़ाइल कार्रवाई बहुत आवश्यक (और उपयोगी) हैं। हालाँकि, मैं आपको सलाह दूंगा कि आप इन पर महारत हासिल करने में कुछ समय दें।
हमारे अगले ट्यूटोरियल में, हम कुछ महत्वपूर्ण पूर्व-परिभाषित फ़ंक्शंस देखेंगे और समझेंगे, जिनका उपयोग वुगन लिपियों में किया जाता है (हमने कुछ फ़ंक्शंस पहले ही देख लिए हैं)।
=> लोडरनर ट्यूटोरियल की पूरी श्रृंखला के लिए यहां जाएं
PREV ट्यूटोरियल | अगले ट्यूटोरियल
अनुशंसित पाठ
- लोडरनर VuGen स्क्रिप्टिंग का उपयोग करके वेब सेवा प्रदर्शन परीक्षण
- उन्नत यूनिक्स शैल स्क्रिप्टिंग: एरे, फाइल और स्ट्रिंग टेस्ट ऑपरेटर्स, विशेष चर
- एचपी लोडरनर ट्यूटोरियल के साथ लोड परीक्षण
- लोडरनर में वॉन रिकॉर्डिंग विकल्प
- LoadRunner VuGen स्क्रिप्ट फ़ाइलों और रनटाइम सेटिंग्स को कैसे सेट करें
- महत्वपूर्ण लोडरनर फ़ंक्शंस जिसका उपयोग उदाहरणों के साथ वुगेन लिपियों में किया जाता है
- माइक्रो फोकस लोडरनर का परिचय - लोडरनर ट्यूटोरियल # 1 के साथ लोड परीक्षण
- जेमीटर बीनशेल स्क्रिप्टिंग पार्ट 2