幎ã®åãã«ãæåã®å ¬åŒã®RoboCon 2018ã«ã³ãã¡ã¬ã³ã¹ããã«ã·ã³ãã§éå¬ãããRobot Frameworkèªåãã¹ãããŒã«å°çšã«ãªããŸããã ãããŠãPeter-Serviceã®èªååããã³çµ±åãã¹ãã°ã«ãŒãã®ã¡ã³ãããŒã¯ããã®ãããªã€ãã³ããèŠéãããšã¯ãããŸããã§ããã ãã®ããŒã«ã¯åœç€Ÿã§éåžžã«åºã䜿çšãããŠãããããç¹ã«ã°ã«ãŒãã§ã¯ããã®ããŒã«ã䜿çšããŠã補åTORSïŒãªãªãŒã¹ã¹ã¿ã³ãã®ãã¹ãïŒãå®è£ ãããŠããŸãã
äŒè°ã®äž»å¬è ã¯æ¯å¹Žéå¬ããããšãçŽæããŸããã ããããä»åã¯250人以äžãéãŸããåè¿°ã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšããéçºè ãšãã¹ã¿ãŒã®ã³ãã¥ããã£ã®æ倧ã®äŒè°ã«ãªããŸããã
åå è ã®å€§åã¯ãã£ã³ã©ã³ãããã§ããã ããããã¢ã¡ãªã«ãã«ãããã¹ãã€ã³ããã€ãããã·ã¢ããã®ä»ã®åœããç¹å¥ã«æ¥ã人ããããããäŒè°ã®äž»èŠèšèªã¯è±èªãšããŠéžã°ããŸããã ã¬ããŒãã¯1ã€ã®ã¹ããªãŒã ã§éä¿¡ããããããååã§ã©ã³ãã ã«éžæããã®ã§ã¯ãªãããã¹ãŠãèãããšãã§ããŸããã ãããŠãããŸããŸãªãããã¯ã®ãã©ã³ã¹ãåããŠããããšã«æ³šç®ããããåŸãŸãããã¹ããŒãã®äžéšã¯ãã¹ãããã»ã¹ã®çµç¹ãç¹å®ã®ã©ã€ãã©ãªã䜿çšããéçºããã®ä»ã¯ãã¬ãŒã ã¯ãŒã¯ãšã³ãã¥ããã£ã®æŽå²ã«åœãŠãããŸããã
ãã®äŒè°ã¯ããããããã¬ãŒã ã¯ãŒã¯PekkaKlÀrckã®åµèšè ã«ãã£ãŠã»ãŒ1æéã®ã¬ããŒãã§éãããŸããã 次ã¯ã©ãã«è¡ããŸããïŒã è¬æŒè ã¯ã倧åŠã§éçºããŠãããããã¿ã€ããã¬ãŒã ã¯ãŒã¯ãã©ã®ãããªãã®ã§ãã£ãããæãåºããä»æ¥ããããããã¬ãŒã ã¯ãŒã¯ã¯ãã£ã³ã©ã³ãã§ã®ãã¹ãã®äºå®äžã®æšæºã§ãããå°æ¥ã®èšç»ãçºè¡šããŸããã
誰ãããã®æšæºã«é¢ãã声æã«é©ããããããŸããã åœç¶ã®ããšãªãããã³ããŒãã¬ãŒã ã¯ãŒã¯ã®æ¯èŒã«ãããå€ãã®éšåãæ¢ã«å£ããŠãããæçµçã«æè¯ã®ãã®ã決å®ã§ãã人ã¯ã»ãšãã©ããŸããã ããããç§ãšååã¯Robot Frameworkãéåžžã«æ°ã«å ¥ã£ãŠããã次ã«ãã®å©ç¹ã®ããã€ããæããŠã¿ãŸãã
- ããŒã¯ãŒãé§åãã¹ãã ããŒã¯ãŒãã®åœ¢ã§æœè±¡åã®ã¬ãã«ããããããæå°éã®ããã°ã©ãã³ã°çµéšã§ãããããããã¹ããäœæããæ©äŒãåŸãããŸãã
- Kivordsã¯Pythonã§èšè¿°ãããŠããŸããèšèªã¯ã·ã³ãã«ã§ããã匷åã§ãã ãã®å Žåãå¿ èŠã«å¿ããŠJavaã«åãæ¿ããããšãã§ããŸãã åã®æ®µèœãèãããšãããã¯éåžžã«äœããšã³ããªãããå€ãæäŸããŸãã
- ããèããããã¢ãŒããã¯ãã£ã®ãããã§ãRobot Frameworkã®æ©èœã¯ãæ°ããã©ã€ãã©ãªããªã¹ããŒãããã³äºå修食åã®å©ããåããŠéåžžã«ç°¡åã«æ¡åŒµã§ããŸãã
- ããã«äœ¿çšã§ããSeleniumã®ãµããŒããããããã¹ãã䞊è¡ããŠå®è¡ããŸãã
- ãã®ããŒã«ã䜿çšãããã¹ãŠã®äººã¯ã䟿å©ã§çŸãããã¹ãå®è¡ãã°ãèšé²ããŸãããã®ããã«ãããããéžæãã人ãããŸãã
- ã³ãã³ãã©ã€ã³ããå®è¡ããŸããããã«ãããã³ã³ãããŒã§ã®äœ¿çšã容æã«ãªãããã§ãŒã³ãæ§ç¯ãããŸãã
- 倧èŠæš¡ã§æŽ»æ°ã®ããã³ãã¥ããã£ïŒäººã ã¯ãã¬ãŒã ã¯ãŒã¯ã®éçºã«èå³ãæã£ãŠããŸã;æ¥äžã¯ã©ããªåé¡ã§ãçããåãåãããšãã§ããŸãã
PekkaKlÀrckã¬ããŒãã«æ»ããŸãã ãããã£ãŠãè¿ãå°æ¥ããããããã¬ãŒã ã¯ãŒã¯ã¯å°æ¥ã®èšç»ãç«ãŠãŸãã
- ãã€ããŒãªæ¹åãšãã°ä¿®æ£ã䌎ãæ°ããããŒãžã§ã³3.0.3ã®ãªãªãŒã¹ã
- SSHLibraryãPython 3ã«ç§»è¡ããŸãããããããã¬ãŒã ã¯ãŒã¯å šäœã第3ããŒãžã§ã³çšã«ç©æ¥µçã«åèšèšãããŸãããSSHLibraryã¯çŸåš2.7ã§ã®ã¿å®è¡ãããŠããæ倧ã®ã©ã€ãã©ãªã§ããããããã®ã¿ã¹ã¯ã§æãåªå ãããŸãã
- REST / JSONããã¹ãããããã®æ°ããã©ã€ãã©ãªãäœæè ã®AnssiSyrjÀsaloãå¥ã®ã¬ããŒããäœæããŸããã ãã ããã©ã€ãã©ãªã¯ãŸã å®æäžã§ããããã®ã³ã°ã¯ãŸã å®å šã«ã¯å®è£ ãããŠããŸããã
- æ°ãããã¹ãã¹ããŒã¿ã¹ã§ãªãªãŒã¹ããŒãžã§ã³3.1ã ã¹ããããããã¹ããŒã¿ã¹ã¯ãäœããã®çç±ã§å®è¡ããé€å€ããããã¹ãã®éåžžã®åæ Œ/倱æã«è¿œå ãããŸãã
é·æçã«ã¯ïŒ
- if / elseãæ§ç¯ãããå Žåã®ãªãµã€ã¯ã«ã
- ãªãµã€ã¯ã«ãŠãŒã¶ãŒã¬ã€ãã
- RIDEãšãã£ã¿ãŒã®ãªãµã€ã¯ã«ã
- ãã£ã³ã©ã³ã以å€ã§ãã¬ãŒã ã¯ãŒã¯ã®äœ¿çšãæ¡å€§ããããšã«çŠç¹ãåœãŠãŸãã
- Robot Frameworkã«é¢ããæ¬æ Œçãªæ¬ã®ãªãªãŒã¹ïŒãããŸã§ã®ãšãããããŒã«ã®èª¬æãšããã¥ã¢ã«ã¯å°ããã€ãã§ãïŒã
ã«ã³ãã¡ã¬ã³ã¹ãžã®åå ã«é¢ããgoogle-groupsã®æçš¿ã®ãããã§ãã¬ããŒãã®åéã«ãå€ãã®äººãç§ãã¡ã«äŒãã«æ¥ãŸããã æçš¿ã§çºè¡šãããReportPortalã©ã€ãã©ãªã«èå³ãæã£ã人ãããã°ã ããåœã§ã®ãããããã¬ãŒã ã¯ãŒã¯ã®äœ¿çšã«ã€ããŠç¥ãããã ãã®äººãããŸããã å®éããã·ã¢ã§ã¯ãã¬ãŒã ã¯ãŒã¯ã¯ããŸã人æ°ããããŸããïŒãããŠãç§ãã¡ã®æèŠã§ã¯ãç¡é§ã§ãïŒã
ãã®åŸã®ã¬ããŒãã¯ãããå³å¯ã«æéå¶éãããŠããŸããã30åã®ãã¡ã10ã¯è³ªåçšã«äºçŽãããŠããŸããã DéauRégisã®ã¬ããŒããæåãããã¹ãèªååã®æ ã«é¢ãã裞ã®çå®ããšAldina Codesso-Lipponenã®ãMega Robot projectsãwhat to expectãã¯ã倧èŠæš¡ãããžã§ã¯ãã®äžè¬çãªæšå¥šäºé ãçå®ããŸããããããã¯ãã§ã«èæ ®ãããŠããŸãïŒäž»ã«ã³ãŒãã¬ãã¥ãŒãããŒãžã§ã³ç®¡çã·ã¹ãã ã®äœ¿çšããã«ããµãŒããŒã«é¢ãããã®ã§ãïŒã
ãããšã¯å¥ã«ããŠãŒã¶ãŒã®åœ¹å²ã ãã§ãªãéçºè ãšããŠRobot Frameworkã³ãã¥ããã£ã«åå ãããããªã¹ããŒã説åŸââããããšãç®çãšããEd Manloveã®ã¬ããŒãããªãŒãã³ãœãŒã¹ã³ãã¥ããã£ã®éèŠæ§ãã«ã€ããŠèšåããããšæããŸãã ã¬ããŒãã¯éââåžžã«å¹ åºãèŽè¡åãã«èšèšããããããèè ã¯æå³çã«æè¡çãªåé¡ã«é£ã³èŸŒãããšãæåŠãã代ããã«ãããã«ã«ãã£ãŒãžã®èšåã䜿çšããç©æ¥µçã«ãžã§ã¹ãã£ãŒãããäžè¬çã«èªç±ã«çŽæ¥è¡åããæçµçã«èŽè¡ãžã®è³ªåãå«ãå°ããªã€ã³ã¿ã©ã¯ãã£ããªéšå±ãé 眮ããŸããã
ãã®ã¬ããŒãã«ãã£ãŠããããããå¹æã¯ãã¹ããªã³ãã»ã¯ã·ã§ã³ãéå§ãããç¿æ¥ãã³ãã¥ããã£ã§ç©æ¥µçãªåœ¹å²ãæããããšãã人ã ãéãŸã£ããšãã«å€æããããšãã§ããŸããã æ¥ã人ã®ååã¯æããã«ãšãã«è§ŠçºãããŸããã ãããã®å€ãã¯çµ¶å¯Ÿçãªåå¿è ã§ãã-ã€ãŸããããã°ã©ãã³ã°ã®çµéšã¯ãŸã£ãããããŸããã§ããã ãšãã®ã¬ããŒãã圌ããéåžžã«åæ©ã¥ããã®ã¯æããã§ããïŒããã«æ¥ã人ã®å€ãã¯ããªãŒãã³ãœãŒã¹ãããžã§ã¯ããã©ã®ããã«è¡ãããŠããã®ããåããŠèããã ãã§ãªããæ§ãããªç¥èã§ãåå ã§ãããšæããŸããïŒåå²ã¢ãã«ã«ã€ããŠåå¿è ã«åå¥ã«èª¬æããå¿ èŠããããŸãããããŒãžã§ã³ç®¡çã·ã¹ãã ãªã©ïŒã
äžè¬ã«ã2æ¥ç®å šäœã¯äžèšã®ã¬ããŒãã®è«ççãªå±éã§ããã誰ãããªãŒãã³ãœãŒã¹ã¢ããªã±ãŒã·ã§ã³ã®éçºã«åå ã§ããããšã瀺ãããšãç®çãšããŠããŸããã ã³ã¡ã³ããšgithubã®èª¬æãéããåŸãå šå¡ã3ã€ã®éçºã°ã«ãŒãã«åå²ãããŸããã
- Jenkinsãã©ã°ã€ã³
- ã»ã¬ã³;
- ã³ã¢ã
ç§ã®å人çãªä»äºã®ã»ãšãã©ã¯æè¿ããããã®äžŠåèµ·åãŠãŒãã£ãªãã£ã«é¢é£ããŠããã®ã§ãèè ã®ããã³ã»ã³ã«ãã©ãå¥ã®ã°ã«ãŒããäœæããããšãæã¿ãŸãããã圌ã¯ã»ã¬ããŠã ã«åå ããããšã奜ã¿ãŸããã ããããããã³ã¯ãããããã«æ°ããæ©èœãè¿œå ããããšã«ã€ããŠYouTubeã«æçš¿ãã3ã€ã®ãããªã«ç²Ÿéããã³ã¡ã³ãã®ãã£ã¹ã«ãã·ã§ã³ã«åå ããããšãç³ãåºãŸããã
æ®ã£ããã®ããéžãã§ãç§ã¯ã³ã¢ã»ã¯ã·ã§ã³ã«èœã¡çããŸããã ãããŠãã»ã¯ã·ã§ã³ã®äœæ¥ã¯ããã«ã»ã¯ã©ãŒã¯èªèº«ãäž»å°ãããããäºæ³ä»¥äžã«èå³æ·±ãããšãããããŸããã éçºã®ã¿ã¹ã¯ã¯ãç¹ã«RoboConã§ã¿ã°ä»ããããgithubã®åé¡ããåãããŸãã ïŒããã¯ãé©åãªã¬ãã«ã®è€éãã®ã¿ã¹ã¯ãåå¥ã«éžæããããšããŸã ã§ããªãåå¿è ã«ãè¡ãããŸããïŒã ååãšããŠããããã®åé¡ã3ã4æéã§è§£æ±ºããããšçå£ã«åãçµã人ã¯ããªãã£ãã®ã§ãã Need While LoopããŒã¯ãŒã ããšããåé¡ã«åãçµãããšã«ããŸããã ãã®æ¬è³ªã¯ãããŒã¯ãŒããwhileãã䜿çšãããã¹ãã®å®è£ ã«éå®ãããŸããïŒãforãã®æ¢åã®ã¢ããã°ã§ã¯ããwhileãã®æ¢è£œã¢ããã°ã¯å®è£ ãããŸããã§ããïŒã ã³ãŒãã§ã¯Pythonã®ã«ãŒããšããžãã¯ã§ãã¹ãŠã®äœæ¥ãè¡ããŸãããPekkaãã¢ããã€ã¹ããããã«ãæ°ãããã¯ãŒããè¿œå ããããšã¯ããããããã¬ãŒã ã¯ãŒã¯ãå éšããã©ã®ããã«æ©èœããããç解ããè¯ãæ©äŒã«æããŸããã ãã§ã«å®è£ ãããŠãããforãã«ãŒãã«äŸåããããšãæãã§ããŸãã...ãããããã¡ããããã¹ãŠãåäžã®ã¡ãœãããè¿œå ãããããã¯ããã«è€éã§ããããšãå€æããŸããã ãããŠããã¹ãŠåãã§ããã¿ã¹ã¯ãåç¬ã§åŠçããããšããŠããRobot Frameworkãã©ã®ããã«æ©èœããããããããç解ããã®ã«åœ¹ç«ã¡ãŸããã
ãŸãšãããšã Robot Frameworkã¯ç©æ¥µçã«éçºãããŠãããæããã«ãæ©èœãšãŠãŒã¶ãŒæ°ã®äž¡æ¹ãæ¡åŒµããŸãã 瀟å ã®ç§ãã¡ãRFã³ãã¥ããã£ã«è¿œãã€ããŠããã ãã§ãªããå€ãã®ç¹ã§å ãè¡ã£ãŠããããšã«æ°ä»ãã®ã¯éåžžã«æ¥œããã£ãã§ããããšãã°ããããããäœã§ããããç¥ã£ãŠããã®ã¯èŽè¡ã®3åã®1ã ãã§ãããWebUIããã¹ãããããã«ãããã¬ã¹ãã©ãŠã¶ãŒã¢ãŒãã䜿çšããããšãèãã人ã¯ãããã§ããã
å人çã«ã¯ãRFãªããžããªã§ã®ç©æ¥µçãªäœæ¥ã®éå§ã«ãã£ãŠå ·äœçãªã¡ãªãããããããããŸããã 確ãã«ãããã¯ç§ãã¡ã®ã¯ãŒãã³ã°ã°ã«ãŒãã«ãšã£ãŠç®æ°ãããã®ã§ã¯ãããŸãããRobotFramework ãªããžããªã«çµ¶ããã¿ã¹ã¯ãèšå®ããã³ã¡ã³ãããŸã ã ïŒãã¬ãŒã ã¯ãŒã¯ã®ã©ã€ãã©ãªã ãããŠãååã®1人ã¯ããŠãŒãã£ãªãã£ã®äœæè ã«æ¬¡ãã³ãããæ°ãšã³ãŒãè¡æ°ã§ã ããããè²¢ç®è ã®ãªã¹ãã§2äœã«ãããªããŸãã ãããããããã«ãããPekkaKlÀrckïŒRFã®åµèšè ïŒãMikko KorpelaïŒããããã®äœè ïŒãTatu AaltoïŒSeleniumLibraryã®äž»ä»»éçºè ïŒãªã©ã®äººã ãšã®å人çãªç¥ãåãã¯ãç§ã«ãšã£ãŠéåžžã«æçã§ããã
äŒè°ããã°ã©ã ïŒ
- PekkaKlÀrckãEligaïŒåºèª¿è¬æŒãã©ããã£ãŠããã«æ¥ãã®ïŒ 次ã¯ã©ãã«è¡ããŸããïŒãïŒ ãããª
- OpusCapitaã®DéauRégisïŒããã¹ãèªååã®æåã®æ ã«é¢ãã裞ã®çå®ãïŒ ãããª
- ã¢ã«ãã£ãã³ãããœãªãããã³ãã³ãïŒãã¡ã¬ãããããããžã§ã¯ããæåŸ ãããã®ãïŒ ãããª
- ãŠãŽã¡ã¹ãã¥ã©å€§åŠãAsko SoukkaïŒãPlone CMSãããžã§ã¯ãã®ãããããã¬ãŒã ã¯ãŒã¯ãïŒ ãã㪠ã ãã¬ãŒã³ããŒã·ã§ã³ ã
- ãšãã»ãã³ã©ãïŒããªãŒãã³ãœãŒã¹ã³ãã¥ããã£ã®éèŠæ§ãïŒ ãããª
- AniliSiyrjÀsaloãSiiliïŒãæ°ããREST JSONãã¹ãã©ã€ãã©ãªã䜿çšããå¥çŽããŒã¹ã®APIãã¹ãã«åããŠãïŒ ãããª
- Tatu AaltoãCRF HealthïŒãExtending Selenium Library 3.0ãïŒ ãã㪠ã ãã¬ãŒã³ããŒã·ã§ã³ ã
- Martin TaylorãNymiïŒããããããã¬ãŒã ã¯ãŒã¯ã䜿çšããå¹ççãªãã«ããã©ãããã©ãŒã ããã³ãã«ãããã€ã¹ãã¹ãã®èšèšãã¿ãŒã³ãïŒ ãããª
- Reaktorã®Mikko KorpelaïŒãPabotã«ãã䞊åãã¹ãã®å®è¡ãïŒ ãããª