Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
LoadRunnerÓû§ÐÐΪģÄâÆ÷ ¡¶µÚÈýƪ¡·
 
ÒëÕߣºÄæÐÄ À´Ô´£º²©¿ÍÔ° ·¢²¼ÓÚ 2015-03-11
  5048  次浏览      34
 

Óû§ÐÐΪģÄâÆ÷¼ò³ÆVU£¬VUͨ¹ýÔËÐÐVU½Å±¾Ä£ÄâÁËÓû§¶ÔÈí¼þµÄ²Ù×÷ÐÐΪ¡£VUÊÇ»ùÓÚÍøÂçЭÒéµÄ¡£ºÜÃ÷ÏÔ£¬±»²â·þÎñÆ÷ÊÇͨ¹ý¸÷ÖÖ¸÷ÑùµÄÍøÂçЭÒéÓë¿Í»§¶Ë´ò½»µÀµÄ¡£VUÒª¡°Æ­¹ý¡±±»²â·þÎñÆ÷£¬µ±È»¾ÍÒª×ñÊØÕâЩЭÒ飬°´¹æ¾Ø¡¢°´²½ÖèÀ´Ö´Ðж¯×÷£¬·ñÔò¾Í»á³Ô¡°±Õßþ¡±¡£

»ùÓÚÍøÂçЭÒéµÄ½Å±¾µÄÒ»¸öºÃ´¦ÊÇ£¬ÎÒÃÇ¿ÉÒÔʹÓÃÏà¶ÔÉÙµÄÓ²¼þ×ÊÔ´£¬À´Éú³É´óÁ¿µÄÐéÄâÓû§¸ºÔØ¡£Ïà±È֮ϣ¬WinRunnerºÍQTP½Å±¾Ê±»ùÓÚ½çÃæÊ¼þµÄ£¬ËüÔÚһ̨Ö÷»úÉÏͬʱֻÄÜÔËÐÐÒ»¸öÐéÄâÓû§µÄ½Å±¾£¬ÒòΪһ¸öÐéÄâÓû§»áÕ¼ÓÃÕû¸öÖ÷»úµÄ×ÊÔ´¡£

ËùÒÔ¿ÉÒÔÓÐÈçϽáÂÛ£º

1.VU²»¹ØÐÄÓû§ÔÚ½çÃæ·¢ÉúµÄÊÂÇé(ÈçÓû§Êó±êÒÆ¶¯¡¢ÌîдWebFormÊý¾Ý)µÈ¡£

2.VUÖеIJÙ×÷¹ØÁªÓë½çÃæÉϵIJÙ×÷¹ØÁªÊDz»Ò»Öµġ£ÈçÕý³£Óû§µÄ²Ù×÷ÊÇ£¬´ò¿ªÁбíÒ³£¬µã»÷Ò»ÐнøÈëÏêÏ¸Ò³Ãæ¡£¶øLoadRunnerÖ»¼Ç¼һ¸öÇëÇó£¬ÒÔ¼°Õâ¸öÇëÇóµÄ²ÎÊýÖ±½Ó½øÈ룬¶ÔËüÀ´Ëµ¸ù±¾Ã»Óдò¿ªÁбíÒ³µÄ²½Öè¡£

Ò»¡¢Â¼Öƽű¾

VUͨ¹ýÂ¼ÖÆÓû§ÔÚ¿Í»§¶ËÈí¼þµÄ²Ù×÷À´Ö±½ÓÉú³É½Å±¾£¬Óû§µÄÿ¸öЭÒé¼¶µÄ²Ù×÷ÒÔLoadRunnerµÄAPIº¯Êý·½Ê½¼Ç¼Ôڽű¾Àï¡£»Ø·Å½Å±¾µÄʱºò£¬Í¨¹ýÖ´ÐÐAPIº¯ÊýÀ´Ä£Äâ×î³õÓû§µÄ²Ù×÷¶¯×÷¡£

1¡¢Ñ¡ÔñЭÒé

ЭÒéÓкöàÖÖ£¬ÊÇÓÃÄÄÖÖЭÒ鵱ʱÄ㿪·¢µÄʱºòÄã×ÔÈ»»áÖªµÀ¡£Ä¿Ç°ÎÒÒ»°ãÓõͼÊÇWeb(HTTP/HTML)ЭÒé¡£

µ±ÎÒÃÇÊÔͼ´´½¨Ò»¸öеÄVUserµÄʱºò£¬¾Í»áµ¯³öЭÒéÑ¡Ôñ¶Ô»°¿ò¡£

ÓÐÁ½ÖÖЭÒéÑ¡Ôñ·½Ê½£ºµ¥Ð­ÒéģʽºÍ¶àЭÒéģʽ¡£

(1)¡¢µ¥Ð­Òéģʽ£ºµ±Óû§ÒÔµ¥Ð­ÒéÂ¼ÖÆÊ±£¬VUÖ»Â¼ÖÆÔڼȶ¨Ð­ÒéÉϵÄÓû§²Ù×÷£¬ÔÚVUÖÐÎÒÃÇ¿ÉÒÔʹÓõ¥Ð­ÒéģʽѡÔñÈκÎÒ»ÖÖЭÒé¡£

(2)¡¢¶àЭÒéģʽ£ºµ±Óû§ÒÔ¶àЭÒéÂ¼ÖÆÊ±£¬VUÂ¼ÖÆ¼¸¸öЭÒéÉϵIJÙ×÷¡£²¢²»ÊÇÈÎÒâµÄЭÒé¶¼¿ÉÒÔ×éºÏ³É¶àЭÒéģʽ¡£

2¡¢¹æ»®½Å±¾½á¹¹

ÔÚÂ¼ÖÆÊ±£¬Óû§¿ÉÒÔÑ¡ÔñÄÄЩ²Ù×÷Éú³É½Å±¾ÔÚvuser_init¡¢ActionºÍvuser_endÖУ¬Í¬Ê±£¬Ò²¿ÉÒÔÔÚÂ¼ÖÆÊ±ËæÊ±¼ÓÈëtransactionµÄ¶¨Òå¡¢×¢ÊͺÍͬ²½µã¡£VUÂ¼ÖÆ¹¤¾ßÌõÈçÏÂËùʾ£º

3¡¢HTTP VuserÖеÄURL modeºÍHTML mode

ÔÚÂ¼ÖÆÖ®Ç°£¬ÎÒÃÇÐèÒªÉèÖÃÂ¼ÖÆÑ¡Ï

ÔÚĬÈÏÇé¿öÏ£¬Ñ¡Ôñ¡°HTML-based script¡±£¬ËµÃ÷½Å±¾ÖвÉÓÃHTMLÒ³ÃæµÄÐÎʽÀ´±íʾ£¬ÕâÖÖ·½Ê½µÄScript½Å±¾ÈÝÒ×ά»¤£¬ÈÝÒ×Àí½â£¬ÍƼöÒÔÕâÖÖ·½Ê½Â¼ÖÆ¡£

¡°URL-based script¡±ËµÃ÷½Å±¾Öеıíʾ²ÉÓûùÓÚURLµÄ·½Ê½£¬ËùÓеÄHTTPµÄÇëÇó¶¼»á±»Â¼ÖÆÏÂÀ´£¬µ¥¶ÀÉú³Éº¯Êý£¬ËùÒÔURLģʽÉú³ÉµÄ½Å±¾ÏÔµÃÓÐЩÔÓÂÒ¡£

Action()
{
web_url("Login",
"URL=http://127.0.0.1:9090/Account/Login",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
}

¶øÒÔHTMLÄ£Ê½Â¼ÖÆ£¬ÔòÉú³ÉÈçϽű¾£º

Action()
{
    web_url("Login", 
        "URL=http://127.0.0.1:9090/Account/Login", 
        "Resource=0", 
        "RecContentType=text/html", 
        "Referer=", 
        "Snapshot=t1.inf", 
        "Mode=HTTP", 
        LAST);

    web_url("Default.css", 
        "URL=http://127.0.0.1:9090/Resources/CSS/Default.css", 
        "Resource=1", 
        "RecContentType=text/css", 
        "Referer=http://127.0.0.1:9090/Account/Login", 
        "Snapshot=t4.inf", 
        LAST);

    web_url("gwu1.jpg", 
        "URL=http://127.0.0.1:9090/Resources/Images/login/gwu1.jpg", 
        "Resource=1", 
        "RecContentType=image/jpeg", 
        "Referer=http://127.0.0.1:9090/Account/Login", 
        "Snapshot=t5.inf", 
        LAST);
¡¡¡¡... Ê¡ÂÔN¸ö
}

ÊÇÑ¡ÔñHTML»¹ÊÇURLÂ¼ÖÆ£¬ÓÐÒÔϲο¼Ô­Ôò£º

1.»ùÓÚä¯ÀÀÆ÷µÄÓ¦ÓóÌÐòÍÆ¼öʹÓÃHTML-based script¡£

2.²»ÊÇ»ùÓÚä¯ÀÀÆ÷µÄÓ¦ÓóÌÐòÍÆ¼öʹÓÃURL-based script¡£

3.Èç¹û»ùÓÚä¯ÀÀÆ÷µÄÓ¦ÓóÌÐòÖаüº¬ÁËJavaScript²¢ÇҸýű¾Ïò·þÎñÆ÷²úÉúÁËÇëÇ󣬱ÈÈçDataGrid·ÖÒ³°´Å¥µÈ£¬Ò²ÒªÊ¹ÓÃURL-based script·½Ê½Â¼ÖÆ¡£

4.»ùÓÚä¯ÀÀÆ÷µÄÓ¦ÓóÌÐòÖÐʹÓÃÁËHTTPS°²È«Ð­Ò飬ʹÓÃURL-based script·½Ê½Â¼ÖÆ¡£

4¡¢²é¿´ÈÕÖ¾

ÔÚÂ¼ÖÆºÍ»Ø·ÅµÄʱºò£¬VU»á·Ö±ð°Ñ·¢ÉúµÄʼþ¼Ç¼³ÉÈÕÖ¾Îļþ£¬ÕâЩÈÕÖ¾ÓÐÀûÓÚÎÒÃǸú×ÙVUºÍ·þÎñÆ÷µÄ½»»¥¹ý³Ì¡£ÎÒÃÇ¿ÉÒÔͨ¹ýVUÊä³ö´°¿Ú¹Û²ìÈÕÖ¾£¬Ò²¿ÉÒÔµ½½Å±¾Ä¿Â¼ÖÐÖ±½Ó²é¿´Îļþ¡£

1¡¢Ö´ÐÐÈÕÖ¾(Execution Log£¬Ð°汾ÊÇReplay Log)

½Å±¾ÔËÐÐʱµÄÊä³ö¶¼¼ÇÔÚÕâ¸öLogÀï¡£

¡°Ö´ÐÐÈÕÖ¾¡±ÖÐʹÓÃÁ˲»Í¬ÑÕÉ«µÄÎı¾¡£

1.ºÚÉ«£º±ê×¼Êä³öÐÅÏ¢¡£

2.ºìÉ«£º±ê×¼´íÎóÐÅÏ¢¡£

3.ÂÌÉ«£ºÓÃÒýºÅÀ¨ÆðÀ´µÄÎÄ×Ö×Ö·û´®(ÀýÈçURL)¡£

4.À¶É«£ºÊÂÎñÐÅÏ¢(¿ªÍ·¡¢½áÊø¡¢×´Ì¬ºÍ³ÖÐøÊ±¼ä)¡£

2¡¢Â¼Öƽű¾(Recording Log)

µ±Â¼Öƽű¾Ê±,Vugen»áÀ¹½ØClient¶Ë(ä¯ÀÀÆ÷)ÓëServer¶Ë(·þÎñÆ÷)Ö®¼äµÄ¶Ô»°£¬²¢ÇÒͨͨ¼Ç¼ÏÂÀ´£¬²úÉú½Å±¾¡£ÔÚVugenµÄRecording LogÖУ¬ÎÒÃÇ¿ÉÒÔÕÒµ½ä¯ÀÀÆ÷Óë·þÎñÆ÷Ö®¼äËùÓеĶԻ°£¬°üº¬Í¨ÐÅÄÚÈÝ¡¢ÈÕÆÚ¡¢Ê¼þ¡¢ä¯ÀÀÆ÷µÄÇëÇó¡¢·þÎñÆ÷µÄÏìÓ¦ÄÚÈݵȡ£½Å±¾ºÍRecording Log×î´óµÄ²î±ðÔÚÓÚ£¬½Å±¾Ö»¼Ç¼ÁËClient¶ËÒª¶ÔServer¶ËµÄÇëÇóÄÚÈÝ£¬¶øRecording LogÔòÊÇÍêÕû¼Ç¼¶þÕߵĶԻ°¡£ËùÒÔ£¬Í¨¹ýÂ¼ÖÆÈÕÖ¾£¬ÎÒÃÇÄܹ»¸ü¼ÓÇå³þµØ¿´µ½¿Í»§¶ËÓë·þÎñÆ÷µÄ½»»¥¡£

3¡¢²úÉúÈÕÖ¾(Generation Log)

²úÉúÈÕÖ¾¼Ç¼Á˽ű¾Â¼ÖƵÄÉèÖá¢ÍøÂçʼþµ½½Å±¾º¯ÊýµÄת»¯¹ý³Ì¡£

Ìáʾ£º½Å±¾ÄÜÕý³£ÔËÐкóÓ¦½ûÓÃÈÕÖ¾¡£ÒòΪ²úÉú¼°Ð´ÈëÈÕÖ¾ÐèÕ¼ÓÃÒ»¶¨×ÊÔ´¡£

¶þ¡¢»Ø·Å½Å±¾

µ¥»÷run°´Å¥£¬»ò°´¿ì½Ý¼ü¡°F5¡±¾Í¿ÉÒÔÔËÐнű¾¡£VU½Å±¾ÔËÐй¤¾ßÌõÈçÏ£º

Â¼ÖÆÍê³ÉÖ®ºó£¬×îºÃÏÈÔËÐÐÒ»´Î½Å±¾£¬ÒòΪÔÚÅܲâÊÔ֮ǰ±ØÐëÏÈÈ·±£½Å±¾Ã»ÓдíÎó¡£

Èý¡¢¹ØÁª

¹ØÁªµÄ×÷ÓÃÊǿͻ§¶Ëÿ´ÎµÄ·ÃÎÊ£¬·þÎñÆ÷¶¼»áÓж¯Ì¬µÄÄÚÈݲúÉú£¬Èç¹ûÕâ¸ö¶¯Ì¬ÄÚÈݸú²»ÉÏ£¬Ôò·þÎñÆ÷¾Í±¨´íµÄÇé¿ö¡£ÈçSessionId£¬¼ÙÈçÿ´Î·ÃÎÊ£¬·þÎñÆ÷¶¼ÎªÆä·ÖÅäÒ»¸ösessionºÅ£¨Ëæ»úµÄ£©µ¼Ö±¨´íʱ£¬´Ëʱ¾ÍÒª¶Ôseesion×ö¹ØÁª¡£

Õâ¸ö¿´ÆðÀ´ºÃÏñºÜÄѵÄÑù×Ó£¬ÏÈÌø¹ý£¬ Óõ½ÔÙѧ¡£

ËÄ¡¢½Å±¾ÊÓͼºÍÊ÷ÊÓͼ

VUÌṩÁ½ÖÖÊÓͼÀ´²é¿´½Å±¾µÄÄÚÈÝ£¬Ò»¸öÊǽű¾ÊÓͼ£¬ÁíÒ»¸öÊÇ»ùÓÚͼ±êµÄÊ÷ÊÓͼ¡£

ËùÓÐÀàÐ͵ÄVuser¶¼ÓÐÎı¾½Å±¾ÊÓͼ£¬µ«ÊÇÖ»ÓÐÌØ¶¨µÄVuser²Å»áÓÐÊ÷ÊÓͼ¡£

1¡¢Ê÷ÊÓͼ(Tree View)

Tree ViewÒ²½Ð×ö»ùÓÚiconµÄView£¬Ò²¾ÍÊÇ˵£¬½Å±¾µÄÿ¸öº¯ÊýÔÚTree ViewÖж¼ÒÔÒ»¸ö´øÓÐiconµÄ½ÚµãÀ´´úÌæ¡£¿ÉÒÔµã»÷¹¤¾ßÀ¸=>"Tree"°´Å¥»òÕßÔÚ¡°View¡±=>¡°Tree View¡±£¬ÏÔʾVUÊ÷ÊÓͼ¡£

Tree ViewµÄºÃ´¦ÊÇʹÓû§¸ü·½±ãµØÐ޸Ľű¾£¬Tree ViewÖ§³ÖÍÏ×§£¬Óû§¿ÉÒÔ°ÑÈÎÒâÒ»¸ö½ÚµãÍÏ×§µ½ËûÏëÒªµÄµØ·½£¬´Ó¶ø´ïµ½Ð޸Ľű¾µÄÄ¿µÄ¡£Óû§¿ÉÒÔÓÒ¼üµ¥»÷½Úµã£¬½øÐÐÐÞ¸Ä/ɾ³ýµ±Ç°º¯Êý²ÎÊýÊôÐÔ£¬Ôö¼Óº¯ÊýµÈ²Ù×÷£¬Í¨¹ýTree ViewÄܹ»Ôö¼ÓLoadRunnerÌṩµÄ²¿·Ö³£ÓÃͨÓú¯ÊýºÍЭÒéÏà¹Øº¯Êý¡£±ÈÈçWeb Service Vuser¾Í²»ÄÜͨ¹ýTree View²ÎÊý»¯Ò»Ð©¸´ÔÓµÄÊý¾ÝÀàÐÍ£¬ÔÚÕâÖÖÇé¿öÏ£¬¾ÍÐèÒªScript ViewÁË¡£

2¡¢½Å±¾ÊÓͼ(Script View)

ÔÚScript ViewÖÐÄܹ»¿´µ½Ò»ÐÐÐеÄAPIº¯Êý£¬Script ViewÊʺÏһЩ¸ß¼¶Óû§£¬Í¨¹ýScript ViewÏò½Å±¾ÖÐÔö¼ÓһЩÆäËûµÄAPIº¯Êý¡£¿ÉÒÔµ¥»÷¹¤¾ßÀ¸ÉϵÄ"Script"°´Å¥»òÕßÔÚ"View"²Ëµ¥ÏÂÑ¡Ôñ"Script View"£¬ÏÔʾVU½Å±¾ÊÓͼ¡£

µ±Óû§ÔÚScript ViewÖжԽű¾×öÁËÐÞ¸ÄÖ®ºó£¬Tree ViewÒ²»á×öÏàÓ¦µÄ±ä»¯¡£Èç¹û½Å±¾ÓÐÓï·¨´íÎó£¬Script View½«²»ÄÜת»¯ÎªTree View»òËõÂÔͼ¡£

3¡¢Àí½âSnapshot

napshot,¹ËÃû˼Ò壬¾ÍÊÇ¿ìÕÕ£¬´ú±íµ±Ç°µÄstep£¬SnapshotÏÔʾÁ˿ͻ§¶ËÖ´ÐÐÍ굱ǰstepºóµÄÑù×Ó£¬ÔÚTree ViewÓÒ²àµÄframeÖпÉÒԲ鿴Snapshot£¬ÔÚLoadRunner 8.0ÖУ¬Snapshot°üº¬Page View¡¢Client RequestºÍServer Response¡£

SnapshotÓÐÁ½ÖÖÉú³É·½Ê½£¬Ò»ÖÖÊÇÔÚrecordµÄʱºòÉú³É£¬ÁíÒ»ÖÖÊÇÔÚreplayµÄʱºòÉú³É¡£¿ÉÒÔ¶Ô±ÈÁ½ÖÖ·½Ê½Éú³ÉµÄSnapshot£¬ÒÔ·¢ÏÖÄÄЩÊǶ¯Ì¬Öµ£¬ÐèÒª²ÎÊý»¯¡£

Îå¡¢ÊÂÎñ¡¢Í¬²½µãºÍ˼¿¼Ê±¼ä

1¡¢Transaction(ÊÂÎñ)

ÔÚLoadRunnerÀÎÒÃǶ¨ÒåÊÂÎñÖ÷ÒªÊÇΪÁ˶ÈÁ¿·þÎñÆ÷µÄÐÔÄÜ¡£Ã¿¸öÊÂÎñ¶ÈÁ¿·þÎñÆ÷ÏìÓ¦Ö¸¶¨µÄVuserÇëÇóËùÓеÄʱ¼ä£¬ÕâЩÇëÇó¿ÉÒÔÊǼòµ¥ÈÎÎñ,Ò²¿ÉÒÔÊǸ´ÔÓÈÎÎñ¡£

Òª¶ÈÁ¿ÊÂÎñ£¬ÐèÒª²åÈëVuserº¯ÊýÒÔ±ê¼ÇÈÎÎñµÄ¿ªÊ¼ºÍ½áÊø¡£Ôڽű¾ÄÚ£¬¿ÉÒÔ±êʶµÄÊÂÎñ²»ÊÜÊýÁ¿ÏÞÖÆ£¬Ã¿¸öÊÂÎñµÄÃû³Æ¶¼²»Í¬¡£

ÔÚ³¡¾°Ö´ÐÐÆÚ¼ä£¬Controller½«¶ÈÁ¿Ö´ÐÐÿ¸öÊÂÎñËùÓõÄʱ¼ä¡£³¡¾°ÔËÐк󣬿ÉʹÓÃLoadRunnerµÄͼºÍ±¨¸æÀ´·ÖÎö¸÷¸öÊÂÎñµÄ·þÎñÆ÷ÐÔÄÜ¡£

ÉèÖÃTransactionµÄ·½·¨ÈçÏ£º

1.Ñ¡ÔñÐÂTransaction¿ªÊ¼µã£¬ÔÚ±»¶ÈÁ¿½Å±¾¶Î֮ǰ²åÈëlr_start_transaction¡£

2.Ñ¡ÔñÐÂTransaction½áÊøµã£¬ÔÚ±»¶ÈÁ¿½Å±¾¶ÎÖ®ºó²åÈëlr_end_transaction¡£

ÏÂÃæµÄ½Å±¾Àý×ÓÖн«µÇ½²Ù×÷ÉèΪһ¸öÃûΪ"login"µÄÊÂÎñ£º

lr_start_transaction("login_start");

web_submit_data("login", 
"Action=http://127.0.0.1:9090/account/login", 
"Method=POST", 
"RecContentType=text/html", 
"Referer=http://127.0.0.1:9090/Account/Login", 
"Snapshot=t19.inf", 
"Mode=HTTP", 
ITEMDATA, 
"Name=userName", "Value=xpj", ENDITEM, 
"Name=submitBtn", "Value= ", ENDITEM, 
"Name=password", "Value=123", ENDITEM, 
LAST);

lr_end_transaction("login_end",LR_AUTO);

Èç¹ûÊÖ¹¤²åÈëµÄTransactionÈç¹û³ÆÎª¡°ÏÔʽÊÂÎñ¡±µÄ»°£¬ÄÇôLoadRunner»¹ÌṩÁËÒ»ÖÖ¡°ÒþʽÊÂÎñ¡±µÄ»úÖÆ£¬ÔÚVUµÄRun-time SettingsÖÐÓÖ³ÆÎª¡°×Ô¶¯ÊÂÎñ¡±¡£

ÔÚRun-time SettingsÖУ¬ÔÚMiscellaneousÑ¡ÏµÄAutomatic TransactionsÖж¨Òå×Ô¶¯ÊÂÎñ¡£

Vuser => Run-time Setting => Miscellaneous

¿ÉÒÔÉèÖÃLoadRunnerÖ±½Ó°´ÊÂÎñ´¦ÀíVuserÖеÄÿ¸öAction»òstep¡£ÕâÀActionÖ¸µÄÊÇvuser_init¡¢ActionºÍvuser_endÈý´óº¯Êý£¬¶østepÖ¸µÄÊÇLoadRunnerÖ´ÐеÄÿ¸öº¯Êý¡£LoadRunner½«ActionÃû»òstepÖ¸¶¨ÎªÊÂÎñÃû¡£Ä¬ÈÏÇé¿öÏ£¬½«ÆôÓð´ActionʹÓÃ×Ô¶¯ÊÂÎñµÄ¹¦ÄÜ¡£

1.Òª½ûÓð´²Ù×÷ʹÓÃ×Ô¶¯ÊÂÎñµÄ¹¦ÄÜ£¬Çå³ý"Define each action as a transaction"¸´Ñ¡¿ò(ĬÈÏÇé¿öÏÂÆôÓÃ)¡£

2.ÒªÆôÓð´²½ÖèʹÓÃ×Ô¶¯ÊÂÎñµÄ¹¦ÄÜ£¬Ñ¡ÖÐ"Define each step as a transaction"¸´Ñ¡¿ò¡£

TransactionµÄ¿ªÊ¼µãºÍ½áÊøµã±ØÐëÔÚÒ»¸öActionÖУ¬¿çÔ½¶à¸öActionÊDz»ÔÊÐíµÄ¡£TransactionµÄÃû×ÖÔڽű¾ÖбØÐëÊÇΨһµÄ£¬µ±È»Ò²°üÀ¨ÔÚ¶à¸öActionµÄ½Å±¾ÖÐΨһ¡£ÄãÒ²¿ÉÒÔÔÚÒ»¸öTransactionÖд´½¨ÁíÍâÒ»¸öTransaction£¬½Ð×öNested Transaction¡£

2¡¢Rendezvous Pointͬ²½µã

ÔÚϵͳÉÏÄ£Äâ½ÏÖØµÄÓû§¸ºÔØ£¬ÐèҪͬ²½¸÷¸öVuserÒÔ±ãÔÚͬһʱ¿ÌÖ´ÐÐÈÎÎñ¡£Í¨¹ý´´½¨¼¯ºÏµã£¬¿ÉÒÔÈ·±£¶à¸öVuserͬʱִÐвÙ×÷¡£µ±Ä³¸öVuserµ½´ï¸Ã¼¯ºÏµãʱ£¬Controller»á½«Æä±£Áô£¬Ö±µ½²ÎÓë¸Ã¼¯ºÏµÄÈ«²¿Vuserµ½´ï¡£Controller²ÅÔÊÐíVuserÖ´ÐС£

¿Éͨ¹ý½«¼¯ºÏµã²åÈëµ½Vuser½Å±¾ÖÐÀ´Ö¸¶¨»ØºÏλÖá£ÔÚVuserÖ´Ðнű¾²¢Óöµ½¼¯ºÏµãʱ£¬½Å±¾½«ÔÝÍ£Ö´ÐУ¬Vuser½«µÈ´ýControllerµÄÔÊÐí²Å¼ÌÐøÖ´ÐС£Vuser±»´Ó¼¯ºÏÊͷź󣬽«Ö´Ðнű¾ÖеÄÏÂÒ»¸öÈÎÎñ¡£

lr_rendezvous("the begin port");¡¡¡¡//¼¯ºÏµã
web_submit_data("login",
"Action=http://127.0.0.1:9090/account/login",
"Method=POST",
"RecContentType=text/html",
"Referer=http://127.0.0.1:9090/Account/Login",
"Snapshot=t19.inf",
"Mode=HTTP",
ITEMDATA,
"Name=userName", "Value=xpj", ENDITEM,
"Name=submitBtn", "Value= ", ENDITEM,
"Name=password", "Value=4297F44B13955235245B2497399D7A93", ENDITEM,
LAST);

×¢Ò⣺

1.Ö»ÄÜÔÚActionÖÐÌí¼Ó¼¯ºÏµã(²»ÄÜÔÚvuser_init»òvuser_endÖÐÌí¼Ó)¡£

2.ͬ²½µãÖ»ÓжàÓû§²¢·¢µÄ³¡¾°£¬Í¬²½µãµÄÒâÒå²Å±íÏÖ³öÀ´¡£

3¡¢×¢ÊÍ

LoadRunnerÖ§³ÖCÓïÑÔµÄ×¢ÊÍ·½·¨£º

¶àÐÐ×¢ÊÍ£º

/*
ÕâÊǶàÐÐ×¢ÊÍ
*/

µ¥ÐÐ×¢ÊÍ£º

//ÕâÊǵ¥ÐÐ×¢ÊÍ

4¡¢Think Time(˼¿¼Ê±¼ä)

Óû§ÔÚÖ´ÐÐÁ½¸öÁ¬Ðø²Ù×÷ÆÚ¼äµÈ´ýµÄʱ¼ä³ÉΪ¡°Ë¼¿¼Ê±¼ä¡±¡£VuserʹÓÃlr_think_timeº¯ÊýÄ£ÄâÓû§Ë¼¿¼Ê±¼ä¡£Â¼ÖÆVuser½Å±¾Ê±£¬Vugen½«Â¼ÖÆÊµ¼ÊµÄ˼¿¼Ê±¼ä²¢½«ÏàÓ¦µÄlr_think_time½Å±¾²åÈëµ½Vuser½Å±¾¡£´Ë¹¦ÄÜͨ¹ýlr_think_timeʵÏÖ¡£

lr_think_time²ÎÊýµÄµ¥Î»ÊÇÃ룬±ÈÈçlr_think_time(5)Òâζ×ÅLoadRunnerÖ´Ðе½´ËÌõÓï¾äʱ£¬Í£Áô5Ã룬ȻºóÔÙ¼ÌÐøÖ´ÐкóÃæµÄÓï¾ä¡£

Èç¹û²»ÏëÔڽű¾ÖÐÖ´ÐÐThink TimeÓï¾ä£¬ÐèÒªÖðÌõÓï¾äɾ³ý£¬ÕâÊǷdz£Âé·³£¬LoadRunnerÌṩÁËÔÙRun-time SettingsÖпÉÒÔÉèÖÃÖ±½ÓºöÂÔThink Time£¬¶ø²»ÓÃÐ޸Ľű¾¡£

ÓÐThink Time±ÈûÓÐThink TimeµÄ½Å±¾¶Ô·þÎñÆ÷Ôì³ÉµÄѹÁ¦¸üС£¬µ«ÊÇÓÐThink Time²ÅÊǸü·ûºÏÓû§µÄʵ¼Ê¹¤×÷³¡¾°µÄ¡£

Vuser => Run-time Settings => General => Think Time

Áù¡¢Êý¾ÝÇý¶¯-²ÎÊý»¯(Parameters)

Êý¾ÝÇý¶¯¾ÍÊǰѲâÊԽű¾ºÍ²âÊÔÊý¾Ý·ÖÀ뿪À´µÄÒ»ÖÖ˼Ï룬½Å±¾ÌåÏÖ²âÊÔÁ÷³Ì£¬Êý¾ÝÌåÏÖ²âÊÔ°¸Àý¡£Êý¾Ý²»Ð´ËÀÔڽű¾ÀïÃæ£¬ÕâÑù´ó´óÌá¸ßÁ˽ű¾µÄ¿É¸´ÓÃÐÔ¡£

1¡¢ÎªÊ²Ã´ÐèÒª²ÎÊý»¯

ÔÚÂ¼ÖÆ³ÌÐòÔËÐеĹý³ÌÖУ¬Vugen(½Å±¾Éú³ÉÆ÷)×Ô¶¯Éú³ÉÁ˽ű¾ÒÔ¼°Â¼Öƹý³ÌÖÐʵ¼ÊÓõ½µÄÊý¾Ý¡£ÔÚÕâ¸öʱºò£¬½Å±¾ºÍÊý¾ÝÊÇ»ìÔÚÒ»ÆðµÄ¡£

ÈçµÇ¼²Ù×÷£º

web_submit_data("login", 
"Action=http://127.0.0.1:9090/account/login",
"Method=POST",
"RecContentType=text/html",
"Referer=http://127.0.0.1:9090/Account/Login",
"Snapshot=t19.inf",
"Mode=HTTP",
ITEMDATA,
"Name=userName", "Value=xpj", ENDITEM,
"Name=password", "Value=123123", ENDITEM,
LAST);

ÔڵǼ²Ù×÷ÖУ¬ºÜÃ÷ÏÔxpjÓë123123ÊÇÌîÈëµÄÊý¾Ý£¬Èç¹ûControllerÀïÒÔ¶àÓû§·½Ê½ÔËÐÐÕâ¸ö½Å±¾µÄʱºò£¬Ã¿¸öÐéÄâÓû§¶¼»áÒÔͬÑùµÄÓû§Ãû"robin"¡¢ÃÜÂë"123123"È¥µÇ¼ϵͳ¡£ÕâÑù×öÐÔÄܲâÊÔ£¬²»Ì«ÑÛ¾¦£¬·þÎñÆ÷´ó¶à»á²ÉÓûº´æ¹¦ÄÜÌá¸ßϵͳÐÔÄÜ£¬ÒÔͬÑùµÄÓû§Ãû/ÃÜÂëµÇ¼ϵͳµÄ»º´æÃüÖÐÂÊ»áºÜ¸ß£¬Ò²Òª¿ìµÃ¶à¡£

Òò´Ë£¬LoadRunnerÖ§³Ö²ÎÊý±äÁ¿¡£


web_submit_data("login",
"Action=http://127.0.0.1:9090/account/login",
"Method=POST",
"RecContentType=text/html",
"Referer=http://127.0.0.1:9090/Account/Login",
"Snapshot=t19.inf",
"Mode=HTTP",
ITEMDATA,
"Name=userName", "Value={username}", ENDITEM,
"Name=password", "Value={password}", ENDITEM,
LAST);

²ÎÊý»¯ºó£¬Óû§Ãûxpj±»Ò»¸ö²ÎÊý{username}Ìæ»»,ÃÜÂë±»ÁíÍâÒ»¸ö²ÎÊý{password}Ìæ»»¡£ÆäÖÐ{username}ºÍ{password}·Ö±ðºÍ²ÎÊýÎļþ¹ØÁª£¬Ôڽű¾ÔËÐÐʱ£¬Óû§ÃûºÍÃÜÂëµÄÖµ´Ó²ÎÊý{username}ºÍ{password}ÖлñµÃ¡£¶øÎÒÃÇ»áÔÚºóÃæ½éÉÜLoadRunnerÓÐÒ»Ì×»úÖÆÀ´±£Ö¤²ÎÊýµÄʹÓúͱ仯£¬ÕâÑù¾ÍʵÏÖÁ˽ű¾ÓëÊý¾ÝµÄ·ÖÀë¡£

²ÎÊý»¯ÊÇÎÒÃÇѧϰLoadRunnerÖо­³£Óõ½µÄ¹¦ÄÜ¡£³ýÁËʵÏÖÊý¾ÝÇý¶¯Ö®Í⣬²ÎÊý»¯½Å±¾»¹ÓÐÒÔÏÂÁ½¸öÓŵ㣺

1.¿ÉÒÔʹ½Å±¾µÄ³¤¶È±ä¶Ì£»

2.¿ÉÒÔÔöÇ¿½Å±¾µÄ¿É¶ÁÐԺͿÉά»¤ÐÔ£»

ʵ¼ÊÉÏ£¬²ÎÊý»¯µÄ¹ý³ÌÈçÏ£º

1.Ôڽű¾ÖÐÓòÎÊýÈ¡´ú³£Á¿Öµ£»

2.ÉèÖòÎÊýµÄÊôÐÔÒÔ¼°Êý¾ÝÔ´£»

2¡¢²ÎÊýµÄ´´½¨

LoadRunner¶Ô½Å±¾ÖвÎÊý¸öÊýûÓÐÏÞÖÆ£¬ÎÒÃÇ¿ÉÒÔÔÚÒ»¸ö½Å±¾Öд´½¨ÈÎÒâ¶à¸ö²ÎÊý¡£

Ñ¡Ôñ²ÎÊýÀàÐÍ:

Parameter name:ÊäÈë²ÎÊýÃû³Æ£»

Parameter type:Ñ¡Ôñ²ÎÊýÀàÐÍ£»

²ÎÊýÀàÐÍ˵Ã÷

1.Data Files:ÕâÊÇÎÒÃÇ×ʹÓõÄÒ»ÖÖ²ÎÊýÀàÐÍ£¬ËüµÄÊý¾Ý´æÔÚÓÚÎļþÖС£¸ÃÎļþµÄÄÚÈÝ¿ÉÒÔÊÖ¹¤Ìí¼Ó£¬Ò²¿ÉÒÔÀûÓÃLoadRunnerµÄData Wizard´ÓÊý¾Ý¿âÖе¼³ö¡£

2.User-Defined Functions:µ÷ÓÃÍⲿDLLº¯ÊýÉú³ÉµÄÊý¾Ý

3.Internal Data:ÐéÄâÓû§ÄÚ²¿²úÉúµÄÊý¾Ý¡£Internal Data°üÀ¨ÒÔϼ¸ÖÖÀàÐÍ£º

Date/Time:Óõ±Ç°µÄÈÕÆÚ/ʼþÌæ»»²ÎÊý¡£ÒªÖ¸¶¨Ò»¸öDate/TimeµÄ¸ñʽ£¬²Ëµ¥ÖпÉÒÔÑ¡Ôñ¸ñʽ¡£¸ñʽҪÓë½Å±¾ÖÐÂ¼ÖÆµÄ¸ñʽ±£³ÖÒ»Ö¡£

Group Name:ÓÃÐéÄâÓû§×éÃû³ÆÌæ»»²ÎÊý¡£ÔÚ´´½¨scenarioµÄʱºò£¬Äã¿ÉÒÔÖ¸¶¨ÐéÄâÓû§×éµÄÃû³Æ¡£

Load Generator Name:Óýű¾¸ºÔØÉú³ÉÆ÷µÄÃû³ÆÌæ»»²ÎÊý¡£¸ºÔØÉú³ÉÆ÷ÊÇÐéÄâÓû§ÔÚÔËÐеļÆËã»ú¡£

Iteration Number:Óõ±Ç°µÄµü´úÊýÄ¿Ìæ»»²ÎÊý¡£

Random Number:ÓÃÒ»¸öËæ»úÊýÌæ»»²ÎÊý¡£Í¨¹ýÖ¸¶¨×î´óÖµºÍ×îСֵÀ´ÉèÖÃËæ»úÊýµÄ·¶Î§¡£

Unique Number:ÓÃÒ»¸öΨһµÄÊý×ÖÀ´Ìæ»»²ÎÊý¡£Äã¿ÉÒÔÖ¸¶¨Ò»¸öÆðʼÊý×ÖºÍÒ»¸ö¿éµÄ´óС¡£

VuserID:Ó÷ÖÅ䏸ÐéÄâÓû§µÄIDÌæ»»²ÎÊý£¬IDÊÇÓÉLoadRunnerµÄ¿ØÖÆÆ÷ÔÚscenarioÔËÐÐʱÉú³ÉµÄ¡£Èç¹û´Ó½Å±¾Éú³ÉÆ÷ÔËÐнű¾µÄ»°£¬ÐéÄâÓû§µÄID×ÜÊÇ-1.

È»ºóΪ¸Ã²ÎÊýÉèÖò»Í¬µÄÖµ¡£

Èç¹ûÏëÓÃÒÔǰ¶¨Òå¹ýµÄ²ÎÊýÀ´´úÌæ³£Á¿×Ö·û´®µÄ»°£¬Ñ¡ÖиÃ×Ö·û´®£¬µ¥»÷ÓÒ¼ü£¬È»ºóÑ¡Ôñ¡°Use existing parameters¡±£¬´Óµ¯³öµÄ×Ӳ˵¥ÖÐÑ¡Ôñ²ÎÊý£¬»òÕßÓÃ"Select from Parameter List"À´´ò¿ª²ÎÊýÁбí¶Ô»°¿ò¡£

¶ÔÓÚÒѾ­ÓòÎÊýÌæ»»¹ýµÄµØ·½£¬Èç¹ûÏëÈ¡»ØÔ­À´µÄÖµ£¬ÄÇô¾ÍÔÚ²ÎÊýÉϵ¥»÷ÓÒ¼ü£¬È»ºóÑ¡Ôñ"Restore Original value"¡£

²»ÊÇËùÓеÄÊý¾Ý¶¼¿ÉÒÔ²ÎÊý»¯

ÔÚLoadRunnerÖУ¬Ö»Óк¯ÊýµÄ²ÎÊý²ÅÄܲÎÊý»¯£¬²»ÄܲÎÊý»¯·Çº¯Êý²ÎÊýµÄÊý¾Ý¡£

Èçlr_eval_string£¬ÎÒÃÇ¿ÉÒÔÔÚVuser½Å±¾ÖеÄÈκεط½Ê¹ÓÃËüÀ´²ÎÊý»¯Êý¾Ý£¬lr_eval_stringÓÃÀ´µÃµ½Ò»¸ö²ÎÊýµÄÖµ£¬¶ø²ÎÊý¿ÉÒÔÔ¤ÏÈÔÚLoadRunnerµÄParameter ListÀﶨÒåºÃ£¬Ò²¿ÉÒÔÊÇ֮ǰͨ¹ýÆäËûº¯Êý´´½¨µÄ¡£

//ͨ¹ýlr_save_datetime°ÑÆßÌìºóµÄʱ¼ä±£´æÔÚdate²ÎÊýÖÐ
lr_save_datetime("%d %m %y", DATE_NOW + (ONE_DAY * 7),"date");
//ͨ¹ýlr_eval_string°Ñdate²ÎÊýÖеÄֵȡ³öÀ´£¬lr_output_messageµÄÊä³öֵΪÆßÌìºóµÄʱ¼ä
lr_output_message("Date is s%",lr_eval_string("{date}"));

¸ü¶àµÄº¯Êý¿ÉÒÔ·­²éLoadRunnerº¯ÊýÊֲᡣlr_eval_stringº¯ÊýµÄ·µ»ØÖµÊÇÒ»¸öÖ¸Ïò²ÎÊýÖµµÄÖ¸Õ룬Èç¹ûÕâ¸öÖ¸ÕëÏòµÄÄÚ´æÊÇLoadRunnerÄÚ²¿·ÖÅäµÄ£¬Ã¿´ÎIterationºó×Ô¶¯ÊÍ·Å¡£Èç¹ûÔÚIterationÖл¹Óжà²ãÑ­»·½øÐвÎÊý»¯£¬ÄÇô×îºÃ²»ÒªÊ¹ÓÃlr_eval_stringÁË£¬Õâ»áµ¼ÖÂÄÚ´æ³Ù³Ù²»ÄÜÊÍ·Å¡£ÔÚÕâÖÖÇé¿öÏ£¬Ó¦¸ÃʹÓÃlr_eval_string_ext£¬Í¬Ê±Åä¶ÔʹÓÃlr_eval_string_ext_freeÀ´¼°Ê±ÊÍ·ÅÄÚ´æ¡£

3¡¢¶¨Òå²ÎÊýµÄÊôÐÔ

1¡¢Êý¾ÝÎļþ

Êý¾ÝÎļþ°üº¬×Žű¾Ö´Ðйý³ÌÖÐÐéÄâÓû§·ÃÎʵÄÊý¾Ý¡£¾Ö²¿ºÍÈ«¾ÖÎļþÖж¼¿ÉÒÔ´æ´¢Êý¾Ý¡£¿ÉÒÔÖ¸¶¨ÏÖÓеÄASCIIÎļþ¡¢Óýű¾Éú³ÉÆ÷´´½¨Ò»¸öеÄÎļþ»òÕßÒýÈëÒ»¸öÊý¾Ý¿â¡£Êý¾ÝÎļþÖеÄÊý¾ÝÊÇÒÔ±íµÄÐÎʽ´æ´¢µÄ¡£Ò»¸öÎļþÖпÉÒÔ°üº¬ºÜ¶à²ÎÊýÖµ¡£Ã¿Ò»Áаüº¬Ò»¸ö²ÎÊýµÄÊý¾Ý£¬ÁÐÖ®¼äÓ÷ָô·û¸ô¿ª£¬±ÈÈçÓöººÅ¡£

Èç¹ûʹÓÃÎļþ×÷Ϊ²ÎÊýµÄÊý¾ÝÔ´£¬±ØÐëÖ¸¶¨ÒÔÏÂÄÚÈÝ£ºÎļþµÄÃû³ÆºÍλÖᢰüº¬Êý¾ÝµÄÁС¢Îļþ¸ñʽ¡¢°üÀ¨Áеķָô·û¡¢¸üз½·¨¡£

Èç¹û²ÎÊýµÄÀàÐÍÊÇ"File"£¬´ò¿ª²ÎÊýÊôÐÔ(Parameter Properties)¶Ô»°¿ò£¬ÉèÖÃÎļþÊôÐÔÈçÏ£º

(1)¡¢ÔÚ"File path"ÖÐÊäÈëÎļþµÄλÖ㬻òÕßµ¥»÷"Browse"°´Å¥Ö¸¶¨Ò»¸öÒÑÓÐÎļþµÄλÖã¬Èçͼ£º

ÔÚĬÈÏÇé¿öÏ£¬ËùÓÐеÄÊý¾ÝÎļþÃû¶¼ÊÇ"parameter_name.dat"£¬×¢Ò⣬ÒÑÓеÄÊý¾ÝÎļþµÄºó׺±ØÐëÊÇ.dat¡£

(2)¡¢µ¥»÷"Edit With Notepad"°´Å¥£¬´ò¿ª¼Çʱ¾£¬ÀïÃæµÚÒ»ÐÐÊDzÎÊýµÄÃû³Æ£¬µÚ¶þÐÐÊDzÎÊýµÄ³õʼֵ¡£Ê¹ÓÃÖîÈ綺ºÅÖ®ÀàµÄ·Ö¸ô·û½«Áиô¿ª¡£¶ÔÓÚÿһ¸öеıíÐпªÊ¼Ò»ÐÐеÄÊý¾Ý¡£

ÔÚûÓÐÆô¶¯¼Çʱ¾µÄÇé¿öÏÂÈç¹ûÏëÌí¼ÓßÖ£¬¾ÍÔÚ²ÎÊýÊôÐÔ¶Ô»°¿òÖе¥»÷"Add Column"°´Å¥£¬´ò¿ª"Add new column"¶Ô»°¿ò¡£ÊäÈëÐÂÁеÄÃû³Æ£¬µ¥»÷"OK"°´Å¥£¬½Å±¾Éú³ÉÆ÷¾Í»á½«¸ÃÁÐÌí¼Óµ½±íÖУ¬²¢ÏÔʾ¸ÃÁеijõʼֵ¡£

(3)¡¢ÔÚ"Select column"²¿·Ö£¬ÖÂÃüÑ¡Ôñ²ÎÊýÊý¾ÝµÄÁС£¿ÉÒÔÖ¸¶¨ÁÐÃû»òÁкš£ÁкÅÊǰüº¬ÄãËùÐèÒªÊý¾ÝµÄÁеÄË÷Òý£»ÁÐÃûÏÔʾÔÚÿÁеĵÚÒ»ÐС£

(4)¡¢ÔÚ"Column delimiter"ÖÐÊäÈëÁзָô·û£¬¿ÉÒÔÖ¸¶¨¶ººÅ¡¢¿Õ¸ñ·ûµÈ¡£

(5)¡¢ÔÚ"First data line"ÖУ¬Ôڽű¾Ö´ÐеÄʱºòÑ¡ÔñµÚÒ»ÐÐÊý¾ÝʹÓá£ÁбêÌâÊǵÚ0ÐУ¬Èô´ÓÁбêÌâºóÃæµÄµÚÒ»ÐпªÊ¼µÄ»°£¬ÄÇô¾ÍÔÚ"First data line"ÖÐÊäÈë1£»Èç¹ûûÓÐÁбêÌ⣬¾ÍÊäÈë0£»

(6)¡¢ÔÚ"Select next row"ÖÐÊäÈë¸üз½·¨£¬ÒÔ˵Ã÷ÐéÄâÓû§ÔÚ»ñÈ¡µÚÒ»ÐÐÊý¾Ýºó£¬ÏÂÒ»ÐÐÊý¾Ý°´ÕÕʲô¹æÔòÀ´È¡¡£·½·¨¿ÉÒÔÊÇ£ºË³ÐòµÄ(Sequential)¡¢Ëæ»úµÄ(Random)¡¢Î¨Ò»µÄ(Unique)£¬»òÕßÓëÆäËû²ÎÊý±íÏàͬµÄÐÐ(Same Line as..)¡£

˳Ðò(Sequential):¸Ã·½·¨Ë³ÐòµØ¸øÐéÄâÓû§·ÖÅä²ÎÊýÖµ¡£È¡µÄʱºò»áÖð´ÎÈ¡ÏÂÒ»ÐÐÊý¾Ý£¬µ½×îºóÒ»ÌõÓÖÑ­»·»ØÈ¡µÚÒ»ÐС£

Ëæ»ú(Random):¸Ã·½·¨ÔÚÿ´Îµü´úµÄʱºò»á´ÓÊý¾Ý±íÖÐËæ»úȡһÐÐÊý¾Ý¡£

Ψһ(Unique):¸Ã·½·¨·ÖÅäÒ»¸öΨһÓÐ˳ÐòµÄÖµ¸øÃ¿¸öÐéÄâÓû§¡£10ÐÐÊý¾Ý£¬ÄÜ·Ö10´Î¡£µÚ11¸öÐéÄâÓû§À´È¡LoadRunner»á±¨´í£¬ÌáʾÊý¾Ý²»¹»Óá£

ÓëÒÔǰ¶¨ÒåµÄ²ÎÊýȡͬһÐÐ(Same Line As <parameter>):¸Ã·½·¨´ÓÒÔǰ¶¨Òå¹ýµÄ²ÎÊýÖÐͬÑùµÄÒ»ÐзÖÅäÊý¾Ý£¬µ«±ØÐëÖ¸¶¨°üº¬ÓиÃÊý¾ÝµÄÁС£ÔÚÏÂÀ­ÁбíÖлá³öÏÖ¶¨Òå¹ýµÄËùÓвÎÊýÁÐ±í¡£×¢Ò⣺ÖÁÉÙÆäÖеÄÒ»¸ö²ÎÊý±ØÐëÊÇSequential¡¢Random»òUnique¡£

NUser,password
xpj,111¡¡¡¡¡¡¡¡//Ç°Ãæ¶¨ÒåÁËxpj£¬ÔòºóÃæÊÇ111(ͬһÐÐ)
fzc3,222
fzc1,333

(7)¡¢Update value on,Êý¾ÝµÄ¸üз½·¨

ÎÒÃÇ×öÊÂÖ÷Òª¿¼ÂÇ3¸öÒòËØ£ºÊ²Ã´Ê±ºò×ö£¬Ê²Ã´µØµã×ö£¬»¹ÓÐÔõô×ö¡£¶ÔÓ¦²ÎÊý±íµÄ¶ÁÈ¡¹æÔòÀ´Ëµ£¬ÉÏÃæµÄSelect next rowÖ¸µÄÊÇÔõôȡÐÂÖµ£¬ÊÇ˳Ðò»¹ÊÇËæ»úµÈ¡£¶øÕâÀïUpdate value onÖ¸µÄÊÇʲôʱºòÈ¡ÐÂÖµ¡£

LoadRunner²¢²»ÊÇÿ´Îȡֵ¶¼ÊÇҪȡÐÂÖµµÄ¡£ËùÒÔ¾ÍÓÐÁËÒÔϼ¸ÖÖÈ¡ÐÂÖµµÄ²ßÂÔ£º

Each iteration:ÿ´Îµü´ú¾ÍҪȡÐÂÖµ(ÔÚͬһ¸öµü´úÖУ¬ÎÞÂÛ¶Á¼¸´Î²ÎÊý£¬»ñµÃµÄ¶¼ÊÇͬһ¸ö²ÎÊýÖµ)¡£

Each occurrence:ֻҪȡһ´Î£¬¾ÍҪеÄ(ͬһ¸öµü´úÖУ¬¶ÁÒ»´Î²ÎÊý£¬¾ÍҪȡÆäÐÂÖµ£¬¶øÐÂÖµ´ÓÄÄÀïÀ´£¬ÓÐSelect next rowÀ´¹æ¶¨)¡£

Once:ÔÚËùÓеÄÑ­»·Öж¼Ê¹ÓÃͬһ¸öÖµ(ֻȡһ´Î£¬Ò²¾ÍÊÇ˵£¬Õâ¸ö²ÎÊýÖ»ÓÐÒ»¸öÖµ)¡£

(8)¡¢When out of values£¬³¬³ö·¶Î§£º£¨Ñ¡ÔñÊý¾ÝλUniqueʱ²Å¿ÉÓõ½£©

Abort Vuser:ÖÐÖ¹¡£

Continue in cyclic manner:¼ÌÐøÑ­»·È¡Öµ¡£

Continue with last value:È¡×îºóÒ»¸öÖµ¡£

(9)¡¢Allocate Vuser values in the ControllerÔÚ¿ØÖÆÆ÷ÖзÖÅäÖµ£º(Ñ¡ÔñÊý¾ÝΪuniqueʱ²Å¿ÉÓõ½)

Automatically allocate block size:×Ô¶¯·ÖÅä¡£

Allocate()calues for each Vuser:Ö¸¶¨Ò»¸öÖµ¡£

4¡¢¸ß¼¶-´ÓÒÑ´æÔÚµÄÊý¾Ý¿âÖе¼Èë²ÎÊýÊý¾Ý

LoadRunnerÔÊÐíÄãÀûÓòÎÊý»¯´ÓÒѾ­´æÔÚµÄÊý¾Ý¿âÖе¼ÈëÊý¾Ý¡£¿ÉÒÔʹÓÃÏÂÁÐÁ½ÖÖ·½Ê½Ö®Ò»£º

(1)¡¢Ê¹ÓÃMicrosoft Query(ÒªÇóÔÚϵͳÉÏÏȰ²×°MS Query)¡£

(2)¡¢Ö¸¶¨Êý¾Ý¿âÁ¬½Ó×Ö·û´®ºÍSQLÓï¾ä¡£

Óû§½Å±¾Éú³ÉÆ÷ÔÚ´ÓÊý¾Ý¿âÖе¼ÈëÊý¾ÝµÄ¹ý³ÌÖÐÌṩÁËÒ»¸öÏòµ¼¡£ÔÚÏòµ¼ÖУ¬Ö¸Ã÷ÈçºÎµ¼ÈëÊý¾Ý¡£Í¨¹ýMS Query´´½¨²éѯÓï¾ä»òÕßÖ±½ÓÊéдSQLÓï¾ä¡£ÔÚµ¼ÈëÊý¾ÝÒÔºó£¬ÒÔ.datΪºó׺²¢×÷ΪÕý¹æµÄ²ÎÊýÎļþ±£´æ¡£Òª¿ªÊ¼µ¼ÈëÊý¾Ý¿âÖÐÊý¾ÝµÄ¹ý³Ì£¬ÔÚ²ÎÊýÊôÐÔ¶Ô»°¿òÖе¥»÷"Data Wizard"°´Å¥£¬Ôò´ò¿ªÊý¾Ý¿â²éѯÏòµ¼¡£

ÓÉÓÚµÚÒ»ÖÖÒª°²×°MS Query£¬ÏÂÃæ½éÉܵڶþÖÖ·½Ê½¡£

Ö¸¶¨Êý¾Ý¿âÁ¬½Ó»òSQLÓï¾ä

1.Ñ¡Ôñ"Specify SQL statement manually"£¬ÏÂÒ»²½£»

2.´ò»÷"Create"°´Å¥£¬Ö¸¶¨Ò»¸öеÄÁ¬½Ó×Ö·û´®¡£

3.Ñ¡ÔñÒÑÓеÄÊý¾ÝÔ´£¬»òÕßµ¥»÷"н¨"°´Å¥´´½¨Ò»¸öеÄÊý¾ÝÔ´¡£Ïòµ¼½«ÌáʾÄãÍê³É´´½¨ODBCÊý¾ÝÔ´µÄ¹ý³Ì¡£ÔÚÍê³Éºó£¬Á¬½Ó×Ö·û´®¾Í»áÔÚÁ¬½Ó×Ö·û´®¿òÖÐÏÔʾ³öÀ´¡£

µã»÷ÏÂÒ»²½£¬ÔÚÑ¡ÔñÒ»¸ö·¾¶ÓÃÓÚ±£´æÎļþÊý¾ÝÔ´¡£×¢Òâºó׺ÊÇ.dsn¡£

ÏÂÒ»²½ºó£¬µã»÷Íê³É¡£

´Ëʱ£¬ÔÚDÅÌ»áÉú³ÉÒ»¸öD:xxx.dsnÎļþ¡£

ÔÚµ¯³öµÄ¶Ô»°¿òÖÐÊäÈëÊý¾Ý¿âÁ¬½ÓµÄÐÅÏ¢

4.ÔÚSQL statement¿òÖУ¬ÊäÈë»òÕ³ÌùSQLÓï¾ä¡£

5.ÊäÈëSQLÓï¾äºó£¬µ¥»÷"Finish"°´Å¥¡£Êý¾Ý¿â¼Ç¼½«ÒÔdataÎļþµÄÐÎʽÏÔʾÔÚ²ÎÊýÁбí¶Ô»°¿òÖС£

6.ÔÚ"Select column"²¿·ÖÖУ¬Ö¸¶¨°üº¬µ±Ç°²ÎÊýÊý¾ÝµÄÁС£Äã¿ÉÒÔÖ¸¶¨ÁкŻòÕßÁÐÃû¡£

7.´Ó"Select next row"ÁбíÖÐÑ¡ÔñÒ»¸ö¸üз½·¨À´¸æËßÐéÄâÓû§Ôڽű¾Ö¸¶¨µÄ¹ý³ÌÖÐÈçºÎÑ¡Ôñ±íÖеÄÊý¾Ý¡£¿ÉÑ¡ÏîÊÇ£ºSequential¡¢Random¡¢Unique»òÕßSame Line as¡£

8.Èç¹û´ÓUpdate value onÖÐÑ¡Ôñ"Each iteration"£¬ÐéÄâÓû§ÔÚÿ´Îµü´úµÄʱºò¶¼»áʹÓÃеÄÒ»ÐÐÊý¾Ý¶ø²»ÊÇÖØ¸´Í¬ÑùµÄÊý¾Ý¡£

4¡¢¼ì²éµã(Check point)

1¡¢ÎªÊ²Ã´ÐèÒª¼ì²éµã

LoadRunnerµÄºÜ¶àAPIº¯ÊýµÄ·µ»ØÖµ»á¸Ä±ä½Å±¾µÄÔËÐнá¹û¡£±ÈÈçweb_findº¯Êý£¬Èç¹ûËü²éÕÒÆ¥ÅäµÄ½á¹ûΪ¿Õ£¬ËüµÄ·µ»ØÖµ¾ÍÊÇLR_FAIL£¬Õû¸ö½Å±¾µÄÔËÐнá¹ûÒ²½«ÖÃΪFAIL£»·´Ö®£¬²éÕÒÆ¥Åä³É¹¦£¬Ôòweb_find·µ»ØÖµÊÇLR_PASS£¬Õû¸ö½Å±¾µÄÔËÐнá¹ûÖÃΪPASS¡£¶ø½Å±¾µÄ½á¹ûÔò·´Ó¦ÔÚControllerµÄ×´Ì¬Ãæ°åÉϺÍAnalysisͳ¼Æ½á¹ûÖС£

µ«Êǽö½öͨ¹ý½Å±¾º¯ÊýÖ´Ðнá¹ûÀ´¾ö¶¨Õû¸ö½Å±¾µÄ³É¹¦/ʧ°Ü£¬Õâ²¢²»ÑϽ÷¡£ÒòΪ½Å±¾ÍùÍùÊÇÔÚÖ´ÐÐÒ»¸öÒµÎñÁ÷³Ì£¬VU½Å±¾º¯Êý±¾ÉíÊÇЭÒé¼¶µÄ£¬ËüÖ´ÐеÄʧ°Ü»áÒýÆðÕû¸öÒµÎñµÄʧ°Ü£¬µ«ËüÔËÐгɹ¦È´Î´±ØÒâζ×ÅÒµÎñ»á³É¹¦¡£±ÈÈ磬Ҫ²â100È˵Ǽһ¸öWebÓʼþϵͳ£¬´ËÓʼþϵͳÏÞÖÆ²»ÔÊÐíͬһ¸öIPµÇ¼Á½¸öÓû§¡£Õâʱ£¬Èç¹ûLoadRunnerûÓпªÆô¶àIPÆÛÆ­¹¦Äܵϰ£¬µÚÒ»¸öÐéÄâÓû§µÇ¼³É¹¦ºó£¬µÚ¶þ¸öÐéÄâÓû§ÊÔͼµÇ¼£¬ÏµÍ³½«·µ»ØÒ»¸öÒ³Ãæ£¬ÌáʾÓû§"ÄãÒѾ­µÇ¼±¾ÏµÍ³£¬Çë²»ÒªÖØ¸´µÇ¼£¡"¡£ÔÚÕâÖÖ³¡¾°Ï£¬Èç¹ûûÓÐÉè¼ì²éµãÀ´ÅжÏÕâ¸öÒ³Ãæ£¬ÄÇôVUÈÏΪËüÒѾ­³É¹¦µØ·¢ËÍÁËÇëÇ󣬲¢½Óµ½ÁËÒ³Ãæ½á¹û(http״̬Âë200£¬ËäÈ»ÊǸö´íÎóÒ³Ãæ)¡£ÕâÑùVU¾ÍÈÏΪÕâ¸öÇëÇóʱ³É¹¦µÄ£¬µ«ÊÂʵÕâ´ÎÇëÇóÓÃÓÚÐÔÄܲâÊÔ½á¹ûÊDz»×¼È·µÄ¡£Õâ¸öʱºò£¬ÎÒÃǾÍÒª²ÉÓüì²éµãÀ´ÅжϽá¹û¡£

¼ì²éµã(Check Point)²¢²»ÊÇÒ»¸öLoadRunnerÀïרÓеĸÅÄî¡£ÔÚWinRunnerºÍQTPÖоÍÓмì²éµã¡£¶ÔÓÚ×Ô¶¯»¯²âÊÔÀ´½²£¬¼ì²éµãÊÇÒ»¸öºÜÖØÒªµÄ¹¦ÄÜ£¬ËüµÄ×÷ÓÃÊÇÑéÖ¤³ÌÐòµÄÔËÐнá¹ûÊÇ·ñÓëÔ¤ÆÚ½á¹ûÏà·û¡£

2¡¢¼ì²éµãʵʩ1:ContentCheck¶¨Òå

ÔÚ"µ¼º½ÌõVuser => Run-time settings => ContentCheck"ÖУ¬ÕâÀïµÄÉèÖÃÊÇΪÁËÈÃVugen¼ì²âºÎÖÖÒ³ÃæÎª´íÎóÒ³Ãæ¡£Èç¹û±»²âµÄWebÓ¦ÓÃûÓÐʹÓÃ×Ô¶¨Òå´íÎóÒ³Ãæ£¬ÄÇôÕâÀï²»Óøü¸Ä£»Èç¹û±»²âµÄWebϵͳʹÓÃÁË×Ô¶¨Òå´íÎóÒ³Ãæ£¬ÄÇôÕâÀïÐèÒª¶¨Ò壬ÒÔ±ãÈÃVugenÔÚÔËÐÐÖмì²â£¬·þÎñÆ÷·µ»ØµÄÒ³ÃæÊÇ·ñ°üº¬Ô¤¶¨ÒåµÄ×Ö·û´®£¬´Ó¶øÅжϸÃÒ³ÃæÊÇ·ñΪ´íÎóÒ³Ãæ£¬Èç¹ûÊÇ£¬Vugen¾ÍÍ£Ö¹ÔËÐУ¬Ö¸Ê¾ÔËÐÐʧ°Ü¡£

3¡¢¼ì²éµãʵʩ¶þ£º¼ì²éº¯Êý

ÁíÍâÒ»ÖÖÉèÖ÷½·¨ÊÇÔÚWeb VuserÀͨ¹ý¼ì²éº¯ÊýÀ´Íê³É¼ì²éµã¹¦ÄÜ¡£Web VuserÌṩImage CheckºÍText CheckÁ½ÖÖ·½Ê½£¬ÆäÔ­Àí¾ÍÊÇÔÚÉÏÒ»¸öÇëÇóÒ³ÃæµÄº¯ÊýÍê³Éºó£¬ÔËÐмì²éº¯Êý£¬ÔÚ½á¹ûÒ³ÃæÖÐËÑË÷Ö¸¶¨µÄͼƬ»ò¹Ø¼üÎÄ×ֵȡ£

¼ì²é¹Ø¼ü×ÖʾÀý£º

web_url("Login", 
"URL=http://127.0.0.1:9090/Account/Login",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTTP",
LAST);
web_find("login Check",
"expect=notfound",
"matchcase=yes",
"onfailure=abort",
"report=failure",
"repeat=no",
"what=Ò³ÃæÒÑɾ³ý",
LAST
)

ÔÚÕâ¸öÀý×ÓÖУ¬web_findº¯ÊýÔÚloginÒ³ÃæÖÐËÑË÷"Ò³ÃæÒÑɾ³ý"¹Ø¼ü×Ö¡£ÓйØweb_findº¯ÊýµÄ¸÷¸ö²ÎÊýµÄº¬ÒåÒÔ¼°Ê¹Ó÷½·¨¡£

¼ì²éͼƬʾÀý£º

web_url("Login", 
"URL=http://127.0.0.1:9090/Account/Login",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTTP",
LAST);
web_image_check("NotFount",
new String[]{"Alt = NotFound",
web.LAST});

web_image_checkÔÚloginÒ³ÃæÖвéÕÒaltÊôÐÔΪNotFountµÄͼƬ¡£

VUµÄWeb Vuser»¹ÌṩÁ˺Íweb_findÊ®·ÖÀàËÆµÄÁíÍâÒ»¸ö¼ì²éµãº¯Êý£ºweb_reg_find¡£

web_reg_findÀïµÄregÒâΪע²á(register)¡£Òò´Ëweb_reg_findºÍweb_findµÄ²»Í¬Ö®´¦ÊÇweb_reg_findÊÇÏÈ×¢²á£¬ºó²éÕÒ£»¶øweb_findÊDzéÕÒÇ°ÃæµÄÇëÇó½á¹û¡£Òò´Ë£¬ÎÒÃÇÔÙʹÓÃweb_reg_findº¯ÊýµÄʱºò£¬½«Ëü·ÅÔÚÇëÇóÓï¾äµÄÇ°Ãæ¡£

web_reg_find("Text=ABC","SaveCount=abc_count",LAST);
web_url("Login",
"URL=http://127.0.0.1:9090/Account/Login",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTTP",
LAST);
if(strcmp(lr_eval_string("{abc_count}"),"0") == 0)
Action A
else
Action B

ÉÏÃæ½Å±¾ÔËÐеĹý³ÌÊÇ£ºÈç¹ûweb_reg_findÔÚloginÒ³ÃæÖÐûÓÐÕÒµ½"ABC"×Ö·û´®£¬ÔòÖ´ÐÐAction A;Èç¹ûÕÒµ½ÁËÒ»´Î»òÒ»´ÎÒÔÉÏ£¬ÔòÖ´ÐÐAction B¡£

web_findºÍweb_reg_findº¯ÊýÁ½ÕßÊÇÓÐÒ»Ð©Çø±ðµÄ£º

web_reg_find("Text=ABC","SaveCount=abc_count",LAST);
web_url("Login",
"URL=http://127.0.0.1:9090/Account/Login",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTTP",
LAST);
if(strcmp(lr_eval_string("{abc_count}"),"0") == 0)
Action A
else
Action B

1.web_reg_findÏÈ×¢²áµÄÓÅÊÆÊǽű¾Äܹ»Ò»±ß½ÓÊÕServerµÄÊý¾Ý»º³å£¬Ò»±ß½øÐвéÕÒ£¬Ìá¸ßÁ˲éÕÒµÄЧÂÊ¡£

2.web_reg_findµÄ²ÎÊýÓëweb_find²¢²»ÍêȫһÑù£¬ÆäÖÐÓиö²ÎÊý½Ð×öSaveCount£¬ËüÄܹ»¼Ç¼²éÕÒÆ¥ÅäµÄ´ÎÊý£¬¶øweb_findµÄ»úÖÆÊÇÒ»µ©²éÕÒÆ¥Åä³É¹¦¾ÍÁ¢¼´·µ»Ø£¬²¢²»¼ÌÐø²éÕҺͼǼƥÅä´ÎÊý¡£

3.VU run timeÉèÖÃÖеÄ"enable image and text check"¶Ôweb_findÓÐЧ£¬¶ø¶Ôweb_reg_findÎÞЧ¡£

4¡¢¼ì²éµãÉèÖü¼ÇÉ

ÈçºÎ¼ÓÈë¼ì²éµã£¬²ÅÄܼì²é³öÕýÈ·µÄ½á¹û¡£ÓëÊÂʵÏà·û£¬ÓÐÈçϼ¼ÇÉ£º

Ëü±ØÐëÂú×ãÊÇÑéÖ¤ÊÂÎñͨ¹ýÓëÓë·ñµÄ³ä·Ö±ØÒªÌõ¼þ¡£¼ì²éµãͨ¹ý£¬ÎÒÃǾÍÄܹ»È·ÐÅϵͳÊÇÒ»¸öÕý³£µÄ״̬¡£

¼ì²éµã¿ÉÒÔÊdz£Á¿£¬Ò²¿ÉÒÔÊDZäÁ¿¡£

¼ì²éµã¿ÉÒÔÊÇÎı¾¡¢Í¼ÏñÎļþ£¬Ò²¿ÉÒÔÊÇÊý¾Ý¿â¼Ç¼µÈ¡£

5¡¢¸ß¼¶-½Å±¾´íÎó´¦Àí»úÖÆ

VUÌṩÁËÒ»Ì×ÔÚ³ö´íÇé¿öϵĽű¾´¦Àí»úÖÆ¡£VUµÄ´íÎó´¦Àí»úÖÆ¿ÉÉ趨VuserÔÚÖ´Ðнű¾Ê±Óöµ½´íÎóÔõÑù´¦Àí¡£µ±VuserÓöµ½´íÎóʱ£¬¿ÉÒÔÓÉÁ½ÖÖ´¦Àí²ßÂÔ£º

Ò»ÊÇÍ£Ö¹Ö´Ðнű¾£¬ÕâÊÊÓÃÓÚÑÏÖØµÄÎÊÌâ¡£

¶þÊǺöÂÔÕâ¸ö´íÎ󣬼ÌÐøÖ´ÐÐÏÂÈ¥¡£

ĬÈÏÇé¿öÏ£¬µ±¼ì²âµ½´íÎóʱ£¬Vuser½«Í£Ö¹Ö´Ðнű¾£¬ÔÚRun-time SettingsÖÐÎÒÃǾͿÉÒÔ¿´µ½ËüµÄĬÈÏÉèÖá£

Èç²»ÏëVUÔÚ³ö´íºó½áÊø£¬¶øÊǼÌÐøÖ´ÐС£ÄÇôÔÚÔËÐÐÉèÖÃÖУ¬¿ÉÒÔ¹´Ñ¡"Continue on error"£¨³öÏÖ´íÎóʱÈÔ¼ÌÐø£©¡£Õâ¸öÉèÖÃÊÊÓÃÓÚÕû¸öVuser½Å±¾£¬ËüÊÇÒ»¸öÈ«¾Ö¿ª¹Ø¡£

ÕâÖÖ·½·¨ÓÐÒ»¸öÎÊÌ⣬²»¹»Áé»î¡£¶ÔÓÚËùÓеĴíÎ󣬶¼ÊÇÌø¹ý»òÍ£Ö¹Ö´ÐС£²»ÄܶÔÓÚ²»Í¬º¯ÊýÓ¦Óò»Í¬µÄ´íÎó´¦Àí»úÖÆ¡£¶ÔÓÚÕâÖÖÎÊÌ⣬ÎÒÃÇÖ»ÄÜÔڽű¾Ê¹ÓÃlr_continue_errorº¯ÊýÀ´×Ô¶¨ÒåʵÏÖ¡£

1.ʹÓÃlr_continue_on_errorº¯Êý¡£Í¨¹ýlr_continue_on_error(1)ºÍlr_continue_on_error(0)Óï¾ä½«ÆäÀ¨ÆðÀ´¡£

2.ʹÓÃlr_continue_on_errorº¯ÊýµÄ½Å±¾¶Î½«»á¸²¸Ç"³öÏÖ´íÎóʱÈÔ¼ÌÐø"µÄRun-time SettingsÔËÐÐʱÉèÖá£

ÀýÈ磬ÏÂÃæµÄ½Å±¾£¬ÆäÔËÐÐʱÉèÖÃûÓй´Ñ¡"Continue on error"£¬VUÈç¹û·ÃÎÊxxx´íÎ󣬽«»á½áÊøÖ´Ðнű¾¡£

lr_continue_on_error(1);
web_url("Login",
"URL=http://127.0.0.1:9090/Account/Login",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTTP",
LAST);
lr_continue_on_error(0);
lr_output_message("finished linking");

ÔÚÉÏÃæµÄ½Å±¾ÖУ¬¼¸Ê±web_urlº¯ÊýÖ´ÐÐʧ°Ü£¬li_output_message("finished linking")Ò²»á±»¼ÌÐøÖ´ÐС£µÚÒ»¸ölr_continue_error(1)Êǽ«"Continue on error"ÉèΪtrue£¬ÆäºóÃæµÄÓï¾äµÄ´íÎó´¦Àí»úÖÆ¶¼±»Ó¦ÓÃΪ"Continue on error"£¬Ö±µ½VUÓö¼ûlr_continue_error(0)£¬ÔÙ½«"Continue on error"»Ö¸´³Éfalse¡£

   
5048 ´Îä¯ÀÀ       34
Ïà¹ØÎÄÕÂ

΢·þÎñ²âÊÔÖ®µ¥Ôª²âÊÔ
һƪͼÎÄ´øÄãÁ˽â°×ºÐ²âÊÔÓÃÀýÉè¼Æ·½·¨
È«ÃæµÄÖÊÁ¿±£ÕÏÌåϵ֮»Ø¹é²âÊÔ²ßÂÔ
È˹¤ÖÇÄÜ×Ô¶¯»¯²âÊÔ̽Ë÷
Ïà¹ØÎĵµ

×Ô¶¯»¯½Ó¿Ú²âÊÔʵ¼ù֮·
jenkins³ÖÐø¼¯³É²âÊÔ
ÐÔÄܲâÊÔÕï¶Ï·ÖÎöÓëÓÅ»¯
ÐÔÄܲâÊÔʵÀý
Ïà¹Ø¿Î³Ì

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù
×îл¼Æ»®
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ 12-11[±±¾©]
LLM´óÄ£ÐÍÓëÖÇÄÜÌ忪·¢ÊµÕ½ 12-18[±±¾©]
ǶÈëʽÈí¼þ²âÊÔ 12-25[±±¾©]
AIÔ­ÉúÓ¦ÓõÄ΢·þÎñ¼Ü¹¹ 1-9[±±¾©]
AI´óÄ£Ðͱàд¸ßÖÊÁ¿´úÂë 1-14[±±¾©]
ÐèÇó·ÖÎöÓë¹ÜÀí 1-22[±±¾©]

LoadRunnerÐÔÄܲâÊÔ»ù´¡
Èí¼þ²âÊÔ½á¹û·ÖÎöºÍÖÊÁ¿±¨¸æ
ÃæÏò¶ÔÏóÈí¼þ²âÊÔ¼¼ÊõÑо¿
Éè¼Æ²âÊÔÓÃÀýµÄËÄÌõÔ­Ôò
¹¦ÄܲâÊÔÖйÊÕÏÄ£Ð͵Ľ¨Á¢
ÐÔÄܲâÊÔ×ÛÊö


ÐÔÄܲâÊÔ·½·¨Óë¼¼Êõ
²âÊÔ¹ý³ÌÓëÍŶӹÜÀí
LoadRunner½øÐÐÐÔÄܲâÊÔ
WEBÓ¦ÓõÄÈí¼þ²âÊÔ
ÊÖ»úÈí¼þ²âÊÔ
°×ºÐ²âÊÔ·½·¨Óë¼¼Êõ


ij²©²ÊÐÐÒµ Êý¾Ý¿â×Ô¶¯»¯²âÊÔ
IT·þÎñÉÌ Web°²È«²âÊÔ
IT·þÎñÉÌ ×Ô¶¯»¯²âÊÔ¿ò¼Ü
º£º½¹É·Ý µ¥Ôª²âÊÔ¡¢Öع¹
²âÊÔÐèÇó·ÖÎöÓë²âÊÔÓÃÀý·ÖÎö
»¥ÁªÍøweb²âÊÔ·½·¨Óëʵ¼ù
»ùÓÚSeleniumµÄWeb×Ô¶¯»¯²âÊÔ