ã¢ã«ãã¡ã©ãã®æ¹æ³ã¯ãé床ãäºç®ãå質ã®ãã©ã³ã¹ãèŠã€ãããšããåé¡ã解決ããŸãããä»æ¥ã¯ã¢ã«ãã¡ã¢ãã€ã«ã®äŸã§èŠãŠãããŸãã ä»åŸã泚æããã¿ãã¬!!! ç§ãã¡ã®ãœãªã¥ãŒã·ã§ã³ã¯githubã§å©çšå¯èœã§ãïŒ colibri-uiã©ã€ãã©ãªãŒãšcolibri-ui-templateã¯ã¯ã€ãã¯ã¹ã¿ãŒãçšã§ãã
Pavel pvivanovãšLilia Lidiyatullinaã¯èšäºã®å·çã«ç©æ¥µçã«åå ããŸãã

ã©ããã
2013幎ã«ã¯ãååž°ãã¹ãããã»ã¹ã«äž¡æ¹ã®OSïŒiOS / AndroidïŒã®1人ã®ãã¹ã¿ãŒã1æ¥ããã£ãŠããããããã¹ãã®èªååã«ã€ããŠèããããšãããããŸããã§ããã
ãã ããã¢ããªã±ãŒã·ã§ã³ã®ç©æ¥µçãªæé·ãæ°ãããµãŒãã¹ããã³ãµãŒãã¹ã®è¿œå ã«ãããæåãã¹ãã®ã³ã¹ããæ¥éã«å¢å ãå§ããŸããã
ããã«çµ¶ããæ°ããæ©èœãçã¿åºãããŒã ã®æ°ãå¢ãããŸãïŒ1ãã6ïŒ-ãããŠååž°ãã¹ãã¯ããã»ã¹ã®è¡æ ãšãªããçç£ãå£ããŠå±éºã«ãããå±éºããããŸãã
ããæç¹ã§ããªãªãŒã¹ã®ã¢ããªã±ãŒã·ã§ã³ãæºåããæç¹ã§ã6ã€ã®ããŒã ãã¹ãŠããã¢ã€ãã«ãã§ããã6人ã®ãã¹ã¿ãŒå šå¡ãç²ããã«ãªãªãŒã¹åè£ããéè¡ããããŠãããšããçµè«ã«éããŸããã äžæçã«ã¯ãååž°ãã¹ãã®æéã8å¶æ¥æ¥ïŒ6人ïŒïŒã«å¢å ããŸããã
ãã®ç¶æ³ã¯ããã¹ã¿ãŒèªèº«ã«åæ©ä»ããå ããŸããã ããæç¹ã§ããäŒæ¥ã®ããã«éè¡ããïŒã
ã©ããã
åé¡ã¯äœããã®åœ¢ã§è§£æ±ºããå¿ èŠãããããbablishkoãæ¥ç¶ãããã«ã¯2ã€ã®æ¹æ³ããããŸããã
- ãã¹ã¿ãŒã®ã©ã³ã¯ã«æ°ãã人ã ãé£ããŠè¡ã;
- æåãã¹ããæåŠããããã®ãã¹ãèªååã
å«ççããã³çµæžçãªçç±ããã2çªç®ã®ãªãã·ã§ã³ãéžæããŸãããçµå±ã®ãšãããèªååã®ã³ã¹ãã¯ããšã«ããã¯ããã«æçãªæè³ã§ãã
圌ãã¯ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®ãã¹ããèªååããããã®ãã€ããããããžã§ã¯ãã§ãéžæããæ¹åãžã®åããéå§ããããšã«ããŸããã ãã®çµæã«åºã¥ããŠãå°æ¥ã®æ©åšã®èŠä»¶ãäœæããŸããã
- èªååããã¹ãããããã®ããŒã«ã¯ã䜿çšãéå§ããããã«éçºã«å
¥ãããã®å¯èœãªéãäœããããå€ã§ããå¿
èŠããããŸãã
ããŒã«ã®äž»ãªãŠãŒã¶ãŒã¯èªååã®çµéšã®ãªã補åããŒã ã®ãã¹ã¿ãŒã§ãããããã³ãŒãã®èšè¿°ãæå°éã«æããããè€éãªãã±ãŒã¿ãŒãèšè¿°ããå¿ èŠããªããªããŸãã - ãã¹ãã¹ã¯ãªããã¯ãéçºè 以å€ã®ãŠãŒã¶ãŒãç解ããå¿ èŠããããŸãã
- ãœãªã¥ãŒã·ã§ã³ã¯ã¯ãã¹ãã©ãããã©ãŒã ã§ããã2ã€ã®ãã©ãããã©ãŒã ïŒAndroidãšiOSïŒã§åæã«åäœããå¿ èŠããããŸãã
- æ¥ç¶ãããã¢ãã€ã«ããã€ã¹ã®ã»ãããæã€ãã¡ãŒã ã圢æããå¿ èŠããããŸãã
- ãœãªã¥ãŒã·ã§ã³ã¯ãéè¡ã®ä»ã®ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã«å¯ŸããŠã¹ã±ãŒã©ãã«ã§ãªããã°ãªããŸããã
åãåã£ãèŠä»¶ã«åºã¥ããŠãèªååããŒã«ãéžæããå¿ èŠããããŸããã
ãã€ããããããžã§ã¯ãã®äžç°ãšããŠã以äžã確èªããŸããã
- ãããã£ãŠã
- ãšã¹ãã¬ããœ
- UIã¬ã³ãŒããŒ
- æ©èœãç¶æãã
- ã²ãããã
- ã¢ããŠã
ã¯ãã¹ãã©ãããã©ãŒã ãœãªã¥ãŒã·ã§ã³ã®èŠä»¶ã«ããããªã¹ãã®æåŸã®ãã¢ã«éžæãçµã蟌ãŸããŸããã éçºãšãµããŒãã«é¢äžãããã掻çºãªã³ãã¥ããã£ã®ãããæçµçãªéžæã¯Appiumãæ¯æããŠè¡ãããŸããã
éçºã«å ¥ãããã®ãããå€ãäžãã
äžäœã¬ãã«ã®ããã»ã¹ã®èªååã¯ãã¹ã¯ãªãããšã³ãŒãã§ãã ãã ãã誰ããéçºããŒã«ãç解ããããèªåã§äœããæžãããããããšããã§ããŸããã ãã®ããããããžã§ã¯ãã§BDDæ¹æ³è«ã䜿çšããŠããã®ç¬éãã§ããã ãåçŽåããããšã«ããŸããã
ç§ãã¡ã®ãã¬ãŒã ã¯ãŒã¯ã¯ããã€ãã®æœè±¡åã¬ãã«ã«åå²ãããäžäœã¬ãã«ã¯äººæ°ã®ããGherkinãã¹ãèšè¿°èšèªã§èšè¿°ãããäžäœã¬ãã«ã¯éçºè ãJavaããã°ã©ãã³ã°èšèªã§èšè¿°ããŸãã JBehaveã¯ã¹ã¯ãªããçšã«éžæãããŸããã
ã§ã¯ããŠãŒã¶ãŒåŽã®æ±ºå®ã¯ã©ã®ããã«èŠããã®ã§ããããïŒ
Then " " When " " " " When " " Then " " When " " " " When " "
ãã®äŸã§ã¯ãã¡ã€ã³ç»é¢ããã¢ãã€ã«æ¯æãç»é¢ãžã®ç§»è¡ã«ã€ããŠèª¬æããŸãã ããããã誰ããããžãã¹ããã»ã¹ã®èŠ³ç¹ãããã©ã®æ¹æ³ã§ç®çã®ç»é¢ã«å°éãããã¯åé¡ã§ã¯ãªãã圌ã¯æ£ãããšå察ããã§ãããã å®éãç®çã®ã»ã¯ã·ã§ã³ã«ç§»åããããšã劚ãããã®ã¯äœããããŸãããããšãã°ã次ã®ããã«ãåã®ã¹ã¯ãªããã®æåŸã®5è¡ã1è¡ã«çœ®ãæããŸãã
When " "
ãã ãããã®ãããªæé ã¯ååçã§ã¯ãªããiOSãšAndroidã®äž¡æ¹ã®ãã©ãããã©ãŒã ã§åå©çšããã®ãé£ãããªããŸãã çµå±ãéçºã«å ¥ãããã®ãããå€ãäžãããå ŽåãçŸåšã®æé ãå¯èœãªéãåå©çšããå¿ èŠããããŸããããããªããšããã¹ã¿ãŒã¯åžžã«æ°ããæé ãå¿ èŠãšãããã®çµæããã®å®è£ ãå¿ èŠã«ãªããŸãã ãããŠãããã§æãåºãããã«ããã¹ã¿ãŒã¯å¿ ãããå¿ èŠãªéçºã¹ãã«ãæã£ãŠãããšã¯éããŸããã
ç»é¢ã«ã€ããŠèª¬æããŸã
ã¹ã¯ãªããã§ãã¹ãŠãéåžžã«æ確ãªå Žåããã·ãŒããããèªã¿åãããã¢ã¯ã·ã§ã³ã説æããŸãããã±ãŒã¿ãŒãæ瀺çã«äœ¿çšããªãã§ãã©ã®ããã«æå®ã§ããŸããïŒ
ãšã³ããªã®ãããå€ãäžãããšããç®æšãéæãã1ã€ã®æ¹æ³ã¯ãè€éãªãã±ãŒã¿ãŒã®èšè¿°ãåçŽåãããããžã§ã¯ãã®ãã¹ãŠãããæ·±ãé ãããšã§ãã ãã®ããã説æã§ãã±ãŒã¿ãŒãäœæããæ€çŽ¢ã«äœ¿çšã§ããããã«ãã2ã€ã®å·¥å ŽãèªçããŸããã æ®å¿µãªããããã±ãŒã¿ãŒãäœæããã«å®è¡ã§ãããšã¯éããªãããããŸãã«äœæããå¿ èŠããããŸãã ãã®ãããªç¶æ³ã§ã¯ãXPathã§èŠçŽ ãèŠã€ããæ©äŒãæ®ããŸããã
ç»é¢äžã®èŠçŽ ã®èª¬æã¯ã4ã€ã®ã³ã³ããŒãã³ãã§æ§æã§ããŸãã 4ã€ã®ã³ã³ããŒãã³ãã¯ãã¹ãŠäœ¿çšãããããšã¯ãããŸããããããšãã°ãæåã«èŠçŽ ãŸã§ã¹ã¯ããŒã«ããŠããã¯ãªãã¯ããå¿ èŠãããå Žåãªã©ã2ã€ã䜿çšã§ããŸãã
èŠçŽ ã®ã»ãããšããŠã®ããŒãžèšè¿°ã®ã³ã³ããŒãã³ãïŒ
- ã³ã³ãã³ãã®èª¬æ -ãã®èå¥åã«ãããAndroidäžã®èŠçŽ ãèŠã€ããããšãã§ããŸãã
- ResourceId / AccessabilityIdeitificator-äžæã®èå¥åã ã¢ããªã±ãŒã·ã§ã³éçºè ã¯èå¥åãå ¥ããªãããšããããŸãããããã¯ããããAndroid / iOSã®ã¢ããªã±ãŒã·ã§ã³ã®ããŒã¯ã¢ããã§èŠã€ããããšãã§ããæãæãŸããèŠçŽ ã§ãã
- ããã¹ã -ããšãã°ãã¯ãªãã¯ã§ãããã¿ã³äžã®å¯èŠããã¹ãã
- XPath -xmlããŒã¯ã¢ããçšã®éåžžã®XPathã ããã¯ãèŠçŽ ãæ確ã«èª¬æããåã®3ã€ã®æ¹æ³ãæ©èœããªãã£ãå Žåã«äœ¿çšãããŸãã
ã¹ã¯ãªããã§èŠçŽ ã®ååïŒã¹ããŒãªãŒå ã®ååïŒã䜿çšããããããã³ã³ãã³ãã®èª¬æ/ ResourceId / AccessabilityIdeitificator / Text / XPathãååŸããŸãã
ãã¹ãŠã®èª¬æã.csvãã¡ã€ã«ã«åéããŸãã衚圢åŒã§ç°¡åã«ç·šéã§ããŸãã äžæ¹ã§ã¯ãããã¯éåžžã®PageObjectã§ãããä»æ¹ã§ã¯ããã¹ã¿ãŒã¯ã³ãŒãå ã®ãã±ãŒã¿ãŒãç·šéããå¿ èŠããããŸããã

ããã¯ã¯ããã«ç°¡åã§ãïŒ ç»é¢ã«ã€ããŠèª¬æããã¹ã¯ãªãããäœæããèªåãã¹ããéå§ããŸããããéèŠãªã¿ã¹ã¯ã«ã€ããŠå°ãã話ãããå éšããcolibri-uiãã¬ãŒã ã¯ãŒã¯ãèŠãŠã¿ãŸãããã
ç°å¢ãã«ã¹ã¿ãã€ãºãã
Appiumã䜿çšããå Žåã䜿çšããã¢ãã€ã«ããã€ã¹ãåžžã«ç€ºãå¿ èŠããããŸãã ãã®ãœãªã¥ãŒã·ã§ã³ã§ã¯ãããã€ã¹udidïŒäžæã®èå¥åïŒãšãã®ååããããžã§ã¯ãã«è»¢éããå¿ èŠããããŸãã ååã¯ãäœãåé¡ãçºçããå Žåã«ããã°ã«èšé²ãããŸãã udidã䜿çšãããšããã¡ãŒã å šäœãããããã¹ãŠãåãMacã«æ¥ç¶ãããŠããããããããžã§ã¯ãã¯ç®çã®ã¢ãã€ã«ããã€ã¹ã§åäœããŸãã
çŸåšãã¢ãã€ã«ããã€ã¹ã®èª¬æã¯äžé£ã®ãã©ã«ããŒã®åœ¢åŒã§ä¿åãããåãã©ã«ããŒã«ã¯.propertyããã³json-objectã¿ã€ãã®èšå®ãã¡ã€ã«ãå«ãŸããŠããŸãã .propertyãã¡ã€ã«ã¿ã€ãã«ã¯udidãšããã€ã¹åãå«ãŸããjsonãªããžã§ã¯ãã«ã¯ã¯ã©ã¹ã¿ãŒã¢ãŒãã§åäœããããã®ããŒãèšå®ã®èª¬æãå«ãŸããŸãïŒcolibri-ui-templateãåç §ïŒã
å°ããªãªããããã¯ããŸãã¯uddæ¥ç¶ããã€ã¹ãååŸããæ¹æ³ïŒ
Androidã§ã¯ãã³ã³ãœãŒã«ã§ãadbããã€ã¹ããiOSã§ã¯ãinstruments -s devices | grep -vïŒã·ãã¥ã¬ãŒã¿ãŒ| $ïŒid -unïŒïŒããå®è¡ããæ¥ç¶ãããããã€ã¹ã®ãªã¹ããååŸããŸãã Androidã®å Žåããªã¹ãã«ã¯å®éã®ããã€ã¹ãšãšãã¥ã¬ãŒã¿ãŒã®äž¡æ¹ãå«ãŸããiOSã®å Žåã¯å®éã®ããã€ã¹ã®ã¿ããã£ã«ã¿ãŒåŠçããŸãã 誰ãããšãã¥ã¬ãŒã¿ãŒã ããååŸããå¿ èŠãããå Žåã¯ãå¥ã®ãã£ã«ã¿ãªã³ã°ãå¿ èŠã§ãããinstruments -s devices | grepã·ãã¥ã¬ãŒã¿ãŒãã
ãã®ãã©ã«ããŒã®ã»ãããããŒã¿ããŒã¹ãŸãã¯å¥ã®ã¹ãã¬ãŒãžã«è»¢éããããç°å¢ãäœæããããã»ã¹ã§äžèšã®ã³ãã³ããå®è¡ããŠãªã¹ããåçã«åä¿¡ããããšãèšç»ãããŠããŸãã çŸåšããã®ãããªæ¹åã®å¿ èŠã¯ãããŸããã
ããã«ãäžèšã®ã³ãã³ããMacã§åäœãããã«ã¯ãADBãã©ã€ããŒãšXcodeãããããã€ã³ã¹ããŒã«ããå¿ èŠãããããšã«æ³šæããŠãã ããã ãšãã¥ã¬ãŒã¿ã§äœæ¥ãããšãã¯ãã€ã¡ãŒãžãåçž®ãããããšãå¿ããªãã§ãã ããã
ãŠãŒã¶ãŒã説æããŸã
ãããŸã§ããããžã§ã¯ããæãåçŽãªã¢ãŒãã§èµ·åããããã«å¿ èŠãªãã¹ãŠãèæ ®ã«å ¥ããŠããŸããã ã¹ã¯ãªãããç»é¢ã®èª¬æãããã€ã¹ã®èª¬æããããŸãã ãã ãããã¹ãããŠããã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããã ãã§ã¯äžååã§ãã ãã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãäžéšã®ãŠãŒã¶ãŒããã¹ããã³ãã«ãã°ã€ã³ããé»è©±çªå·ããã°ã€ã³ããã¹ã¯ãŒããã¢ã«ãŠã³ãçªå·ãªã©ã®è³æ Œæ å ±ã䜿çšããå¿ èŠããããŸãã
ãŠãŒã¶ãŒè³æ Œæ å ±ãæã€ãã¡ã€ã«ããããžã§ã¯ãå ã®å¥ã®ãã©ã«ããŒã«ãããŸãã å°æ¥çã«ã¯ãããã€ã¹ãšãšãã«ãããããããŒã¿ããŒã¹ãŸãã¯äžå€®ã¹ãã¬ãŒãžã«è»¢éããŸãã
ã¹ã¯ãªãããšããŒãžã®èª¬æã§ã¯ãïŒuserNameïŒãšãã圢åŒã®ããŒã«ãŒã䜿çšããŸããããã«ããããŠãŒã¶ãŒãã¡ã€ã«ããããããã£å€ãååŸããå®è¡äžã«ãããã®ããŒã«ãŒã眮ãæããŸãã
ãããã£ãŠãç°ãªããŠãŒã¶ãŒã§åãã¹ã¯ãªããã»ãããåæã«è¿œè·¡ã§ããŸãã
ããŒãžã®èª¬æã§ã¯æ¬¡ã®ããã«è¡šç€ºãããŸãã

ããã¯ãuser.propertyãã¡ã€ã«ã§ã®è¡šç€ºæ¹æ³ã§ãã
paymentAccountRur=··0278 beneficiarAccountRur=··0163 beneficiarAccountUsd=··0889 beneficiarAccountEur=··0038
ããŒãšå€ãæå®ããå¿ èŠããããŸãã
Uberã¹ããããšããã€ãã®å¯äœçšã圢æããŸã
ããã¹ããå ¥åããããäœããã¯ãªãã¯ããããããªã©ãããªãå°ããªã¹ãããã®èª¬æããéçºãéå§ããŸããã æéãçµã€ã«ã€ããŠãå°ããªã¹ãããã§ã¹ã¯ãªãããèšè¿°ããããã¡ã€ã³ç»é¢ã«æ»ããªã©ã®è€éãªã¹ããããèšè¿°ãããããŠããã³ãŒããè€è£œã§ããªãããšã«æ°ä»ããŸããã ããã§ãå°ããªã¹ãããã倧ããªã¹ãããã«åå©çšãããœãªã¥ãŒã·ã§ã³ã®æ€çŽ¢ãéå§ããŸããã
æåã®è©Šã¿ã¯ãDIã®ç·šæã®ããã«ãããžã§ã¯ãã«guieãè¿œå ããããšã§ãããããã®å®è£ ã«ããããããžã§ã¯ãã®ã»ãŒå šäœã®ã³ã¢ã®åŠçãè¡ãããŸããã ãŸããappium-java-clientã®äŸåé¢ä¿ã«ã¯æ¢ã«Springãå«ãŸããŠããããããœãªã¥ãŒã·ã§ã³ãæããã«ãªãã次ã®ã¹ãããã¯Springãå®è£ ããããšã§ããã
Spingããããžã§ã¯ãã«å°å ¥ãããšããå€æŽã®éã¯æå°éã§ããã ãããžã§ã¯ãã®éåžžã«å¥¥æ·±ãã§ã¯ãJBeHaveã¹ããããã¡ã¯ããªãšãã¢ãªã¥ãŒã«ã¬ããŒãæ¥ç¶ã®2ã3è¡ã®ã¿ãå€æŽãããŸããã ã»ãŒãã¹ãŠã®ã¯ã©ã¹ãã³ã³ããŒãã³ããšããŠå®£èšãããã»ãšãã©ã®äŸåé¢ä¿ãåé€ãããŸããã
å®è£ ã®å¹æã¯ãããå°ããªã¢ã¯ã·ã§ã³ãåå©çšã§ããã¹ãããèšèšè ã ãã§ãªããã©ã€ãã©ãªã§äžè¬çãªæ±ºå®ãäžãèœåã§ããããŸããïŒgithubãžã®ãªã³ã¯ã¯æåã«ãããŸããïŒã ãã®ãœãªã¥ãŒã·ã§ã³ã¯ããã€ãã®ã¢ãã€ã«ãããžã§ã¯ãã§äœ¿çšããŠãããããããã¯ç§ãã¡ã«ãšã£ãŠéèŠã§ãã
ããŠãæãçããå¹æã¯ããã¹ãçšã®ãã¹ããäœæã§ããããšã§ãã ãããã©ããªã«é¢çœããŠåä»ã§ãã£ãŠããããã¯æ¥œåšã®å質ã«å€§ããäŸåããã®ã§ãã¡ã³ããã³ã¹ãšéçºãå¿ èŠã§ãã çŸåšãã«ãã¬ããžã¯ãŸã é²è¡äžã§ãã ãããžã§ã¯ãã®ã³ã¢ã«å€æŽãå ããŠãã©ã€ãã©ãªå ã®ãã¹ãã«ãã¬ããžãæ¡å€§ããŸãã
ãããžã§ã¯ããéå§ããŸã
æ¢ã«è¿°ã¹ãããã«ãç¹å®ã®ããã€ã¹ã»ããã§ãããžã§ã¯ãã䞊è¡ããŠå®è¡ããŸãã
ã³ã³ãœãŒã«ãããããžã§ã¯ããéå§ããäŸïŒ
./gradlew --info clean test --tests "*AndroidStories*" -Dorg.gradle.project.platform=Nexus6p_android6 -Dorg.gradle.project.user=6056789 -Dorg.gradle.project.testType=smokeNewReg -Dorg.gradle.project.buildVersion=9.0.0.7,development
äŸãããããããã«ããã¹ãã¯Androidã§å®è¡ãããŸãïŒ--tests "* AndroidStories *"ïŒã ãã©ã¡ãŒã¿ãŒãšããŠãæž¡ãããŸãïŒ
ãã¹ãå®è¡ãéå§ãããããã€ã¹ã¯Nexus6p_android6ã§ãã ãããžã§ã¯ãã§ããã€ã¹ã説æããããšãå¿ããªãã§ãã ãããããã«ã€ããŠã¯äžã§æžããŸããã ãããç§ãã¡ã®ããæ¹ã§ãã
device.propertiesãã¡ã€ã«ã«ã¯æ¬¡ãå«ãŸããŸãã
UDID=ENU14008659 deviceName=Nexus6p
ãã¡ã€ã«test_node.jsonã«ã¯ãããŒããå®è¡ããããã®ããŒã¿ãå«ãŸããŠããŸãã
ããŒã¿ã䜿çšãããã¹ããŠãŒã¶ãŒ6056789ã ãããžã§ã¯ãã«ã¯ããã¹ããå®è¡ããããã«äœ¿çšãããã¹ããŠãŒã¶ãŒã®ã»ããããããŸãã ãŠãŒã¶ãŒã¯user.propertiesã«èšè¿°ãããŠããå¿ èŠããããŸãã
ãã¹ãã®çš®é¡smokeNewRegããã¬ãŒã ã¯ãŒã¯ã¯ãã¡ã¿ã¿ã°ã®ãã¹ãã¹ã¯ãªãããéžæããããã®ããžãã¯ãå®è£ ããŸãã Metaãããã¯ã®åã¹ã¯ãªããã«ã¯ãã©ãã«ã®ã»ããããããŸãã
Meta: @regressCycle @smokeCycle
testCycle.propertiesãã¡ã€ã«ã«ã¯ãããŒãšã©ãã«å€ãå«ãŸããŠããŸãã
smoke=+smokeCycle,+oldRegistration,-skip smokeNewReg=+smokeCycle,+newRegistrationCardNumber,-skip smokeNewAccountReg=+smokeCycle,+newRegistrationAccountNumber,-skip regress=+regressCycle,+oldRegistration,-skip regressNewReg=+regressCycle,+newRegistrationCardNumber,-skip
ãããã£ãŠãJBehaveã«Meta Matcherãååšãããããã§ãç¹å®ã®ãã¹ããµã€ã¯ã«çšã®äžé£ã®ãã¹ãã¹ã¯ãªãããäœæã§ããŸãã
äžå€®ãªããžããªããæ±²ã¿äžããŠããã¢ã»ã³ããªã®çªå·ãããã³ã¢ã»ã³ããªã®æ±²ã¿åºãå ã®ãã©ã³ãã ãã®å ŽåãenvironmentAndroid.propertiesãã¡ã€ã«ã«ã¯ã¯ã€ã«ãã«ãŒããªã³ã¯ãå«ãŸããŠããŸããã¯ã€ã«ãã«ãŒããªã³ã¯ã¯ãã©ã¡ãŒã¿ãŒã«åºã¥ããŠåœ¢æãããã³ã³ãœãŒã«ããå ¥åã«éä¿¡ãããŸãã
remoteFilePathReleaseAndDevelopment=http://mobile/android/mobile-%2$s/%1$s/mobile-%2$s-%1$s.apk
ããã§ãã³ã³ãœãŒã«ãããããžã§ã¯ããéå§ããæ¹æ³ãããã£ãã®ã§ããããžã§ã¯ããJenkinsã«ç°¡åã«çµ±åã§ããŸãã ç§ãã¡ã®ãããžã§ã¯ãã«ã¯ãã®ãããªçµ±åãããããã¹ãæ åœè ãJenkinsã§ãžã§ããäœæããŠèªåãã¹ããå®è¡ããã ãã§ååã§ãã
ã¢ãã€ã«ããã€ã¹ãåãããã¡ãŒã ã圢æãããŸããã ããã¯Mac Proã§ãããçŽ10å°ã®ã¢ãã€ã«ããã€ã¹ãæ¥ç¶ãããŠããŸãã
ã¬ããŒããçæããŸã
ãã®ãããžã§ã¯ãã§ã¯ãã¢ãªã¥ãŒã«ã¬ããŒãã䜿çšããŠã¬ããŒããçæãããŸãã ãããã£ãŠããã¹ããå®äºãããããçµæã䌎ããã£ã¬ã¯ããªãçæããå®è¡ããã ãã§ååã§ãã
ã¬ããŒãã§ã¯ãåã·ããªãªã®ã¹ããŒã¿ã¹ã確èªã§ããŸãã ã¬ããŒãå ã®ã¹ã¯ãªãããéãå§ãããšãåã¡ãœãããåŒã³åºãåã«ããã¹ããå®è¡ããã¹ããããèŠã€ããããšãã§ããŸãã äœãããã©ãã©ã«ãªã£ãå Žåãå éšã«ãšã©ãŒãããã¹ãããã§ç»é¢ã®ã¹ã¯ãªãŒã³ã·ã§ããã衚瀺ãããŸãã
以åã¯ãã¹ã¯ãªãŒã³ã·ã§ããã¯ãã¹ãŠã®ã¹ãããã«ãããŸããããããã¯ç¡æå³ã§ãããšèããç»é¢ã¯æããããŸããã¹ã¯ãªããã§ã®ã¿è¡ãããŸãã ããã«ãèªååãããã¹ã¯ãªããã®æ°ãå¢ãããšãã¬ããŒãã¯ããå€ãã®ã¹ããŒã¹ãå æãå§ããŸãã
åŸãããçµæ
èªåã®ããã«èšå®ããã¿ã¹ã¯ãèŠçŽããŸãã
- éçºã«å ¥ãããã®ãããå€ãããªãäœãããŠãèªååããã¹ãããããã®ããŒã«ãäœæããããšãã§ããŸããã å¹³åããŠãå®è·µã瀺ããŠããããã«ããã¹ã¿ãŒã¯èªä¿¡ãæã£ãŠèªåãã¹ãã®äœæãšå®è¡ãéå§ããã®ã«2é±éããããããŸããã ãã¹ã¿ãŒã«ââãšã£ãŠã®æ倧ã®å°é£ã¯ãappiumãæ§æããç°å¢ã«é¢é£ããŠããŸãã
- ãã¹ãã¹ã¯ãªããã¯ãã¹ãŠã®ããŒã ã¡ã³ããŒã«æ確ã§ããããã¯ããããžã§ã¯ãã§BDDæ¹æ³è«ã䜿çšããå Žåã«ç¹ã«éèŠã§ãã
- ç§ãã¡ã®ãã¬ãŒã ã¯ãŒã¯ã¯ãiOSãšAndroidã®2ã€ã®ãã©ãããã©ãŒã ã§åæã«åäœã§ããŸãã
- çŸåšã10å°ã®ã¢ãã€ã«ããã€ã¹ãšMac Proã®ãã¡ãŒã ã圢æããŠããŸãã ãã®ãããžã§ã¯ãã¯Jenkinsãšçµ±åãããŠããããã¹ãŠã®ãã¹ã¿ãŒã10å°ãã¹ãŠã®ããã€ã¹ã§èªåãã¹ãã䞊è¡ããŠå®è¡ã§ããŸãã
- ç§ãã¡ã®ãœãªã¥ãŒã·ã§ã³ã¯ã¹ã±ãŒã©ãã«ã§ãããããã€ãã®ã¢ãã€ã«ãããžã§ã¯ãã¯ãã§ã«ãã¬ãŒã ã¯ãŒã¯ã§ç©æ¥µçã«äœæ¥ããŠãããèªåãã¹ããå®è¡ããŠããŸãã
ããŒãã¹ãšããŠïŒ
- ã¢ãã€ã«ãããžã§ã¯ãã®1ã€ã§ã¯ãèªååã«ãããæ©èœãã¹ã¿ãŒãããã¯ãšã³ããšã®åŸæ¹äºææ§ã®ããã«ããã³ãããã¹ãããããšãå®å šã«çããŸããã èªååã®å°å ¥åŸããã®å Žåã®ãã¹ãæéã¯8åã«ççž®ãããŸããïŒ8æéãã1æéã«ïŒã
- æ°ããèªåãã¹ãã¯ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®æ°ããæ©èœã®éçºãšãšãã«ãã¹ããªã³ãã§ãã¹ã¿ãŒã«ââãã£ãŠäœæãããŸãã
- ãã®çµæãååž°ãã¹ãã®äžéšã¯ãã§ã«èªååãããŠãããååž°ã®æéã8æ¥éãã1æ¥éã«ççž®ãããŸããã ããã«ãããããé »ç¹ã«ãªãªãŒã¹ã§ãããã¹ã¿ãŒã¯ååž°ãã¹ãã®æéäžã«ããŒã ããè±èœããããšãæ¢ããŸããã ãŸãã圌ãã¯å°ã幞ãã«ãªããŸãã:)
çµæã¯ç§ãã¡ã®æåŸ ãæºãããèªååãžã®ç§»è¡ã®æ±ºå®ãæ£ããããšã確èªããŸããã
ç§ãã¡ã¯ãgithubã§å©çšå¯èœãªãœãªã¥ãŒã·ã§ã³ãéçºãç¶ããŠããŸãïŒ ã³ãªããªUIã©ã€ãã©ãªãšã³ãªããªUIãã³ãã¬ãŒãã¯ãã¯ã€ãã¯ã¹ã¿ãŒãçšã§ãã ããã«ãã£ãšïŒ
Alpha Labã®ãã¹ã¿ãŒ ïŒãŸãã¯ãã¹ã¿ãŒã ãã§ã¯ãªãïŒã®1人ã«ãªãããå Žåã¯ã 空åžããããŸãã