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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Spring Cloud Pipeline¨CÆõÔ¼²âÊÔ£¨Contracts Test£©
 
  3507  次浏览      31
 2019-7-3
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚº²ÁÖСԺ£¬±¾ÎÄÖ÷Òª½éÉÜÁË΢·þÎñ¼Ü¹¹µÄÒ»¸ö»ù±¾ÒªÇ󣺷þÎñµÄ¶ÀÁ¢²¿Ê𣨽»¸¶£©£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£

×î½ü¾­³£ÔÚÏîÄ¿»òÊÇÉçÇøÀïÌýµ½´ó¼Ò̸ÂÛ΢·þÎñ¼Ü¹¹£¬µ«Ì¸Â۵Ľ¹µã¸ü¶à¼¯ÖÐÔÚ΢·þÎñ²ð·Ö£¬·Ö²¼Ê½¼Ü¹¹£¬Î¢·þÎñÃż÷£¬DevOpsÅäÌ×ÉèÊ©µÈ»°ÌâÉÏ¡£

µ«ÊÇÔÚÎÒÑÛÀï£¬ÕæÕýÄܳÆÖ®ÎªÎ¢·þÎñ¼Ü¹¹µÄÉÙÖ®ÓÖÉÙ¡£

Spring Cloud Pipeline¨CÆõÔ¼²âÊÔ£¨Contracts Test£©|Spring Cloud Pipeline-º²ÁÖСԺ µÚ1ÕÅ

ÕâÀïµÄ¶ÀÁ¢²¿ÊðºÍ×Ô¶¯»¯²¿Ê𻹲»ÊÇÒ»¸ö¸ÅÄ·þÎñµÄ×Ô¶¯»¯²¿ÊðÏà¶Ô¼òµ¥£¬ÒÑÓдóÁ¿µÄ¹¤¾ß¿ÉÒÔ°ïÖúÎÒÃÇ×öµ½¡£µ«ÊÇÕâÀïËù̸µÄ¶ÀÁ¢²¿Êð£¬ÎÒÈÏΪ¹Ø¼üºÍÄѵ㲢²»ÔÚÓÚ¡°²¿Ê𡱣¬¶øÔÚÓÚ¡°¶ÀÁ¢¡±¡£

Èç¹ûʧȥÁË·þÎñ¶ÀÁ¢²¿Ê𣨽»¸¶£©µÄÄÜÁ¦£¬Ò»¸ö΢·þÎñ¼Ü¹¹µÄÍþÁ¦½«´ó´òÕÛ¿Û£¬ÎÒÃǵÄϵͳËäÈ»ÔÚÎïÀíÉϱ»²ð·Ö³ÉÁ˶à¸öСµÄ·þÎñ£¬µ«ÊÇÈç¹û´Ó×îÖÕ½»¸¶µÄ½Ç¶ÈÀ´¿´£¬ÈÔÈ»ÊÇÒÔÒ»¸öÕûÌå´æÔڵ쬾ÍÏñµ¥ÌåÓ¦ÓÃÒ»Ñù£¬´æÔÚÖî¶àµÄÎÊÌâ¡£

Ϊʲô·þÎñµÄ¶ÀÁ¢½»¸¶²¢²»¼òµ¥£¿

ÄÇΪʲô²»ÄÜÈÃÿһ¸ö·þÎñ¶¼¶ÀÁ¢²¿Êðµ½²úÆ·»·¾³ÄØ£¿ÎÊÌâµÄ´ð°¸ÊÇ£º²»ÊDz»ÄÜ£¬¶øÊDz»¸Ò£¡

ΪÁ˱í´ïÇå³þ£¬ÈÃÎÒÃÇÀ´¿´¸öÀý×Ó°É¡£

ÏñÏÂͼһÑù£¬ÎÒÏÖÔÚ¾ÍÊÇÄǸö³ÌÐòԱ˧¸ç£¨±¾É«³öÑÝ£©£¬Í»È»ÓÐÒ»ÌìÐÄѪÀ´³±£¬¶¯ÊÖ¿ª·¢ÁËÒ»¸öÍøÉÏÉ̳ǡ£´úÂëPushµ½Github²¢Í¨¹ýCI¹¹½¨³ÖÐø½»¸¶Á÷Ë®Ïߣ¬×îÖÕ×Ô¶¯»¯²¿Êðµ½Ôƶ˲úÆ·»·¾³£¬¹©Óû§·ÃÎÊʹÓá£

Ëæ×ÅÓû§ºÍ·ÃÎÊÁ¿µÄÔö¼Ó£¬ÐèÇóºÍ¹¦ÄÜÒ²Ô½À´Ô½¶à£¬ÏµÍ³Ò²±äµÃÔ½·¢¸´ÔÓ¡£

´ÓÍøÉÏÁ˽⵽×î½üÓиö½Ð΢·þÎñµÄ¼Ü¹¹·Ç³£»ð±¬£¬ÎÒÒ²¸ÏÁË»ØÊ±÷Ö£¬µ±È»Ò²¾õµÃÕâÖּܹ¹È·Êµ¿ÉÒÔ°ïÖúÎÒ½â¾öÏÖÔÚµÄһЩÎÊÌâ¡£

¾­¹ý¶ÔϵͳµÄ·ÖÎö£¬ÎÒ½«É̳ǵĺǫ́²¿·Ö²ð·Ö³öÁË3¸ö·þÎñ£¬ÎªÁ˼òµ¥ÎÒÃǾͳÆÖ®ÎªABCÈý¸ö·þÎñ¡£

ÎÒÃǼÙÉèÒ»¸ö±È½Ï¼«¶ËµÄÇé¿ö£¬Èý¸ö·þÎñÏ໥µ÷Óã¨ÏȲ»¿¼ÂÇÕâÑùÊÇ·ñºÏÀí£©£¬Ã¿¸ö·þÎñͨ¹ý×Ô¼ºµÄ³ÖÐø½»¸¶Á÷Ë®Ïß¶ÀÁ¢²¿Êðµ½²úÆ·»·¾³¡£µ±Ç°²úÆ·»·¾³µÄ¸÷¸ö·þÎñµÄ°æ±¾ÊÇ£ºA£º1.0¡¢B£º2.0¡¢C£º3.0

Ò»Çж¼·Ç³£ÍêÃÀÊDz»ÊÇ£¿¿´£¡ÎÒÃÇÒѾ­×öµ½ÁË·þÎñµÄ¶ÀÁ¢²¿Êð£¡So easy~

µ±È»£¬ÊÂÇé¿Ï¶¨²»»áÄÇô¼òµ¥¡£

ÎÊÌâ³öÏÖÔÚµ±ÎÒ¶ÔA·þÎñ×öÁËÒ»´ÎеÄÌá½»Ö®ºó£¬A·þÎñµÄ×îа汾Éý¼¶µ½ÁË1.1¡£²»ÐÒµÄÊÇ£¬Õâ¸öеİ汾ÒâÍâµÄÆÆ»µÁËAÓëBÖ®¼äµÄÆõÔ¼£¬´íÎóµÄµ÷ÓÃÁËBµÄ½Ó¿Ú£¬µ¼Ö³öÏÖÁË´íÎó¡£

ËäÈ»ÎÒµÄA·þÎñºÍB·þÎñ¶¼ÓбȽÏÍ걸µÄUT£¨µ¥Ôª²âÊÔ£©£¬µ«ÒòΪUTÎÞ·¨·¢ÏÖ·þÎñÖ®¼äµÄ¼¯³ÉÊÇ·ñ±»ÆÆ»µ£¬ËùÒÔÖ»ÓÐUT×÷ΪÖÊÁ¿±£ÕϵÄA·þÎñ³ÖÐø½»¸¶Á÷Ë®ÏßÒ²×ÔȻûÓÐÄÜÁ¦·¢ÏÖAB·þÎñ¼¯³É±»ÆÆ»µµÄÕâ¸öÎÊÌâ¡£×îÖÕµ¼Ö´æÔÚÎÊÌâµÄA1.1°æ±¾±»²¿Êðµ½Á˲úÆ·»·¾³£¬²úÆ·»·¾³³öÏÖÁËÑÏÖØµÄBug¡£

ÇëÎÊÔÚ×ùµÄͬѧ£¬Åöµ½ÕâÑùµÄÇé¿ö£¬Äã»áÈçºÎ´¦Àí£¿

¡°¼Ó¼¯³É²âÊÔ°¡£¡¡±

Õâλͬѧ˵µÄ¼«ÊÇ£¬ÎÒÕâô´ÏÃ÷×ÔȻҲÏëµ½ÁËÕâÒ»µã£¬²»¾ÍÊÇÒª²â¼¯³ÉÂð£¿UT¸É²»Á˾ͼӼ¯³É²âÊÔ²»¾Í³ÉÁË¡£

ΪÁËͳһÓïÑÔ£¬±Ï¾¹¶ÔÓÚ¸÷ÖÖ²âÊԵĽз¨Ì«ÈÝÒ×ÒýÆð»ìÏý£¬²Î¿¼Martin FowlerÔÚ¡¶Î¢·þÎñ²âÊÔ²ßÂÔ¡·Öе͍Ò壬ÎÒÃÇÔÚ±¾ÎÄÖн«ÕâÖÖ²âÊÔ¶à·þÎñ¼¯³ÉµÄ²âÊÔͳһ³Æ×÷¶Ëµ½¶Ë²âÊÔ£¨End-to-End tests£¬¼ò³ÆE2E²âÊÔ£©¡£

Ìí¼ÓÁËE2E²âÊÔÖ®ºó£¬ÎҵĽ»¸¶Á÷Ë®Ï߾ͱä³ÉÁËÏÂÃæÕâ¸öÑù×Ó¡£

ÒòΪÓÐÁËE2E²âÊԵĴæÔÚ£¬ÎÊÌâÓ­Èжø½â£¬µ±A·þÎñµÄÐÂ°æ±¾ÆÆ»µÁËÓëB·þÎñµÄ¼¯³Éʱ£¬E2E²âÊԾͻἰʱÕï¶Ï³öÀ´£¬²¢×èÖ¹A·þÎñµÄ×îа汾Ïò²úÆ·»·¾³Á÷¶¯£¬±£Ö¤²úÆ·»·¾³²»±»ÆÆ»µ¡£

ÕâÑù¿´ËÆÃ»ÓÐʲôÎÊÌ⣬ͨ¹ýÌí¼ÓE2E²âÊÔ£¬½â¾öÁË·þÎñ¼ä¼¯³ÉµÄÑéÖ¤ÎÊÌ⣬µ«ÔÚ²»Öª²»¾õÖУ¬ÎÒÃÇҲʧȥÁË΢·þÎñ¼Ü¹¹µÄÄǸöÖØÒªµÄÌØÐÔ£º¡°·þÎñµÄ¶ÀÁ¢½»¸¶¡±¡£

Ôõô½²£¿±ð¼±£¬ÎÒÃÇÔÙÍùÏ¿´¡£

¼ÙÉèA·þÎñµÄÐÞ¸´¹ý³ÌÖУ¬BºÍC·þÎñÒ²Ìá½»ÁËеĴúÂ룬ÎÒÃǼÙÉèÕâÁ½¸öÌá½»ÊÇûÓÐÎÊÌâµÄ£¬µ«ÒòΪA·þÎñµÄ1.1°æ±¾µ¼ÖÂE2E²âÊÔ¹ÒµôµÄÎÊÌ⻹ûÓб»ÐÞ¸´£¬ËùÒÔBºÍCµÄа汾Ҳ±»E2E²âÊÔÀ¹ÁËÏÂÀ´£¬´ËʱµÄE2E²âÊÔ¾ÍÏñÊÇÒ»¸öÁÁÆðºìµÆµÄ·¿Ú£¬×èÈûÁËËùÓзþÎñͨÍù²úÆ·»·¾³µÄͨµÀ¡£

ËùÒÔ˵£¬Ëæ×ż¯ÖÐE2E²âÊÔµÄÌí¼Ó£¬ÖÊÁ¿±»±£ÕϵÄͬʱ£¬ÎÒÃǵġ°Î¢·þÎñ¼Ü¹¹¡±Ò²ÒÑÇÄȻʧȥÁË·þÎñ¶ÀÁ¢½»¸¶µÄÄÜÁ¦£¬É±µÐһǧ×ÔËð°Ë°Ù£¬Ëðʧ²ÒÖØ£¡

Õâ²¢²»ÊÇÎÒ¼ÙÏëµÄ³¡¾°£¬ÔÚÎÒ×Ô¼º¾­ÀúµÄ¼¸¸öÕæÊµÏîÄ¿ÖУ¬Õâ¸öÎÊÌâ¶¼ÔÚÒ»Ö±À§ÈÅ×ÅÎÒÃÇ¡£´øÀ´Á˸÷ÖÖ¸÷ÑùµÄÑÜÉúÎÊÌ⣬ÀýÈçE2E²âÊÔ³¤Ê±¼äʧ°Ü£¬ÎÞÈËÐÞ¸´£¬ÐÞ¸´ÄѶȴ󣬷þÎñ½»¸¶¶ÂÈû£¬ÎªÁ˱£³Ö½»¸¶Í¨Â·³©Í¨»¹²»µÃ²»ÒýÈëͬÑù´æÔںܴó¸±×÷ÓõÄCodeFrezze»úÖÆºÍÌá½»Token»úÖÆµÈ¡£

¿ÉÒÔ¿´µ½£¬ËäÈ»ÎÒÃÇÄܹ»ÔÚ´úÂë¿â£¬ÔÚ²¿Êð½á¹¹ÉÏ£¬ÉõÖÁÔÚ×éÖ¯ÉϽøÐзþÎñ»¯²ð·Ö£¬µ«¾ÍÒòΪÕâ×îºóÒ»¸ö½»¸¶µÄÊ®Àï·¿Ú£¬×îºóÕâÒ»¸öºìÂ̵ƣ¬ÈÃËùÓеķþÎñÓÖ¾À²øÔÚÁËÒ»Æð£¬ËùÓеķþÎñ»¯²ð·ÖÐÎͬÐéÉ裬×îÖÕÎÒÃǵõ½µÄÒ²Ö»ÊÇÒ»¸ö¿´ÆðÀ´Ïñ΢·þÎñ¼Ü¹¹µÄµ¥ÌåÓ¦ÓöøÒÑ¡£

²ð³ýºìÂ̵ƣ¬¸÷ÐÐÆäµÀ£¬ÊÕ¸´Ê§µØ£¡

ÄÇ£¬ÈçºÎ²ÅÄܽ«Õâ¸ö¡°ºìÂ̵ơ±²ð³ý£¬È÷þÎñ¿ÉÒÔÔÚÓÐÖÊÁ¿±£ÕϵÄǰÌáÏ»¹¿ÉÒÔ×öµ½¶ÀÁ¢½»¸¶ÄØ£¿Õâ¾ÍÊDZ¾ÎÄÒª½â¾öµÄÎÊÌ⣬ÈÃÎÒÃǼÌÐøÍùÏ¿´¡£

ÎҵĽâ¾ö·½·¨ÆäʵҲºÜ¼òµ¥£ºInline E2E tests¡£

¼´²¢²»Ìí¼Óеļ¯ÖеÄPipeline×öE2E²âÊÔ£¬¶øÊÇΪÿһ¸ö·þÎñµÄPipeline¶¼Ìí¼ÓÒ»¸öÏàͬµÄE2E²âÊÔµÄStage£¬¾ÍÏ൱ÓÚ½«E2E²âÊÔInlineµ½Ã¿¸ö·þÎñ¸÷×ԵIJ¿ÊðÁ÷Ë®ÏßÖУ¬ÈçÏÂͼËùʾ¡£

ÆäʵInline E2E²âÊÔ»¹²»ÊÇ×î¹Ø¼üµÄ£¬×î¹Ø¼üµÄ±ä»¯µã¾ÍÊǼÙÉèA·þÎñÓÐÁËеÄÌá½»£¬ÔËÐе½A·þÎñ×Ô¼ºPipelineµÄE2E²âÊÔµÄʱºò£¬´ËʱµÄE2E²âÊÔ²¢²»ÊÇÏñ֮ǰһÑù»ñÈ¡BºÍC·þÎñµÄ×îдúÂë¿â°æ±¾×ö¼¯³ÉÑéÖ¤£¬¶ø»ñÈ¡µ±Ç°²úÆ·»·¾³ÉϵÄBºÍC·þÎñµÄÒѲ¿Êðµ±Ç°°æ±¾×ö¼¯³ÉÑéÖ¤¡£

ÀýÈ磬ÈçͼËùʾA·þÎñµÄ°æ±¾´Ó1.0Éý¼¶µ½ÁË1.1£¬µ±Ç°²úÆ·»·¾³µÄBºÍCµÄ°æ±¾ÊÇ2.0ºÍ3.0¡£ÔÚÖ´ÐÐA·þÎñPipelineÉϵÄE2E²âÊÔʱ£¬ÑéÖ¤³öA1.1ºÍB2.0¼¯³É´æÔÚÎÊÌ⣬²âÊÔ±äºì£¬Pipeline¹Òµô£¬´Ó¶ø×è¶ÏÁËA·þÎñµÄ1.1°æ±¾²¿Êðµ½²úÆ·»·¾³£¬±£Ö¤Á˲úÆ·»·¾³²»»á±»AµÄ1.1°æ±¾ÆÆ»µ¡£

ͬÑù£¬¼ÙÉèA»¹Ã»Óб»ÐÞ¸´Ö®Ç°£¬BÒ²ÓÐÁËеÄÌá½»£¬²úÉúÁËÒ»¸öеİ汾B2.1£¬ÕâʱÔÚB·þÎñPipelineÉϵÄE2E²âÊÔ²¢²»»ñÈ¡µ±Ç°A·þÎñµÄ´úÂë¿â×îа汾1.1×ö¼¯³É²âÊÔ£¬¶øÊÇ»ñÈ¡²úÆ·»·¾³Éϵĵ±Ç°°æ±¾A1.0°æ±¾×ö¼¯³É²âÊÔ¡£ÎÒÃǼÙÉèB2.1ºÍA1.0Ö®¼äµÄ¼¯³ÉûÓÐÎÊÌ⣬²âÊÔͨ¹ý£¬ËùÒÔBµÄ2.1°æ±¾¾Í±»³É¹¦µÄ½»¸¶µ½Á˲úÆ·»·¾³£¬¶ø´Ëʱ²úÆ·»·¾³µÄA·þÎñµÄ°æ±¾ÈÔÊÇ1.0¡£

¿´£¡·þÎñÖ®¼äµÄ×èÈû±»ÉñÆæµÄ½â¾öÁË£¬·þÎñÔÙÒ²²»»á±»¶ÂÔÚÒ»¸öͳһµÄÊ®×Ö·¿Ú£¬¶øÊǸ÷ÐÐÆäµÀ£¬AµÄ³µµÀ³öÁËʹʣ¬ÊÇAµÄÎÊÌ⣬Ӧ¸ÃÓÉAÀ´³Ðµ£ºó¹ûºÍ½â¾öÎÊÌ⣬²»Ó¦¸ÃÓ°Ïìµ½ÆäËû·þÎñ£¬ÆäËû·þÎñÒÀÈ»¿ÉÒÔ³ÖÐøµÄ½»¸¶µ½²úÆ·»·¾³¡£

Ïòǰ¿´ÊdzÖÐø¼¯³É£¬Ïòºó¿´ÊdzÖÐø½»¸¶£¡

¿´µ½ÕâÀï¿ÉÄÜÓÐЩС»ï°é»á¸Ðµ½ÓÐЩʧÍû¡£Õ¦ºô°ëÌ죬²»¾ÍÊǽ«E2E²âÊÔÕûµ½Ã¿¸ö·þÎñµÄPipelineÀÔÙ°Ñ»ñÈ¡°æ±¾´Ó×îдúÂë¸Ä³É²úÆ·»·¾³Ã´£¿ÓÐɶÀ÷º¦µÄ¡£

µ«ÊÇ£¬ÔÚÎÒ¿´À´£¬Õâ¸ö¿´ËƼòµ¥µÄ±ä»¯£¬ÒâÒåÈ´ÊÇÖØ´óµÄ£ºËü½ÒʾÁË¡°³ÖÐø¼¯³É¡±ºÍ¡°³ÖÐø½»¸¶¡±µÄÒ»¸öÖ÷񻂿±ð¡£

¡°³ÖÐø¼¯³É¡±ºÍ¡±³ÖÐø½»¸¶¡±£¬ÕâÁ½¸ö¸ÅÄîÏàÐÅ´ó¼ÒÒ»¶¨¶¼²»Ä°Éú£¬ÔÚÈí¼þÁìÓòÒ²±»ÌáÁ˲»ÉÙÄêÍ·ÁË£¬²»ËãʲôиÅÄîм¼Êõ¡£µ«¶ÔÓÚÕâÁ½¸ö¸ÅÄÎÒÃǾ­³£Ò»ÆðÌá¼°£¬Ò²¾­³£»ìÏý£¬¸ã²»Çå³þÁ½ÕßµÄÇø±ðµ½µ×ÊÇʲô£¬¿ÉÄÜÈÏΪ³ÖÐø½»¸¶Ö»²»¹ýÊdzÖÐø¼¯³ÉµÄÑݽø°æ£¬ÐÂÆ¿×°¾É¾Æ¶øÒÑ¡£

µ«ÆäʵËüÃÇÈ´ÓÐ×ű¾ÖʵÄÇø±ð¡£

¡°³ÖÐø¼¯³É¡±¹Ø×¢µÄÊǸ÷¸ö¼¯³Éµ¥ÔªÖ®Ç°×îа汾µÄ¼¯³ÉÎÊÌ⣬¼´ÊDz»ÊÇij¸ö¼¯³Éµ¥ÔªµÄ×îÐÂ°æ±¾ÆÆ»µÁËϵͳÕûÌåµÄ¼¯³É£¬ÎÒ¹ÜÕâÖÖÊӽǽУºÏò¡°Ç°¡±¿´¡£

¶ø¡°³ÖÐø½»¸¶¡±¹Ø×¢µÄÓ¦¸Ã²»ÊǼ¯³Éµ¥Ôª×îа汾֮¼äµÄ¼¯³ÉÎÊÌ⣬¶øÊÇij¸ö¼¯³Éµ¥ÔªµÄ×îа汾ÊÇ·ñ¿ÉÒÔ£¨Äܺ͸ң©²¿Êðµ½²úÆ·»·¾³¡£»»¾ä»°Ëµ¾ÍÊÇά³Ö²úÆ·»·¾³µÄÆäËû·þÎñ²»±ä£¬Ö»½«µ±Ç°¼¯³Éµ¥ÔªµÄ×îа汾²¿Êðµ½²úÆ·»·¾³£¬²úÆ·ÊÇ·ñÒÀÈ»¿ÉÓ㬲»±»ÆÆ»µ¡£ËùÒÔÔÚ¡°³ÖÐø½»¸¶¡±µÄÊÓ½ÇÏ£¬Ó¦¸Ã¹Ø×¢µÄÊǵ±Ç°¼¯³Éµ¥ÔªÓë²úÆ·»·¾³ÉÏµÄÆäËû·þÎñµÄ°æ±¾ÊÇ·ñ¼æÈÝ£¬ÎÒ¹ÜÕâÖÖÊӽǽУºÏò¡°ºó¡±¿´¡£

 

Ïòǰ¿´ÊdzÖÐø¼¯³É£¬Ïòºó¿´²ÅÊdzÖÐø½»¸¶£¬Èç¹ûǰºó¶¼²»¿´ÄǾÍÊÇÔÚÂã±¼¡£

µ«Êǿ϶¨ÔçÓÐͬѧÔÚÐÄÀïÒɻ󣬽«E2E²âÊÔÏ·ŵ½Ã¿Ò»¸ö·þÎñ×Ô¼ºµÄPipelineÖУ¬¿¿Æ×ô£¿ÊDz»ÊÇÌ«ÖØÁË£¿¸ù¾Ý²âÊÔ½ð×ÖËþ£¬E2E²âÊÔÓ¦¸ÃÊÇÊôÓÚ¿¿½ü½ð×ÖËþ¶¥¶ËµÄ²âÊÔÖÖÀ࣬ÎÞÂÛ´ÓÊýÁ¿ºÍ¸²¸Ç·¶Î§Ó¦¸ÃÒ²¶¼²»»áÌ«¶à£¬ÔõôÄÜ¿¿ËüÀ´±£ÕÏ·þÎñÖ®¼äµÄËùÓм¯³ÉµãºÍÆõÔ¼ÄØ£¿

Ö÷½ÇµÇ³¡¨CÆõÔ¼²âÊÔ

ϸÐĵÄͬѧ¿Ï¶¨ÒѾ­·¢ÏÖÉÏÃæ×îºóÒ»ÕÅͼÖУ¬ÎÒÒѾ­ÇÄÇĵİÑE2E²âÊÔ±äΪÁËCT£¬¼´Contract Test£¬ÆõÔ¼²âÊÔ¡£

ÆõÔ¼²âÊÔÒ²ÊÇÕâÁ½Äê°éËæÎ¢·þÎñ¼Ü¹¹µÄÐËÆð£¬¾­³£±»Ìá¼°µÄÒ»ÖֱȽÏеIJâÊÔÀàÐÍ¡£ÔÚ²âÊÔ½ð×ÖËþÖУ¬ËûµÄλÖýéÓÚE2EºÍComponent Tests£¨¿ÉÒÔÀí½â³Éµ¥¸ö·þÎñµÄAPI²âÊÔ£©Ö®¼ä¡£

¼òµ¥µÄÀí½â£¬ÆõÔ¼²âÊÔ¾ÍÊÇÒ»ÖÖ¿ÉÒÔÓÃÀàËÆÓÚµ¥Ôª²âÊԵļ¼ÊõÑéÖ¤Á½Á½·þÎñÖ®¼ä¼¯³ÉµÄ²âÊÔ¼¼Êõ¡£ËüÏà±ÈÓÚ¸üµÍ²ã´ÎµÄµ¥Ôª²âÊÔµÄÓÅÊÆÊÇ¿ÉÒԲ⼯³É£¨Á½Á½·þÎñÖ®¼ä£©£¬Ïà±ÈÓÚ¸ü¸ß²ã´ÎµÄE2E²âÊÔµÄÓÅÊÆÊÇʵÏÖ·½Ê½ÉÏÓÖÀàËÆÓÚµ¥Ôª²âÊÔ£¬¸üÇáÁ¿£¬Åܵĸü¿ì£¬¸²¸ÇµÄ·¶Î§Ò²×ÔÈ»¿ÉÒÔ¸ü¹ã¸üϸ¡£

ʹÓÃÆõÔ¼²âÊÔÌæ»»µôE2E²âÊÔÖ®ºó£¬Õû¸ö¼Ü¹¹Ò²»á±äµÃ¸ü¸´ÔÓһЩ£¬Ä¿Ç°ÆõÔ¼²âÊԵĿò¼ÜÒ²Óкܶ࣬Èç´ó¼Ò³£³£Ìáµ½µÄPact»òÊÇSpringContractsµÈµÈ¡£ÕâÀïÎÒÏÈÒÔPactΪÀýÓèÒÔ˵Ã÷£¬ÆäËû¿ò¼ÜʵÏÖÉÏ¿ÉÄÜÓÐЩ²î±ð£¬µ«ÊÇ˼·ÊÇÒ»Öµġ£

A·þÎñµ÷ÓÃB·þÎñµÄÒ»¸öAPI£¬ÎÒÃǾͳÆÎªAºÍBÖ®¼ä´æÔÚÁËÒ»¸öÆõÔ¼£¬¼´BÓ¦¸Ã°´ÕÕÕâ¸öÆõÔ¼Ìṩһ¸öÂú×ãÆõÔ¼ÒªÇóµÄAPI£¬¶øAÒ²Ó¦¸Ã°´ÕÕÕâ¸öÆõÔ¼Ô¼¶¨µÄ·½Ê½À´µ÷ÓÃBµÄÕâ¸öAPI¡£ÔÚÕâ¸ö¹ý³ÌÖÐA×÷Ϊµ÷Ó÷½£¬ÎÒÃdzÆÖ®ÎªConsumer¶Ë¡£B×÷Ϊ±»µ÷Ó÷½£¬ÎÒÃdzÆÖ®ÎªProvider¶Ë¡£

Èç¹ûAºÍB¶¼ÂÄÐÐÆõÔ¼£¬°´ÕÕÆõÔ¼¶¨ÒåµÄÔ¼¶¨µ÷Óúͱ»µ÷Óã¬ÎÒÃǾͿÉÒÔÈÏΪ¼¯³É²»»áÓÐÎÊÌâ¡£µ«ÎÞÂÛÊÇBÉÃ×ÔÐÞ¸ÄÁËAPIÆÆ»µÁËÆõÔ¼£¬»¹ÊÇAÉÃ×ÔÐÞ¸ÄÁ˵÷ÓÃAPIµÄ·½Ê½ÆÆ»µÁËÆõÔ¼£¬¶¼»áµ¼ÖÂÆõÔ¼±»ÆÆ»µ£¬·´Ó¦µ½²âÊÔÉϾÍÊÇÆõÔ¼²âÊÔ»áʧ°Ü£¬·´Ó¦µ½²úÆ·ÉϾÍÊǹ¦Äܱ»ÆÆ»µ£¬³öÏÖBug¡£

ÿ¸öÆõÔ¼£¬ÀýÈçA->B£¬¶¼»áÓÐConsumer¶ËºÍProvider¶ËÉú³ÉµÄÁ½¸ö²ú³öÎ·Ö±ðÊÇa-b.consumer.json.1.1(ÓÉConsumer¶ËÉú³ÉµÄÆõÔ¼Îļþ£¬ËùÒÔ°æ±¾Ò²ÊÇConsumer¶ËAµÄ°æ±¾ºÅ)ºÍa-b.provider.jar.2.0£¨ÓÉProvider¶ËÉú³ÉµÄÆõÔ¼ÑéÖ¤²âÊÔ°ü£¬ËûÓÉProvider¶ËÉú³É£¬ËùÒÔ°æ±¾ÊÇBµÄ°æ±¾£©¡£Õâ¸öjar°üÆäʵ¾ÍÊÇÒ»×é²âÊÔ£¬ËûµÄÊäÈëÊÇa-b.consumer.json£¬²ú³öÔòÊDzâÊԵĽá¹û£¬Ò²¾ÍÊÇÆõÔ¼µÄÑéÖ¤½á¹û£º³É¹¦»òÊÇʧ°Ü¡£

¿ÉÒÔ°ÑA·þÎñ²ú³öµÄÆõÔ¼Îļþa-b.consumer.json.1.1ÏëÏó³ÉÒ»°ÑÔ¿³×£¬°ÑB·þÎñ²ú³öµÄProvider¶ËµÄ²âÊÔa-b.provider.jar.2.0ÏëÏó³ÉÒ»°ÑËø¡£ÄÇÆõÔ¼²âÊÔµÄÖ´Ðйý³Ì¾ÍÏñÊÇÓÃÕâ°ÑÔ¿³×ÊÔ×ÅÈ¥´ò¿ªÕâ°ÑËø£ºÈç¹û¿ÉÒÔ´ò¿ª£¬ÎÒÃÇÈÏΪÕâA1.1->B2.0µÄÆõÔ¼ÊÇÂú×ãµÄ£¬·´Ö®ÆõÔ¼¾ÍÊDZ»ÆÆ»µÁË¡£

ÖµµÃ×¢ÒâµÄÒ»µã¾ÍÊÇ£¬ÆõÔ¼²âÊÔ²»ÏñE2E²âÊÔ£¬ËüÊÇÓз½ÏòµÄ£¬ËùÒÔÎÒÃÇ¿´µ½a-bºÍb-aÊÇÁ½¸ö²»Í¬µÄÆõÔ¼¡£

ËùÒÔ£¬Ö»Óе±A1.1->B2.0ºÍB2.0->A1.1Ë«ÏòµÄÆõÔ¼¶¼±»Ñé֤ͨ¹ýºó£¬ÎÒÃDzÅÄÜÈÏΪA1.1°æ±¾ºÍB2.0°æ±¾µÄ¼¯³ÉÊÇûÓÐÎÊÌâµÄ¡£

ÓÃÆõÔ¼²âÊÔÌæ»»E2E²âÊÔ

»Øµ½Ç°ÃæµÄÀý×ÓÉÏ£¬¼ÙÉèÎÒÃÇÒѾ­¹¹½¨ÁËABCÈý¸ö·þÎñÁ½Á½Ö®¼äµÄÆõÔ¼²âÊÔ¡£´Ëʱ£¬A·þÎñÓÐÁËеÄÌá½»Éý¼¶µ½ÁË1.1°æ±¾£¬ÄÇÎÒÃÇÈçºÎ²ÅÄÜͨ¹ýÆõÔ¼²âÊÔÀ´ÑéÖ¤A1.1°æ±¾ÄÜ·ñ½»¸¶µ½²úÆ·»·¾³ÄØ£¿

´ð°¸¾ÍÊÇֻҪͨ¹ýAµÄ1.1°æ±¾µÄ×îдúÂ룬Éú³ÉËùÓÐA×÷ΪConsumer¶ËµÄÆõÔ¼Îļþ£¨a-b.consumer.json.1.1ºÍa-c.consumer.json.1.1£©£¬ÓÃÕâÁ½°Ñ¡°Ô¿³×¡±È¥ÊÔ×Å¿ª£¨×÷ΪÊäÈëÖ´ÐÐProvider¶Ë²âÊÔ£©²úÆ·»·¾³¶ÔÓ¦µÄÁ½°Ñ¡°Ëø¡±£¨a-b.provider.jar.2.0ºÍa-c.provider.jar.3.0£©¡£

Èç¹û¶¼¿ÉÒÔ´ò¿ª£¨²âÊÔͨ¹ý£©µÄ»°£¬¾ÍÖ¤Ã÷AµÄа汾1.1×÷ΪConsumer¶ËÓë²úÆ·»·¾³µÄBºÍC·þÎñÊǼæÈݵġ£

µÈµÈ£¬±ð׿±£¬»¹Ã»Íê¡­¡­

ÒòΪÎÒÃÇ»¹ÐèÒª¿¼ÂÇA×÷ΪProviderµÄÇé¿ö£¬×ö·¨»¹ÊÇͨ¹ýAµÄ1.1°æ±¾µÄ×îдúÂëÉú³ÉA°æ±¾×÷ΪProvider¶ËµÄÆõÔ¼²âÊÔ£¨b-a.provider.jar.1.1ºÍc-a.provider.jar.1.1£©£¬ÄÃ×ÅÕâÁ½°Ñ¡°ÐÂËø¡±£¬È»ºóÊÔ×ÅÓòúÆ·»·¾³ÉϵÄÁ½°Ñ¡°Ô¿³×¡±£¨b-a.consumer.json.2.0ºÍc-a.consumer.json3.0£©È¥¿ª¡£

Èç¹ûÒ²¶¼¿ÉÒÔ´ò¿ª£¨²âÊÔͨ¹ý£©µÄ»°£¬¾ÍÖ¤Ã÷AµÄа汾1.1×÷ΪProvider¶ËÓë²úÆ·»·¾³µÄBºÍC·þÎñÒ²ÊǼæÈݵġ£

ÖÁ´Ë£¬µ±ÑéÖ¤ÁËAµÄа汾1.1ÎÞÂÛÊÇ×÷Ϊµ÷Óö˻¹ÊDZ»µ÷Óö˶¼Óë²úÆ·»·¾³ÉÏµÄÆäËû·þÎñÆõÔ¼Âú×ãºó£¬ÎÒÃǾÍÈÏΪA1.1ÓëB2.0ºÍC3.0¼¯³ÉÊÇûÓÐÎÊÌâµÄ£¬Ò²¾Í´ú±íA1.1¿ÉÒÔ±»·ÅÐĵز¿Êðµ½²úÆ·»·¾³ÖУ¬Ìæ´úÏÖÔÚµÄ1.0°æ±¾¡£

×îºó£¬ÇÃºÚ°å»®ÖØµã

΢·þÎñ¼Ü¹¹ÏµĶÀÁ¢²¿Ê𣨽»¸¶£©ºÜÖØÒª£¬µ«ÍùÍùÈÝÒ×±»ºöÊÓ£¬Ã»Óб»ÒýÆð×ã¹»ÖØÊÓ¡£

ΪÁËʵÏÖ΢·þÎñµÄ¶ÀÁ¢³ÖÐø½»¸¶£¬ÎÒÃÇÒªÏò¡°ºó¡±¿´£¬²»ÒªÏò¡°Ç°¡±¿´£¬¼´¹Ø×¢µ±Ç°±ä¸ü·þÎñÓ벿Êð»·¾³ÖÐÆäËû·þÎñµÄ¼æÈÝÐÔ¶ø²»ÊǹØ×¢µ±Ç°±ä¸ü·þÎñÓëÆäËû·þÎñ×îа汾µÄ¼æÈÝÐÔ¡£

ÓÃÆõÔ¼²âÊÔÀ´Ìæ´úE2E²âÊÔ£¬½µµÍ²âÊԳɱ¾£¬Ìá¸ß²âÊÔ¸²¸Ç£¬¾¡Ôç²âÊÔ¡£²¢Í¨¹ý²»¶ÏµØÍêÉÆÆõÔ¼¹ÜÀí£¬±£ÕÏ΢·þÎñ¼Ü¹¹ÖÊÁ¿ºÍ±ÜÃâ΢·þÎñ¼Ü¹¹¸¯»¯½©»¯¡£

 

   
3507 ´Îä¯ÀÀ       31
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù