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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓƵ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ʹÓà Sahi ʵÏÖ Web ×Ô¶¯»¯²âÊÔ
 
×÷ÕߣºÑîÏþ²¨, ÁÖ±¦´¨, ÌÆѧ²¨, À´Ô´£ºIBM ·¢²¼ÓÚ 2015-8-7
  4351  次浏览      23
 

Sahi ÊÇ Tyto Software ÆìϵÄÒ»¸ö»ùÓÚÒµÎñµÄ¿ªÔ´ Web Ó¦ÓÃ×Ô¶¯»¯²âÊÔ¹¤¾ß¡£Sahi ÔËÐÐΪһ¸ö´úÀí·þÎñÆ÷£¬²¢Í¨¹ý×¢Èë JavaScript À´·ÃÎÊ Web Ò³ÃæÖеÄÔªËØ¡£Sahi Ö§³Ö HTTPS ²¢ÇÒ¶ÀÁ¢ÓÚ Web Õ¾µã£¬¼òµ¥Ð¡ÇÉÈ´¹¦ÄÜÇ¿´ó¡£ËüÏà¶ÔÓÚ Selenium µÈ×Ô¶¯»¯²âÊÔ¹¤¾ß£¬ÔÚ¶¯Ì¬ ID ÔªËزéÕÒºÍÒþʽҳÃæµÈ´ý´¦ÀíµÈ·½Ãæ¾ßÓÐÒ»¶¨µÄÓÅÊÆ¡£Ñ¡Ôñ Sahi ¹¤¾ßÀ´ÊµÏÖ¾ßÌå Web ÏîÄ¿µÄ×Ô¶¯»¯²âÊÔÊÇÒ»¸öºÜ²»´íµÄÑ¡Ôñ¡£

Web ²âÊÔ±³¾°

Ëæ×Å Web ¼¼ÊõºÍ»¥ÁªÍøµÄ·¢Õ¹£¬Web Ó¦ÓòúÆ·Ô½À´Ô½·á¸»£¬»ùÓÚ Web Ò³Ãæ²âÊÔµÄÐèÇóÓëÈÕ¾ãÔö¡£ÔÚµ±Ç°È«ÇòÈí¼þ¶¼ÔÚ×·Çó¸ßЧ¡¢Ãô½ÝµÄ¿ª·¢Ä£Ê½µÄ´ó±³¾°Ï£¬Web ×Ô¶¯»¯²âÊÔ³ÉΪÁËÐÂÒ»²¨¼¼Êõ̽ÌÖºÍÑо¿µÄÈȳ±¡£ÒòΪ´«Í³µÄÊÖ¹¤²âÊÔ²»½öЧÂʵͣ¬²¢ÇÒ²âÊÔÖÊÁ¿ÊÜÏÞÓÚ²âÊÔÈËÔ±µÄһЩÇéÐ÷ºÍÐÄÇé¡£Èôµ±Ò»¸ö²âÊÔÈËÔ±´ø×Å·³ÔêÇéÐ÷À´²âÕâЩ·±ÔӵĴóÁ¿Öظ´ÐÔ¹¤×÷£¬²âÊÔµÄÖÊÁ¿ÁîÈ˵£ÓÇ¡£¸üºÎ¿ö£¬µ±ÕâÏî²âÊÔ¹¤×÷Éæ¼°µ½È«Çò»¯·½ÃæµÄ²âÊÔʱ£¬¶àÓïÑÔ°æ±¾µÄ²âÊÔ¹¤×÷µ¼Ö¸òâÊÔ¹¤×÷Á¿µÄ³É±¶Ôö¼Ó£¬ÕâÎÞÒÉÊÇÒ»Ïî¾Þ´óµÄ¿¼Ñ飡

Sahi µÄÌØÐÔºÍÓÅÊÆ£º

µ±Ìá¼°ÃæÏò Web µÄ×Ô¶¯»¯²âÊÔ£¬ÏàÐÅÐí¶à¶ÁÕß»áÏëµ½»òÕß˵ʹÓùý Selenium¡¢Watir µÈ¹¤¾ß£¬¶ø¶ÔÓÚ Sahi ¾Í¿ÉÄܱȽÏÄ°Éú¡£Ê×ÏÈ£¬ÈÃÎÒÃÇÏÈÀ´Á˽âÏ Sahi ¹¤¾ß¡£ËüÊÇÒ»¿îÓ¡¶È¹«Ë¾ Tyto Software ¿ª·¢µÄ³ÉÊìµÄ¿ªÔ´ Web ×Ô¶¯»¯²âÊÔ¹¤¾ß¡£Sahi ¼òµ¥Ò×Óã¬ÄÜÁ¼ºÃÖ§³Ö Ajax ºÍ Web2.0 ¼¼Êõ£¬Í¬Ê±ÊÊÓÃÓÚÃô½ÝºÍ´«Í³µÄ²»Í¬²âÊÔģʽ¡£ÄÇô£¬ËüÓëÆäËû·Ç³£Á÷ÐÐµÄ Web ×Ô¶¯»¯²âÊÔ¹¤¾ßÓÐÄÄЩ²»Í¬ºÍÓÅÊÆÄØ£¿ÈÃÎÒÃǽ«ÆäÓëÖ÷Á÷×Ô¶¯»¯²âÊÔ¹¤¾ß Selenium ºÍ Watir À´½øÐÐÒ»·¬¶Ô±È£¬Çë²Î¿¼Í¼ 1£º

ͼ 1. Sahi ÓëÆäËû¹¤¾ßµÄ¶Ô±È

´ÓÉÏͼµÄ¶Ô±È¿ÉÒÔ¿´³ö£¬Selenium Ö§³ÖµÄ½Å±¾ÓïÑԱȽϷḻ£¬ÇÒ×Ô´ø Selenium IDE ×Ô¶¯Â¼Öƹ¤¾ß£¬Watir Ö´ÐеÄËÙ¶ÈÏà¶ÔÆäËû½Ï¿ì¡£¶ø Sahi ͬÑù¾ß±¸ÁË×Ô´øµÄ¼ÖÆÆ÷£¬ÇÒÖ§³Ö¼¸ºõËùÓÐä¯ÀÀÆ÷£¬ÇÒ¶Ô JS Ö§³Ö½ÏºÃ£¬ÓµÓÐÒ³ÃæµÈ´ýÅжϻúÖÆ£¬ÄÚÖà Java Òì³£±¨¸æ£¬Ö§³Ö Ajax µÈÓÅÊÆ¡£

ÏÂÃ棬±¾ÎĽ«Ïêϸ½éÉÜһϠSahi µÄ¼¸´óÓÅÊÆ¡£

»ùÓÚÉÏÏÂÎĵÄÒ³Ãæʶ±ð»úÖÆ£º

´ó¶àÊýÈç Selenium µÈ Web ×Ô¶¯»¯²âÊÔ¹¤¾ß»òÊÇ×Ô¶¯»¯¿ò¼Ü£¬¶¼²ÉÓÃÀàËÆ»ùÓÚ DOM µÄ¶¨Î»²ßÂÔ¡¢Xpath ¶¨Î»²ßÂÔºÍ id¡¢name¡¢identifier µÈÒ³ÃæÔªËض¨Î»²ßÂÔ¡£

Identifier ¶¨Î»ÊÇ×îÆÕ±éµÄÒ»ÖÖ¶¨Î»·½Ê½£¬µ±²»ÄÜʶ±ðΪÆäËü¶¨Î»·½Ê½ºó£¬Ä¬ÈÏΪ identifier ¶¨Î»¡£ÔÚÕâÖÖ²ßÂÔÏ£¬µÚÒ»¸öʹÓà id µÄÒ³ÃæÔªËؽ«±»Ê¶±ð³öÀ´£¬Èç¹ûûÓÐʹÓÃÖ¸¶¨ id µÄÔªËØ£¬ÄÇô½«Ê¶±ðµÚÒ»¸öÃû×ÖÓëÖ¸¶¨Ìõ¼þÏà·ûµÄÔªËØ¡£

ÀýÈ磬identifier ʶ±ð username ÔªËصĶ¨Î»²ßÂÔ£ºidentifier=username

Id ¶¨Î»ÊÇÔÚÖªµÀÔªËؾßÌå id ÌØÕ÷µÄÇé¿öϵÄÒ»ÖÖ¸ü¾«È·¶¨Î»¡£ÀýÈ磬¶¨Î»Ò³ÃæÔªËØ loginFrom£ºid=loginFrom

name ¶¨Î»·½Ê½ÊÇȥʶ±ðµÚÒ»¸öÆ¥ÅäÃû³ÆÊôÐ﵀ UI ÔªËØ¡£Èç¹û¶à¸öÔªËØÓµÓÐÏàͬµÄÃû³ÆÊôÐÔ£¬¿ÉÒÔʹÓà value ¹ýÂËÆ÷À´½øÒ»²½ÓÅ»¯ÄúµÄ¶¨Î»²ßÂÔ¡£ÀýÈ磬¶¨Î»Ò³ÃæÔªËØΪ username£ºname=username

Xpath ¶¨Î»ÊÇÔÚ XML Öж¨Î»ÔªËصķ½·¨£¬¶ø HTML ¿ÉÒÔ±»¿´×÷ÊÇ XML µÄÒ»ÖÖʵÏÖ¡£XPath À©Õ¹ÁËÉÏÃæ id ºÍ name ¶¨Î»·½Ê½£¬ÌṩÁ˾ø¶Ô·¾¶ºÍÏ൱·¾¶Á½ÖÖ²éÕÒ·½Ê½¡£

¾ø¶Ô·¾¶£ºhtml/body/div[1]/div[1]/div[3]/div[1]/form/span/input[1]

Ïà¶Ô·¾¶²éÕÒ£º//div[@id='fm']/form/span/input

È»¶ø£¬ÔÚʵ¼ÊµÄÇé¿öÏ£¬Ò³ÃæÔªËز¢·ÇÈçÔ¤ÆÚ°ãÃ÷È·¡£Ò»Ð©¶¯Ì¬Ò³ÃæµÄ DOM Ê÷³£³£Ëæ×Å Web ²úÆ·µÄ¸üжøƵ·±¸Ä±ä¡£Ðí¶àµÄÔªËØÖµÈç ID¡¢Name µÈÔÚ´úÂëÖв¢²»ÊDZØÐëµÄ£¬³£³£»áȱʡ¡£²¢ÇÒ£¬ÊôÐÔÖµÍùÍù²»ÊÇΨһ¶ÔÓ¦µÄ£¬Ò³ÃæÖÐÓÐʱ»á´æÔÚÏàͬÊôÐÔµÄÔªËØ¡£µ±È±Ê¡ id Öµ»òÊÇ Xpath ¶¨Î»Ê§Ð§Ê±£¬ÉÏÊöÕ⼸ÖÖ²éÕÒ¶¨Î»·½Ê½ÍùÍùÏÔµÃÎÞÖúºÍ´àÈõ¡£

Sahi ²ÉÓÃÁËÒ»ÖÖÖ÷¶¯²éÕҵĻúÖÆ£¬Ëü²»ÊÜÏÞÓÚÌض¨µÄÔªËØÊôÐÔ¡£ÔÚûÓÐ ID¡¢Name ÖµµÄÇé¿öÏ£¬Ëü¿ÉÒÔʹÓÃһЩÈç¡°title£¬value¡±µÈÊôÐÔ£¬ÕâЩ¶¼ÊÇÒ³Ãæ¿É¼ûµÄÊôÐÔ£¬Ëù¼û¼´ËùµÃ¡£Í¬Ê±£¬Sahi »áͨ¹ý´«ÈëÕâЩ¿É¼û¿Éʶ±ðµÄÊôÐÔÖµ£¬À´°´ÕÕ Sahi Ô¤ÉèµÄ»úÖƽøÐвéÕÒʶ±ð¡£Sahi ÔÊÐí¿ª·¢Õ߶ÔÿһÖÖÔªËØÉèÖò»Í¬ÊôÐÔºÍÌض¨µÄ²éÕÒ˳Ðò£¬°üÀ¨ÄÇЩ×Ô¶¨ÒåµÄÊôÐÔÃû¡£ËùÒÔ Sahi Ïà¶ÔÓÚÆäËûµÄ Web ×Ô¶¯»¯²âÊÔ¹¤¾ß¸üÁé»î¸ü¿ª·Å¡£
±ÈÈ磬_link(¡°valueName¡±)ÓÃÀ´¶¨Î»Ò»¸ö¶¨ÒåΪ¡°valueName¡±µÄ link£¬ÕâÀïµÄ valueName ²¢²»Ò»¶¨ÊÇ value µÄÊôÐÔÖµ£¬Ò²¿ÉÒÔÊÇËüµÄ id¡¢title µÈ¡£

Ç°ÃæÌáµ½ÁË Sahi Ö÷¶¯²éÕҵĻúÖÆ£¬ÄÇôËüÊÇÈçºÎÈ¥²éÕÒ DOM ½ÚµãϵÄÌض¨ÔªËصÄÄØ£¿Sahi Ö÷ÒªÌṩÁËÈýÖÖ»ùÓÚÉÏÏÂÎĵÄÔªËØ API£º_in£¬_near ºÍ_under¡£

´Ó×ÖÃæÒâ˼ÉÏ£¬ÎÒÃDz»ÄÑÀí½â£¬_in ÊÇÖ¸ÔÚij¸ö DOM ½ÚµãϲéÕÒij¸öÔªËØ£¬Õâ±È Xpath µÄ²»¹ÜÊǾø¶Ô·¾¶»òÊÇÏà¶Ô·¾¶²éÕÒ¶¼À´µÄÁé»î£¬²»»áÒòΪ DOM Ê÷ÄÚ²¿½á¹¹·¢Éú±ä»¯¶øµ¼Ö·¾¶Ê§Ð§ÕÒ²»µ½ÔªËصÄÎÊÌâ¡£

_near ÊÇÖ¸ÔÚij¸öÔªËظ½½ü²éÕÒÏàÓ¦É趨¹æÔòÌõ¼þµÄ×î½üÒ»¸öÔªËØ£¬Õâ¶ÔÓÚÒ»¸öÒ³ÃæÖÐÓжà¸öÏàͬÊôÐÔÖµµÄÇé¿öÌṩÁËÒ»¸öºÜºÃµÄ½â¾ö·½Ê½£¬Ê¹²éÕҵķ¶Î§¸ü¾«È·¡£

_under ÊÇÖ¸ÔÚij¸öÔªËØÏ·½¿ªÊ¼²éÕÒ£¬ÕÒµ½·ûºÏÌõ¼þµÄ×î½üÒ»¸öÔªËØ£¬Ò»°ã_under ¶¼ÊÊÓÃÔÚ¾ßÓÐÏàͬƫÒÆÁ¿µÄͬһÁÐÖС£ÏÂÃ棬ÎÒÃÇÀ´¿´Ò»¸öÀý×Ó£¬¼ÓÉî¶Ô Sahi ÕâÖÖ»ùÓÚÉÏÏÂÎÄʶ±ð²éÕÒ»úÖƵÄÀí½â£º

ͼ 2. °¸ÀýÍøÒ³

¼ÙÉ裬ÔÚͼ 2 ÏÔʾµÄ Web Ò³ÃæµÄËùÓÐ text box µÄ name=¡±q¡±£¬ÄÇô£¬Sahi µÄÕì̽Æ÷ͨ¹ýһЩ±êʶÀ´¼ø±ðËüÃÇ£¬Èç(_textbox("q"), _textbox("q[1]")ºÍ_textbox("q[2]"))¡£

Èç¹û£¬ÎÒÃÇÒª¶¨Î»¡°Ruby for Rails¡±ÄÇÒ»ÐÐµÄ text box£¬¼´_textbox("q[1]")¡£´«Í³µÄÔªËØʶ±ð»áÓöµ½¶à¸öÏàͬÊôÐÔÔªËصÄÎÊÌ⣬¼´Ê¹ÊÇ Xpath µÄ¶¨Î»·½Ê½Ò²»áÒòΪÔÚËüÇ°Ãæ¼ÓÁËÒ»ÐÐеÄÊý¾Ý¶øµ¼Ö Xpath ¶¨Î»Ê§°ÜµÄÇé¿ö¡£

Õâʱ Sahi ¿ÉÒÔͨ¹ý_near ÕâÖÖ·½Ê½À´¶¨Î»£º_textbox("q",_near(_cell("Ruby for Rails")))

µ±Òª¶¨Î» check box ʱ£¬ÎÒÃÇÓֻᷢÏÖ£¬¡°Ruby for Rails¡±ÕâÒ»ÐÐÓС°Recommend¡±ºÍ¡°Already own¡±Á½¸ö check box£¬ÎªÁ˸ü׼ȷµØ¶¨Î»£¬ÎÒÃÇ¿ÉÒÔ½áºÏ_under£¬ÀýÈ磺_checkbox(0,_near(_cell("Ruby for Rails")),_under(_cell("Recommend")))¡£

Èç¹ûÔÚÕû¸öÒ³ÃæÖдæÔÚ¶à¸öÕâÑùµÄ±í¸ñ£¬ÎÒÃÇ»¹¿ÉÒÔÓÃ_in À´½øÒ»²½ËõС·¶Î§£¬È磺_checkbox(0,_near(_cell("Ruby for Rails")),_under(_cell("Recommend")),_in(_cell("Cost))).

ͬʱֵµÃÒ»ÌáµÄÊÇ£¬Sahi API ÖÐµÄ identifier ²ÎÊý¶¼Ö§³ÖÕýÔò±í´ïʽ£¬ÀýÈ磬_div(/name.*/) ÓÃÀ´Ê¶±ðËùÓÐÒÔijÖÖÔ¤ÊôÐÔÖµÊÇ name ¿ªÍ·µÄ div¡£

ÒþʽҳÃæ¼ÓÔØÏìÓ¦µÈ´ý»úÖÆ£º

ÏÖÔÚÔ½À´Ô½¶àµÄ Web Ó¦ÓòÉÓà Ajax µÄÓ¦Óü¼Êõ£¬À´Ö§³ÖÍøÒ³Êý¾ÝµÄÒì²½ÇëÇóÏìÓ¦¡£µ±Ç°Ò»°ãµÄ Web ×Ô¶¯»¯²âÊÔ¹¤¾ßûÓÐÒ»¸öÖÇÄܵĴ¦Àí»úÖÆ£¬À´ÅжϺÎʱ¿ÉÒÔ¼ÌÐøÏÂÒ»¸ö²Ù×÷¡£Ïñ Selenium µÈ×Ô¶¯»¯²âÊÔ¹¤¾ßͨ³£»áÔڽű¾ÖÐÈËΪÀ´É趨һ¸ö¹Ì¶¨µÄµÈ´ýʱ¼ä¡£µ«ÕâÍùÍù±»Ö¤Êµ²»Ò»¶¨ÊÇ׼ȷµÄ¡£Êµ¼Ê²âÊÔÖУ¬ÈËÊǺÜÄÑ׼ȷÅжÏÿһ¸ö²Ù×÷ÇëÇóÐèÒªµÄºÏÀíʱ¼äÊýÖµ¡£ÒòΪ£¬µÈ´ýʱ¼äÉèÖùý¶Ì£¬ÏÂÒ»²½²Ù×÷ÔÚ±»²âÓ¦ÓÃÇëÇó»¹Î´·µ»Ø¾ÍÖ´ÐÐÁË£¬»òÊÇÓÉÓÚÍøÂçÒòËØʹÕý³£µÄÏìӦʱ¼ä±ä³¤£¬¶¼¿ÉÄܵ¼Ö²âÊÔ¹ý³ÌÕÒ²»µ½ÏàÓ¦µÄÒ³ÃæÔªËØ£¬´Ó¶øµ¼ÖÂÕû¸ö²âÊÔÓÃÀýʧ°ÜµÄÇé¿ö¡£¶øÈç¹û°Ñʱ¼äÉèÖùý³¤£¬ÓÖ»áÔì³ÉÔÚһЩÕý³£ÏìÓ¦¹ý³ÌÖеIJ»±ØÒªµÈ´ýµÄʱ¼äÀË·Ñ£¬½µµÍÁ˲âÊÔЧÂÊ¡£

µ±È»£¬Ò»Ð©²âÊÔÈËÔ±»áÔÚ×Ô¶¯»¯²âÊԽű¾ÖмÓÈëһЩ×Ô¶¨ÒåµÄ´úÂ롣ͨ¹ýÂÖѯ½çÃæÉÏij¸öÖ¸¶¨ÔªËØ£¬À´ÅжÏÇëÇóÏìÓ¦ÊÇ·ñ·µ»Ø£¬½ø¶ø¾ö¶¨¼ÌÐøÏÂÒ»²½²Ù×÷»òÕßÊdz¬Ê±¡£µ«ÊÇ£¬ÕâÑùµÄ²éÕÒ¹ý³Ì»áµ¼ÖÂÕû¸ö½Å±¾´úÂë±äµÃ·Ç³£Ó·Ö×£¬¼Ó´óÁË¿ª·¢µÄ³É±¾¡£¸üºÎ¿ö£¬ÔÚÒ»¸ö¶¯Ì¬µÄÒ³ÃæÕÒµ½Ö¸¶¨µÄÔªËر¾Éí¾Í²»ÊÇÒ»¼þÈÝÒ×µÄÊ¡£

Sahi ÄÚÖÃÁËÖÇÄܵÄÒ³ÃæµÈ´ý»úÖÆ£¬Äܹ»×Ô¶¯ÅÐ¶Ï Ajax ÇëÇóÊÇ·ñÒѾ­´¦ÀíÍê±Ï£¬È»ºó¼ÌÐøÏÂÒ»²½²Ù×÷¡£²¢ÇÒ£¬ÕâÒ»µã¶ÔÓÚÓû§ÊÇ¡°Òþʽ¡±µÄ£¬²»ÐèÒªÔö¼Ó¶îÍâµÄ´úÂë¡£

Sahi µÄ¹¤×÷Ô­Àí£º

¼òµ¥µØ˵£¬Óà Sahi ʵÏÖ×Ô¶¯»¯²âÊÔÓÐÈý²½£¬Â¼ÖÆ£¬¾«Á¶½Å±¾ºÍ»Ø·Å£¬ÈçÏÂͼ£º

ͼ 3. Sahi ¹¤×÷µÄÈý¸öÖ÷Òª¹ý³Ì

ÈçÉÏͼ Sahi ¾ÍÊÇÏÈÓÃÆä×Ô´øµÄ¼Öƹ¤¾ß£¬°Ñ´óÖµIJÙ×÷¹ý³Ì¼ÖÆÏÂÀ´£¬²¢Óà Sahi ´úÂë¼Ç¼ÏÂÕû¸ö²Ù×÷¹ý³Ì¡£Ëæºó£¬½«×Ô¶¯Éú³ÉµÄ´úÂë½øÒ»²½µÄ¾«Á¶ºÍ¿ª·¢£¬µ÷ÓÃһЩÍⲿ API »ò±àдÌض¨´úÂëÀ´ÊµÏÖÌض¨µÄ²Ù×÷¡£×îºó£¬Óà Sahi À´»Ø·Å±£´æºÃµÄ×îÖսű¾£¬Sahi ¾Í½«×Ô¶¯¶Ô Web Ó¦ÓýøÐж¨ÒåºÃµÄ²âÊÔ²Ù×÷¡£

ÏÂÃ棬±¾ÎĽ«¶ÔÕâÈý¸ö¹ý³Ì½øÐÐÏêϸ˵Ã÷¡£

µÚÒ»²½£ºÂ¼ÖÆ

ͼ 4. Recording ¹ý³ÌµÄ¹¤×÷Ô­Àí

Sahi ÊÇͨ¹ýÔËÐÐΪһ¸ö´úÀí·þÎñÆ÷£¬²¢Í¨¹ýÉèÖÃä¯ÀÀÆ÷´úÀíΪ Sahi ·þÎñÆ÷¡£ÕâÑù Sahi µÄ½Å±¾¾ÍÄܹ»Í¨¹ý request ÇëÇóÀ´×¢Èëµ½ JavaScript ÀïÒÔ·ÃÎÊ Web Ò³ÃæÖеÄÔªËØ¡£Èçͼ£¬¿ÉÒÔºÜÇåÎúµÄ¿´µ½£¬Sahi ¾ÍÊÇ Web ä¯ÀÀÆ÷ºÍ Web ·þÎñÆ÷Ö®¼äµÄÒ»¸öÖмä´úÀí¡£

µÚ¶þ²½£º¾«Á¶½Å±¾

ͼ 5. Refine Script ¹ý³ÌµÄ¹¤×÷Ô­Àí

¼ÖƵĽű¾¶¼ÊÇÖ¸¶¨ÔªËز¢Î¨Ò»²Ù×÷µÄ£¬Õâʱ¾ÍÐèÒª¶Ô´úÂë½øÐÐÖع¹£¬³éÈ¡³öºËÐĵŦÄܿ飬¶ÔÆäÖеÄÔªËؽøÐвÎÊý»¯´¦Àí£¬ÒÔʵÏÖÖØÓá£ÕâÑùµÄÊý¾Ý¿ÉÒÔ´ÓÍⲿµÄ DB »òÎļþÖжÁÈ¡¶øÀ´¡£Óë´Ëͬʱ£¬Ò²¿Éµ÷Óà Sahi API »òÍⲿ Java µÈ API ʵÏÖÌض¨µÄһЩ¹¦ÄÜ¡£

µÚÈý²½£º»Ø·Å

ͼ 6. Play back ¹ý³ÌµÄ¹¤×÷Ô­Àí

Sahi ÔËÐÐÌáÁ¶ºÃµÄ½Å±¾À´×Ô¶¯»¯²âÊÔ²Ù×÷£¬²¢Éú³É²âÊÔ±¨¸æ¡£

Sahi µÄ°²×°²¿ÊðÓëÅäÖÃ

Sahi ËäÈ»ÊÇ Tyto ¹«Ë¾µÄ²úÆ·£¬µ«ËüµÄÏÂÔØ·ÅÔÚÊÀ½çÉÏ×î´óµÄ¿ªÔ´Èí¼þ¿ª·¢ÍøÕ¾ SourceForge ÉÏ£¬¿ÉÒÔͨ¹ýµã»÷ÕâÀïÏÂÔØ¡£

ͼ 7. Sahi ÏÂÔØ

ĬÈÏÍƼöÊÇÏÂÔØ install_sahi_xxx.jar£¬ÕâÊÇÒ»¸ö¿ÉÖ´ÐÐÎļþ£¬°üº¬ÁË Sahi µÄ°²×°Æ÷ºÍ Sahi ¹¤¾ß¼°ÆäÔ´´úÂë¡£µ±È»ÄúÒ²¿ÉÒÔµã»÷ÉÏͼºì¿ò´¦¡°Browse All Files¡±À´Ñ¡ÔñÀúÊ·°æ±¾ºÍһЩÃⰲװѹËõÎļþ¡£±ÈÈ磬ѡÔñÖ»°üº¬ Sahi ¹¤¾ßµÄ sahi_xxx.zip Îļþ£¬»òÕß°üº¬ÁË Sahi ºÍÔ´´úÂëµÄÃⰲװѹËõ°üÎÄ ¼þsahi-src_xxx.zip¡£

Ò»°ã½¨ÒéÑ¡ÔñÍƼöµÄ Sahi °²×°°üÎļþ¼´¿É£¬ÕâÑù¿ÉÒÔÃâȥһЩÉèÖòÙ×÷£¬²¢¿ÉÒÔÑ¡ÔñÊÇ·ñ°²×°Ô´´úÂ롣˫»÷ jar Îļþ½øÐа²×°£¬Èçͼ£º

ͼ 8. Sahi °²×°

°²×°¹ý³Ì·Ç³£¼òµ¥£¬´ý°²×°Íê³ÉºóË«»÷×ÀÃæͼ±ê´ò¿ª Sahi ³ÌÐò¡£´ò¿ª³ÌÐòÏÈ»á³öÏÖÒ»¸ö Sahi Dashboard£¬ËüÄÜ×Ô¶¯¿ªÆô Sahi ´úÀí·þÎñÀ´Æô¶¯ä¯ÀÀÆ÷£¬¶ø²»ÐèÒª·±ËöµÄ´úÀí·þÎñÆ÷ÉèÖòÙ×÷¡£µ±È»ÈçÓÐÐèÒª£¬ÄúÒ²¿ÉÒÔÊÖ¶¯ÐÞ¸ÄÕâЩ´úÀíÉèÖá£

ͼ 9. Sahi Dashboard ½çÃæ

Sahi »á×Ô¶¯È¥Õì̽ÄúϵͳÀï°²×°µÄһЩä¯ÀÀÆ÷£¬²¢ÔÚ Sahi Dashboard ÉÏÏÔʾ³öÀ´£¬Èç¹û·¢ÏÖÓÐһЩÆäËûµÄä¯ÀÀÆ÷δ±»×¼È·Õì̽³öÀ´£¬ÄúÒ²¿ÉÒÔµã»÷ÏÂÃæµÄ¡°Configure¡±À´½øÐÐÅäÖÃÌí¼Ó½øÀ´¡£

½ÓÏÂÀ´£¬Í¨¹ýµã»÷ Sahi Dashboard ÉϵÄä¯ÀÀÆ÷ͼ±ê°´Å¥À´Æô¶¯ÏàÓ¦ä¯ÀÀÆ÷¡£

ͼ 10. Sahi Æô¶¯ firefox ä¯ÀÀÆ÷

Äú¿ÉÒÔÊäÈëÆðʼ²âÊÔµÄÍøÒ³ URL ¿ªÊ¼ÄúµÄ²âÊÔ¡£Èç¹û²âÊÔµÄÄ¿±ê URL ÊÇ HTTPS ЭÒéµÄ£¬Ò²¿ÉÒÔµã»÷¡°SSL Manager¡±À´²é¿´ºÍ¹ÜÀí SSL Ö¤Êé¡£

ͼ 11. Sahi SSL ¹ÜÀí½çÃæ

°´×¡ Alt ¼ü²¢Ë«»÷Ò³Ã棬½«µ¯³ö Sahi ¿ØÖÆ´°¿Ú£¬Èçͼ 12£º

Õâ¸ö´°¿ÚÏ൱ÓÚ Sahi µÄÖ÷¿Ø̨£¬ÔÚÕâÀïÎÒÃÇ¿ÉÒÔÀ´Â¼ÖƺͻطŠSahi ½Å±¾£¬²¢±à¼­ºÍ¹ÜÀí½Å±¾ÐÅÏ¢¡£

ͼ 12. Sahi Controller ¼ÖÆ

ÔÚ Record ÊÓͼ½çÃ棬ÊäÈëÒ»¸ö½Å±¾Ãû³Æ£¬µã»÷¡°Record¡±£¬Õâʱ Sahi ¼ÖÆÆ÷±ã¿ªÊ¼¹¤×÷ÁË¡£°ÑÊó±êÒƵ½ä¯ÀÀÆ÷ÉϵÄÄ¿±êÍøÒ³ÉÏ£¬ÄúµÄËùÓвÙ×÷¹ý³Ì¶¼½«±»¼Ç¼ÏÂÀ´¡£ÄúÒ²¿ÉÒÔ×Ô¶¨ÒåÔö¼ÓÒ»¸ö Assertion¡£°´×¡ Ctrl ¼ü£¬°ÑÊó±êÒƶ¯µ½Ä¿±êÍøÒ³µÄÈÎÒâÒ»¸ö HTML ÔªËØ£¬ÄÇôÕâ¸ö Accessor »á×Ô¶¯³öÏÖÔÚ Sahi ¿ØÖÆÆ÷ÖС£Õâʱ£¬±ã¿ÉÒÔ×Ô¶¨ÖƶԸÃÔªËصIJÙ×÷¡£³£ÓõIJÙ×÷ÓС°µã»÷¡±£¬¡°¸ßÁÁ¡±£¬¡°¸³ÖµµÈ¡£Í¬Ê±£¬Äú¿ÉÒÔͨ¹ý¡°Append to Script¡±°´Å¥À´¼Óµ½½Å±¾´úÂëÖС£Â¼ÖÆÍê³Éºó°´¡°Stop¡±À´½áÊøÕû¸ö¹ý³Ì¡£

ͼ 13. Sahi ×Ô¶¯Éú³É½Å±¾¾«Á¶

ͼ 13 ÊÇÒ»¸ö¼òµ¥µÄ Sahi ×Ô¶¯Â¼Öƹý³ÌµÃµ½µÄ Sahi ½Å±¾´úÂë¡£Æä´óÖ¹ý³ÌΪ£ºÍ¨¹ý°Ù¶ÈËÑË÷¡°sahi¡±¹Ø¼ü×Ö£¬Ð£Ñé Sahi ¹ÙÍøµÄ assert ÊÇ·ñ´æÔÚ£¬µã»÷½øÈë Sahi ¹ÙÍøºó¼ÌÐøУÑé assert¡°Community Forums¡±£¬µã»÷½øÈ롣ͨ¹ýÇ°Ò»½Ú¡°Sahi Controller ¼ÖÆ¡±À´Íê³ÉÕâ¸ö²Ù×÷¹ý³Ì£¬ÄÇô£¬Äú¿ÉÒÔÔÚĬÈÏĿ¼¡°C:\Users\IBM_ADMIN\sahi\userdata\scripts¡±ÖÐÕÒµ½ÏÈÇ°ÃüÃûΪ¡°Test_sahi¡±µÄ½Å±¾Îļþ£¬ÎÒÃÇ¿ÉÒÔ½«Õâ¶Î´úÂë½øÐÐÒ»¸ö¾«Á¶ºÍ·á¸»µÄ¹ý³Ì£¬±ÈÈçÔÚµã»÷¡°Community Forums¡±Á´½ÓÇ°½«Ëü½øÐиßÁÁ²Ù×÷£º

_popup("Sahi Web Test Automation Tool")_highlight(_link("Community   Forums"));

»òÕßÄúÏëÔÚ Sahi ½Å±¾´úÂëÖе÷ÓÃÄÚÖÃµÄ Java À࣬ÀýÈ磺

functionprintThroughJava(s){java.lang.System.out.println("Through Java: "+s);}  printThroughJava("Hi there");

¡°Through Java: Hi there¡±½«ÔÚ sahi µÄÃüÁîÐÐÖÐÊä³ö¡£

ͼ 14. Sahi Controller »Ø·Å

»Ø·ÅµÄʱºò£¬Ö»ÐèÒªÔÚ Sahi ¿ØÖÆ̨ÉÏÇл»µ½¡°Playback¡±tab Ò³Ã棬ÕÒµ½½Å±¾´æ·ÅµÄ·¾¶£¬ÏÂÃæ¾ÍÓпªÊ¼¡¢ÔÝÍ£ºÍ½áÊøµÈ°´Å¥À´½øÐвÙ×÷¡£ÐèҪעÒâµÄÊÇ£¬¿ªÊ¼ÒÔÇ°±ØÐë¸øËüÉèÖÃÒ»¸ö¡°Stat URL¡±·ñÔòÎÞ·¨»Ø·Å½Å±¾¡£½Å±¾»Ø·ÅµÄʱºò£¬ÔÚ¡°Statements¡±Àï¿ÉÒÔ¿´µ½½Å±¾ÔËÐеÄÈÕÖ¾£¬±ÈÈç²Ù×÷²½ÖèºÍһЩ´íÎóÐÅÏ¢µÈ¡£

ͨ¹ýµã»÷ÓÒϽǵġ°View Logs¡±¿ÉÒԲ鿴ÏêϸµÄ Sahi ÔËÐÐÈÕÖ¾±¨¸æ£º

ͼ 15. Sahi ÈÕÖ¾±¨¸æ

ÓÉͼ¿É¼û£¬ÕâÑù×Ô¶¯Â¼ÖÆÉú³ÉµÄ½Å±¾´úÂ붼ÊÇ Sahi ´úÂ룬ÎÒÃÇ¿ÉÒÔÔÚʵ¼ÊµÄ Java ÏîÄ¿Öе÷ÓÃÕâЩ Sahi ´úÂ룬ÒÔʵÏÖÖØÓá£Æäʵ£¬ÎÒÃÇ¿ÉÒÔͨ¹ý´ò¿ª sahi/config/sahi.properties Îļþ½«ÆäÖÐÊôÐÔÉèÖÃΪ controller.mode=java À´ÊµÏÖ×Ô¶¯Â¼Öƽű¾µÄÓïÑÔΪ Java¡£ÖµµÃ×¢ÒâµÄÊÇ£¬¸ÄΪ Java ÓïÑÔ¼ÖƺóµÄ Sahi ¿ØÖÆÆ÷ºÍÔ­À´ÓÐËù²»Í¬£¬ËüµÄ½çÃæ¸ü¼ò½à£¬¹¦ÄÜÒ²¸ü¼òµ¥Ò»Ð©£¬Ã»ÓÐÁË×Ô¶¯»Ø·Å¹¦ÄÜ¡£ÒòΪ£¬Õâ¸ü¶àÊÇΪÁË×Ô¶¯Éú³ÉһЩ¼òµ¥µÄ½Å±¾£¬À´Ìá¸ß¿ª·¢ÈËÔ±µÄ¿ª·¢Ð§ÂÊ¡£

Sahi µÄÓï·¨ÓëʾÀýÓ¦ÓÃ

Sahi ½Å±¾ÊÇ»ùÓÚ JavaScript µÄ£¬¶ø Sahi ½Å±¾ÊÇͨ¹ý´úÀí½âÎöµÄ£¬²¢Äܹ»ÔÚ rhino JavaScript ÒýÇæÖÐÓÐЧִÐеġ£³ýÁ˱äÁ¿Ç°µÄÇ¿ÖÆ·û$£¬ËüºÍ JavaScript »ù±¾ºÜÏñ¡£

Sahi ²Ù×÷µÄ´úÂëÉùÃ÷ÊÇÒ»¾äÒԷֺŽáβµÄÆÕͨ´úÂëÐУ¬È磺

_click(_link("Login"));

±äÁ¿ÉùÃ÷£º

var$variableName =value;

»òÕßÏÈÉùÃ÷ÔÙ¸³Öµ£º

var$variableName;// declaration
$variableName =value;// assignment

ËùÓеıäÁ¿¶¼ÊÇÒÔ$·ûºÅ¿ªÍ·µÄ£¬¹Ø¼ü×Ö var ÓÃÓÚ¾Ö²¿±äÁ¿£¬È磺

var$username ="SahiTestUser";
var$password;// declaration;
$password =$username +"_password";// "SahiTestUser_password"

º¯ÊýÉùÃ÷£º

// function 
declarationfunctionlogin($usr,$pwd){
_click(_link("Login"));
_setValue(_textbox("username"),$usr);
_setValue(_password("password"),$pwd);
_click(_submit("Login"));
}
// function call
login("sahi_user","secret");

ÔÚÒ»¸ö Sahi ´úÂëÎļþÖпÉÒÔͨ¹ý_includeÀ´°üº¬µ÷ÓÃÆäËû Sahi Îļþ£¬È磺

_include("includes/common_functions.sah");

ÓÉÉÏÃæµÄÓï·¨¿ÉÖª£¬Sahi ÊÇÓÉÏ»®Ïß¿ªÍ·£¬´øÉϲÙ×÷»ò HTML ÔªËØ£¬·Ç³£¼òµ¥£¬ÇåÎúÒ׶®£¬ÕâЩ API »ù±¾¶¼ÊÇÄܹ»¿´×ÖÃæ¾ÍÄÜÀí½âËüµÄ¹¦ÄÜ¡£
Sahi µÄ API Ö÷Òª¿ÉÒÔ·ÖΪ 3 Àࣺä¯ÀÀÆ÷·ÃÎÊ API¡¢ä¯ÀÀÆ÷²Ù×÷ APIºÍ»ìºÏ API¡£

ä¯ÀÀÆ÷·ÃÎÊ API£ºÓÃÓÚ·ÃÎÊä¯ÀÀÆ÷ÉϵÄÔªËØ£¬²¢Í¨¹ý´úÀíÀ´×¢ÈëÕâЩ API µ½ä¯ÀÀÆ÷ÖÐÈ¥¡£

ä¯ÀÀÆ÷²Ù×÷ API£ºÖ÷ÒªÀ´Ö´ÐÐһЩÈçµã»÷¡¢ÊäÈëÊý¾ÝµÈ²Ù×÷£¬²¢ÔÚä¯ÀÀÆ÷ÉÏÉùÃ÷ÕâЩԪËصġ£

»ìºÏ API£ºÊǼÈÄÜÔÚä¯ÀÀÆ÷ÓÖÄÜÔÚ´úÀíÉÏÓÃÓÚ´¦ÀíÒì³£ºÍ²Ù×÷ÎļþºÍÊý¾Ý¿âµÄ¡£

ÓÉÓÚ Sahi ¶ÔÍøÒ³µÄ·ÃÎÊ·½·¨µÄ API ºÜ¶à£¬´ó¼Ò¿ÉÒԲο¼¹Ù·½ API Îĵµ½øÐÐѧϰ¡£

ÓÉÉÏ¿ÉÖª£¬Sahi ½Å±¾¶¼ÊǺÜÖ±½ÓµÄÉùÃ÷ºÍ²Ù×÷¹ý³Ì£¬ÔÚÒ»¸öÔËÐеĴúÀíÉÏ£¬ÓÉ Sahi Dashboard À´¹ÜÀíÖ´ÐС£Èç¹ûÎÒÃÇÏ£ÍûÄܹ»½«ÎÒÃÇµÄ Sahi ×Ô¶¯Ö´ÐеĹý³ÌÓëÎÒÃÇÆäËûµÄÏîÄ¿¹¦ÄÜÄ£¿é½øÐм¯³É£¬ÄÇô°ÑÕâЩ½Å±¾×ª»»³É Java ´úÂ룬ÓÖÄÜÓöÀÁ¢ÔËÐУ¬ÊÇÒ»¼þÁ½È«ÆäÃÀµÄÊ¡£

½ÓÏÂÀ´£¬±¾ÎĽ«½éÉÜÒ»¸öÓà Sahi Java Driver À´±àд Sahi ×Ô¶¯»¯½Å±¾ÊµÏÖ Web ×Ô¶¯»¯²âÊԵļòµ¥°¸Àý¡£

Ê×ÏÈ£¬½« Sahi µÄ¿ª·¢¿â°üÎļþ sahi.jar ¼ÓÈëµ½ Java ÏîÄ¿ÖУ¬¸ÃÎļþλÓÚ Sahi °²×°Â·¾¶ÏÂ..\sahi\lib\Ï£¬½ÓÏÂÀ´¾Í¿ÉÒԲο¼ Sahi µÄ Java API À´¿ª·¢×Ô¶¯»¯²âÊԽű¾¡£ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄ°¸Àý½Å±¾£º

Çåµ¥ 1. µ¼Èë Sahi Àà°ü

import net.sf.sahi.client.Browser;
import net.sf.sahi.config.Configuration;

ÉèÖà sahi °²×°Â·¾¶ºÍ userdata ·¾¶

Çåµ¥ 2. ÅäÖÃ Sahi ´úÀí

String sahiBase = "C:/Users/ADMIN/sahi/"; 
String userDataDirectory = "C:/Users/ADMIN/sahi/userdata";
Configuration.initJava(sahiBase, userDataDirectory);

Äú¿ÉÒÔÉèÖÃÈÎÒâÒ»ÖÖä¯ÀÀÆ÷ÀàÐÍ£¬Ò²¿ÉÒÔÔÚ sahi/userdata/config/browser_types.xml ÎļþÖÐ×Ô¼º´´½¨¶¨Òå

Çåµ¥ 3. ÅäÖÃä¯ÀÀÆ÷²¢Æô¶¯

String browserType = "firefox";
Browser browser = new Browser(browserType);
browser.open();

Çåµ¥ 4. ²Ù×÷´úÂëʾÀý

browser.navigateTo("http://sahi.co.in/demo/training/");
browser.textbox("user").setValue("test");
browser.password("password").setValue("secret");
browser.submit("Login").click();
browser.textbox("q").setValue("2");
browser.textbox("q[1]").setValue("9");
browser.textbox("q[2]").setValue("4");
browser.button("Add").click();
System.out.println(":: browser.textbox(\"total\").value()=" + browser.
textbox("total").value());
browser.close();// close the browser

ÐèҪעÒâÒ»µã£¬³ýÁË Firefox ä¯ÀÀÆ÷£¬ÆäËûµÄä¯ÀÀÆ÷¶¼±ØÐë½øÐзþÎñÆ÷´úÀíÅäÖ㬲¢ÔÚÔËÐнű¾Ç°´ò¿ª Sahi ´úÀí·þÎñ¡£

ʵ¼Ê²âÊÔ½á¹û±íÃ÷£¬Sahi ´úÂë¼ò½é£¬ÔËÐÐÇáÇÉ¿ìËÙ£¬¶øÇÒËü»¹ÄÜÓëÍâÖõÄһЩģ¿é¼¯³ÉÍê³É·¢ËÍÓʼþ£¬¶ÁÈ¡ PDF ÎļþµÈ²Ù×÷£¬¹¦Äܷdz£ÍêÉÆ¡£

½áÊøÓï

×ÛÉÏËùÊö£¬±¾ÎÄ´Óµ±Ç° Web ×Ô¶¯»¯²âÊÔµÄÀ§¾³³ö·¢£¬Í¨¹ýÓëÆäËû¿ªÔ´ Web ×Ô¶¯»¯²âÊÔ½øÐжԱȣ¬½éÉÜÁË Sahi µÄÌØÐÔºÍÓÅÊÆ¡£Ö÷Òª´Ó»ùÓÚÉÏÏÂÎÄÒ³Ãæʶ±ð»úÖƺÍÖÇÄÜÒ³Ãæ¼ÓÔØÏìÓ¦µÈ´ý»úÖÆÁ½·½Ãæ½øÐвûÊö¡£Í¬Ê±£¬Ïêϸ½éÉÜÁË Sahi µÄ¹¤×÷Ô­ÀíÒÔ¼°ÈçºÎ°²×°²¿Êð½øÐÐ×Ô¶¯»¯²âÊÔ¿ª·¢µÄ¹ý³Ì¡£×ÜÖ®£¬Sahi ÌṩÁËÒ»Ì×ÔÚ¶àä¯ÀÀÆ÷ºÍ¶à±à³ÌÓïÑԵĿªÔ´×Ô¶¯»¯²âÊÔ·½°¸£¬½â¾öÁ˵±Ç°Ò»Ð©Ò³ÃæÔªËØÄÑÕÒ£¬Ò³ÃæÏìÓ¦²»Í¬²½¶øµ¼Ö²âÊÔʧ°ÜµÄÎÊÌâ¡£Sahi ÊÇÒ»¸öÄܹ»¿ìËÙ²¿Êð£¬Ò×ÓÚ¿ª·¢²¢ÇÒ¹¦ÄÜÇ¿´óµÄ¿ªÔ´ Web ×Ô¶¯»¯²âÊÔ¹¤¾ß¡£ÓÉÓÚƪ·ùËùÏÞ£¬±¾ÎIJ»ÄÜ¶Ô Sahi ËùÓеŦÄܽøÐÐÒ»Ò»²ûÊö£¬Ï£ÍûÓÐÐËȤµÄÅóÓÑÒ»ÆðÑо¿Ì½ÌÖ¡£

   
4351 ´Îä¯ÀÀ       23
Ïà¹ØÎÄÕÂ

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

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

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù
×îпγ̼ƻ®
ÐÅÏ¢¼Ü¹¹½¨Ä££¨»ùÓÚUML+EA£©3-21[±±¾©]
Èí¼þ¼Ü¹¹Éè¼Æʦ 3-21[±±¾©]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 3-25[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼Æ 4-11[±±¾©]
SysMLºÍEAϵͳÉè¼ÆÓ뽨ģ 4-22[±±¾©]
DoDAF¹æ·¶¡¢Ä£ÐÍÓëʵÀý 5-23[±±¾©]

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

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

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