ã¿ãªããããã«ã¡ã¯ãã©ãã
ããŒããžã®åå²
Postman ã䜿çšããŠããå Žåã¯ããªã¯ãšã¹ã ã€ã³ã¿ãŒãã§ã€ã¹ã«å¿ èŠãªæ©èœããã¹ãŠå«ãŸããŠããããšããåç¥ã§ãããã ã¹ã¯ãªããããã¹ãããããŠå®éã«ã¯ã¯ãšãªèªäœããããŸãã ããã«ããåå¿è ã«ãšã£ãŠã¯ç°¡åã«ãªããŸããã倧èŠæš¡ãªã·ããªãªã§ã¯ããã®ã¢ãããŒãã¯æè»æ§ããããŸããã è€æ°ã®ã¯ãšãªãäœæãããããã«å¯ŸããŠéèšãå®è¡ãããå Žåã¯ã©ãããã°ããã§ãããã? ãªã¯ãšã¹ããªãã§ã¹ã¯ãªãããå®è¡ãããå Žåããè«ççã«åé¢ãããè€æ°ã®ã¹ã¯ãªãããé£ç¶ããŠå®è¡ãããå Žåã¯ã©ãããã°ããã§ãããã? çµå±ã®ãšããããã¹ããéåžžã®ãŠãŒãã£ãªã㣠ã¹ã¯ãªããããåé¢ããããšã¯è¯ãèãã§ãã ããã«ãããã¹ãŠã®æ©èœã XNUMX ã€ã®ããŒãã«è¿œå ãããã¢ãããŒãã¯ã¹ã±ãŒã©ãã«ã§ã¯ãªããã€ã³ã¿ãŒãã§ã€ã¹ã¯ããã«éè² è·ã«ãªã£ãŠããŸããŸãã
TestMace ã¯ãæåã«ãã¹ãŠã®æ©èœãããŸããŸãªã¿ã€ãã®ããŒãã«åå²ããŸãã ãªã¯ãšã¹ããããŠã¿ãŸãããïŒ ããã¯ããªãã®ããã§ã
人éãèªãããããžã§ã¯ã圢åŒ
TestMace ãš Postman ã«ã¯ãä¿åæ¹æ³ã«æŠå¿µçãªéãããããŸãã Postman ã§ã¯ããã¹ãŠã®ãªã¯ãšã¹ãã¯ããŒã«ã« ã¹ãã¬ãŒãžã®ã©ããã«ä¿åãããŸãã è€æ°ã®ãŠãŒã¶ãŒéã§ãªã¯ãšã¹ããå ±æããå¿ èŠãããå Žåã¯ãçµã¿èŸŒã¿ã®åæã䜿çšããå¿ èŠããããŸãã å®éãããã¯äžè¬çã«åãå ¥ããããŠããã¢ãããŒãã§ãããæ¬ ç¹ããªãããã§ã¯ãããŸããã ããŒã¿ã®ã»ãã¥ãªãã£ã«ã€ããŠã¯ã©ãã§ãã? çµå±ã®ãšãããäžéšã®äŒæ¥ã®ããªã·ãŒã§ã¯ã第äžè ãžã®ããŒã¿ã®ä¿åãèš±å¯ãããŠããªãå ŽåããããŸãã ãã ããTestMace ã«ã¯ããã«åªããæ©èœããããšèããŠããŸãã ãããŠããã®æ¹åã®ååã¯ã人éãèªãããããžã§ã¯ã圢åŒãã§ãã
TestMace ã«ã¯ååãšããŠããããžã§ã¯ãããšã³ãã£ãã£ãååšãããšããäºå®ããå§ããŸãããã ãããŠããã®ã¢ããªã±ãŒã·ã§ã³ã¯åœåããããžã§ã¯ããããŒãžã§ã³ç®¡çã·ã¹ãã ã«ä¿åããããšãç®çãšããŠéçºãããŸããããããžã§ã¯ã ããªãŒã¯ãã¡ã€ã«æ§é ã«ã»ãŒ XNUMX 察 XNUMX ã§æ圱ãããyaml ãä¿ååœ¢åŒ (äœåãªæ¬åŒ§ãã«ã³ããªã) ãšããŠäœ¿çšãããŸããåããŒãã®ãã¡ã€ã«è¡šçŸã«ã€ããŠã¯ãã³ã¡ã³ãä»ãã®ããã¥ã¡ã³ãã§è©³ãã説æãããŠããŸãã ããããã»ãšãã©ã®å Žåãããã«ç®ãåããããšã¯ãããŸããããã¹ãŠã®ãã£ãŒã«ãåã«ã¯è«çåãä»ããŠããŸãã
ããã¯ãŠãŒã¶ãŒã«äœãäžããã®ã§ãããã? ããã«ããã䜿ãæ
£ããã¢ãããŒãã䜿çšããŠãããŒã ã®ã¯ãŒã¯ãããŒãéåžžã«æè»ã«å€æŽã§ããŸãã ããšãã°ãéçºè
ã¯ããã¯ãšã³ããšåããªããžããªã«ãããžã§ã¯ããä¿åã§ããŸãã ãã©ã³ãã§ã¯ãã³ãŒã ããŒã¹èªäœã®å€æŽã«å ããŠãéçºè
ã¯æ¢åã®ã¯ãšãª ã¹ã¯ãªãããšãã¹ããä¿®æ£ã§ããŸãã ãªããžã㪠(gitãsvnãmercurial - 奜ããªãã®) ã«å€æŽãã³ãããããåŸãCI (誰ã«ã匷å¶ãããŠããªããæ°ã«å
¥ãã®ãã®) ãã³ã³ãœãŒã« ãŠãŒãã£ãªãã£ãèµ·åããŸãã
ã芧ã®ãšãããTestMace ã¯ãã®ãšã³ã·ã¹ãã ããã©ãã€ã ã匷å¶ããŸããã ãããã確ç«ãããããã»ã¹ã«ç°¡åã«é©åããŸãã
åçå€æ°
TestMace ã¯ããŒã³ãŒãã®æŠå¿µã«åŸã£ãŠããŸããã€ãŸããã³ãŒãã䜿çšããã«åé¡ã解決ã§ããå Žåã¯ããã®æ©äŒãæäŸããããšããŸãã å€æ°ã®æäœã¯ãã»ãšãã©ã®å Žåãããã°ã©ãã³ã°ãªãã§å®è¡ã§ããçš®é¡ã®æ©èœã§ãã
äŸ: ãµãŒããŒããå¿çãåä¿¡ããã®ã§ãå¿çã®äžéšãå€æ°ã«ä¿åããããšèããŠããŸãã Postman ã§ã¯ããã¹ã ã¹ã¯ãªãã (ããèªäœãå¥åŠã§ã) ã§æ¬¡ã®ããã«èšè¿°ããŸãã
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);
ããããç§ãã¡ã®æèŠã§ã¯ããã®ãããªåçŽã§é »ç¹ã«äœ¿çšãããã·ããªãªã®ã¹ã¯ãªãããäœæããã®ã¯åé·ã§ããããã«æããŸãã ãããã£ãŠãTestMace ã§ã¯ãã°ã©ãã£ã«ã« ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŠãåçã®äžéšãå€æ°ã«å²ãåœãŠãããšãã§ããŸãã ããã«ã·ã³ãã«ããèŠãŠãã ãã:
ãããŠããªã¯ãšã¹ãããšã«ãã®åçå€æ°ãæŽæ°ãããããã«ãªããŸãã ããããPostman ã¢ãããŒãã®æ¹ãããæè»ã§ãå²ãåœãŠãè¡ãã ãã§ãªããããã€ãã®ååŠçãå®è¡ã§ãããšäž»åŒµããŠãå察ããããšãã§ããŸãã åã®äŸãå€æŽããæ¹æ³ã¯æ¬¡ã®ãšããã§ãã
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));
ããŠããã®ç®çã®ããã« TestMace ã¯
const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));
ã芧ã®ãšãããããŒãã®æ§æã¯ããã§ãããŸãæ©èœããŸããã ãããŠãäžã§èª¬æãããããªåçŽãªã±ãŒã¹ã®å ŽåãåçŽã«æ¬¡ã®åŒãå²ãåœãŠãããšãã§ããŸãã ${crypto.MD5($response.data)}
å€æ°ã¯ GUI çµç±ã§äœæãããŸãã
GUIã«ãããã¹ãã®äœæ
Postman ã䜿çšãããšãã¹ã¯ãªãã (Postman ã®å Žå㯠JavaScript) ãèšè¿°ããŠãã¹ããäœæã§ããŸãã ãã®ã¢ãããŒãã«ã¯ãã»ãŒç¡å¶éã®æè»æ§ãæ¢è£œã®ãœãªã¥ãŒã·ã§ã³ã®å¯çšæ§ãªã©ãå€ãã®å©ç¹ããããŸãã
ããããçŸå®ã¯å€ãã®å Žå (ç§ãã¡ã¯ããã§ã¯ãããŸããã人çã¯ãã®ãããªãã®ã§ã)ããã¹ã¿ãŒã¯ããã°ã©ãã³ã° ã¹ãã«ãæã£ãŠããªããã®ã®ãä»ã¯ããŒã ã«å©çããããããããšèããŠããŸãã ãã®ãããªå ŽåãTestMace ã§ã¯ããŒã³ãŒãã®æŠå¿µã«åŸã£ãŠãã¹ã¯ãªãããäœæããããšãªã GUI ãä»ããŠç°¡åãªãã¹ããäœæã§ããŸãã ããšãã°ãå€ãçãããã©ãããæ¯èŒãããã¹ããäœæããããã»ã¹ã¯æ¬¡ã®ããã«ãªããŸãã
ãã ããã°ã©ãã£ã«ã« ãšãã£ã¿ã§ãã¹ããäœæããŠãããã®å¯èœæ§ã¯æé€ãããŸããã
ãªã³ã¯ãä»ããŠæ¢åã®ã¹ã¯ãªãããå®è¡ããæ©èœ (ãªã³ã¯ ããŒã)
ç¹å®ã®ã¯ãšãªãã¹ã¯ãªããå
šäœããããžã§ã¯ãã®ç°ãªãéšåã§è€æ°åå®è¡ããå¿
èŠãããå ŽåããããããŸãã ãã®ãããªãªã¯ãšã¹ãã®äŸãšããŠã¯ãç°å¢ãæãŸããç¶æ
ã«ããã«ã¹ã¿ã ã®å€æ®µéèªèšŒãªã©ãæããããŸãã äžè¬ã«ãããã°ã©ãã³ã°èšèªã®èŠ³ç¹ããèšãã°ãã¢ããªã±ãŒã·ã§ã³ã®ããŸããŸãªéšåã§åå©çšã§ããé¢æ°ãå¿
èŠã§ãã TestMace ã§ã¯ããã®æ©èœã¯æ¬¡ã®ããã«å®è¡ãããŸãã
1) ã¯ãšãªãŸãã¯ã¹ã¯ãªãããäœæãã
2) ãªã³ã¯ã¿ã€ãã®ããŒããäœæããŸã
3) ãã©ã¡ãŒã¿ã§ãæåã®ã¹ãããã§äœæããã¹ã¯ãªãããžã®ãªã³ã¯ãæå®ããŸãã
ããé«åºŠãªããŒãžã§ã³ã§ã¯ãã¹ã¯ãªããã®ã©ã®åçå€æ°ããªã³ã¯ãããé«ãã¬ãã«ã«æž¡ãããæå®ã§ããŸãã ãããã«ãããšæããŸãããïŒ æ¬¡ã®ååã®ãã©ã«ããŒãäœæãããšããŸãã äœææçš¿ããã®äžã§åçå€æ°ããã®ããŒãã«å²ãåœãŠãããŸã postId
ã çŸåšãªã³ã¯ããŒãå
ã«ãããŸã ãªã³ã¯ã®äœæ å€æ°ãæ瀺çã«æå®ã§ããŸã postId
å
ç¥ã«å²ãåœãŠããã ãªã³ã¯ã®äœæã ãã®ã¡ã«ããºã 㯠(ãã¯ãããã°ã©ãã³ã°èšèªã§)ããé¢æ°ãããçµæãè¿ãããã«äœ¿çšã§ããŸãã å
šäœçã«ã¯ãŒã«ã§ãDRY ã¯æ¬æ Œçã«æ®åããŠãããããã§ãã³ãŒã㯠XNUMX è¡ãç ŽæããŠããŸããã
Postman ã«é¢ããŠã¯ããªã¯ãšã¹ããåå©çšããããã®æ©èœãªã¯ãšã¹ãããããŸã
ãã®ä»ã®éã
- å€æ°ã®ã¹ã³ãŒãããã现ããå¶åŸ¡ã§ããŸãã Postman ã§å€æ°ãå®çŸ©ã§ããæå°ã®ã¹ã³ãŒãã¯ã³ã¬ã¯ã·ã§ã³ã§ãã TestMace ã䜿çšãããšãä»»æã®ã¯ãšãªãŸãã¯ãã©ã«ããŒã®å€æ°ãå®çŸ©ã§ããŸãã Postman å ±æã³ã¬ã¯ã·ã§ã³ã§ã¯ã³ã¬ã¯ã·ã§ã³ã®ã¿ããšã¯ã¹ããŒãã§ããŸãããTestMace ã§ã¯å ±æã¯ã©ã®ããŒãã§ãæ©èœããŸã
- TestMace ããµããŒããã
ç¶æ¿å¯èœãªããã㌠ãããã©ã«ãã§åã¯ãšãªã«çœ®ãæããããšãã§ããŸãã ãã¹ããã³ã¯ããã«ã€ããŠæ¬¡ã®ããã«è¿°ã¹ãŠããŸãããã£ã¬ã³ãž ãããã«ã¯ééãããŠããŸããã解決çãšããŠæäŸãããŠããŸã...ã¹ã¯ãªããã䜿çšãã ã TestMace ã§ã¯ãããã¯ãã¹ãŠ GUI ãä»ããŠæ§æãããç¹å®ã®åå«ã§ç¶æ¿ãããããããŒããªãã·ã§ã³ã§ç¡å¹ã«ãããªãã·ã§ã³ããããŸãã - å ã«æ»ã/ããçŽãã ããŒãã®ç·šéæã ãã§ãªãã移åãåé€ãååå€æŽãªã©ããããžã§ã¯ãã®æ§é ãå€æŽããæäœæã«ãæ©èœããŸãã
- ãªã¯ãšã¹ãã«æ·»ä»ããããã¡ã€ã«ã¯ãããžã§ã¯ãã®äžéšãšãªããPostman ãšã¯ç°ãªãå®å šã«åæãããªãããããžã§ã¯ããšäžç·ã«ä¿åãããŸãã (ã¯ããèµ·åãããã³ã«ãã¡ã€ã«ãæåã§éžæããã¢ãŒã«ã€ãå ã®ååã«è»¢éããå¿ èŠã¯ãªããªããŸãã)
ãã§ã«éçºäžã®æ©èœ
ç¹ã«æ©èœãéåžžã«åªããŠããããã§ã«ãªãªãŒã¹åã®ç£šããããã£ãŠããå Žåã«ã¯ã次ã®ãªãªãŒã¹ã§ç§å¯ã®ããŒã«ãåãé€ããããšããèªæã«æµæããããšãã§ããŸããã§ããã ããã§ã¯ãäŒããŸãããã
æ©èœ
ãåç¥ã®ãšãããPostman ã¯ããããåçå€æ°ã䜿çšããŠå€ãçæããŸãã
{{$randomEmail}}
ãã ãããããã¯å€æ° (åçã§ã¯ãããŸãã) ã§ãããããé¢æ°ãšããŠäœ¿çšããããšã¯ã§ããŸããããã©ã¡ãŒã¿ãŒåã§ããªããããæååããããã·ã¥ãååŸããããšã¯ã§ããŸããã
TestMace ã«ã¯ãæ£çŽããªæ©èœãè¿œå ããäºå®ã§ãã ${} ã®å éšã§ã¯ãå€æ°ã«ã¢ã¯ã»ã¹ã§ããã ãã§ãªããé¢æ°ãåŒã³åºãããšãã§ããŸãã ãããã®ã æªåé«ãåœã¡ãŒã«ãçæããå¿ èŠãããå Žåã¯ã次ã®ããã«æžããŸãã
${faker.internet.email()}
ãããé¢æ°ã§ãããšããäºå®ã«å ããŠããªããžã§ã¯ãã®ã¡ãœãããåŒã³åºãããšãã§ããããšã«æ°ã¥ãã§ãããã ãŸããåçå€æ°ã®å€§ãããŠãã©ãããªãªã¹ãã®ä»£ããã«ãè«ççã«ã°ã«ãŒãåããããªããžã§ã¯ãã®ã»ãããçšæãããŠããŸãã
æååã®ããã·ã¥ãèšç®ãããå Žåã¯ã©ãããã°ããã§ãããã? ç°¡åã«ïŒ
${crypto.MD5($dynamicVar.data)}
å€æ°ããã©ã¡ãŒã¿ãšããŠæž¡ãããšãã§ããããšã«æ°ã¥ãã§ãããã ãã®æç¹ã§ã奜å¥å¿æºçãªèªè ã¯äœããééã£ãŠãããšçããããããŸãã...
åŒã§ã® JavaScript ã®äœ¿çš
...ããã«ã¯ååãªçç±ããããŸãã é¢æ°ã®èŠä»¶ã圢æãããŠãããšãã«ãæå¹ãª JavaScript ã¯åŒã§èšè¿°ããå¿ èŠããããšããçµè«ã«çªç¶å°éããŸããã ãããã£ãŠã次ã®ãããªåŒãèªç±ã«èšè¿°ã§ããããã«ãªããŸããã
${1 + '' + crypto.MD5('asdf')}
ããããã¹ãŠãã¹ã¯ãªãããªãã§ãå ¥åãã£ãŒã«ãäžã§è¡ãããšãã§ããŸãã
Postman ã«é¢ããŠèšãã°ãããã§ã¯å€æ°ãã䜿çšã§ãããã»ãã®ããããªåŒãæžãããšãããšãããªããŒã¿ãŒã¯çœµåããŠèšç®ãæåŠããŸãã
é«åºŠãªãªãŒãã³ã³ããªãŒã
çŸåšãTestMace ã«ã¯æ¬¡ã®ãããªæšæºã®ãªãŒãã³ã³ããªãŒãããããŸãã
ããã§ã¯ããªãŒãã³ã³ããªãŒãè¡ã«å ããŠããã®è¡ãäœã«å±ããŠãããã瀺ãããŠããŸãã ãã®ã¡ã«ããºã ã¯ãæ¬åŒ§ ${} ã§å²ãŸããåŒã§ã®ã¿æ©èœããŸãã
ã芧ã®ãšãããå€æ°ã®ã¿ã€ã (æååãæ°å€ãé åãªã©) ã瀺ãèŠèŠçãªããŒã«ãŒãè¿œå ãããŠããŸãã ãªãŒãã³ã³ããªãŒã ã¢ãŒããå€æŽããããšãã§ããŸã (ããšãã°ãå€æ°ãŸãã¯ããããŒã䜿çšãããªãŒãã³ã³ããªãŒããéžæã§ããŸã)ã ãããããããããæãéèŠãªããšã§ã¯ãããŸããã
ãŸãããªãŒãã³ã³ããªãŒãã¯åŒå ã§ãæ©èœããŸã (å¯èœãªå Žå)ã ããã¯æ¬¡ã®ããã«ãªããŸãã
次ã«ãã¹ã¯ãªããã§ãªãŒãã³ã³ããªãŒããå©çšã§ããããã«ãªããŸããã ä»çµã¿ãèŠãŠã¿ãŸãããïŒ
ãã®æ©èœã Postman ãšæ¯èŒããããšã¯æå³ããããŸããããªãŒãã³ã³ããªãŒãã¯ãå€æ°ãããããŒãããã³ãããã®å€ã®éçãªã¹ãã«ã®ã¿å¶éãããŠããŸã (äœãå¿ããå Žåã¯ä¿®æ£ããŠãã ãã)ã ã¹ã¯ãªããã¯ãªãŒãã³ã³ããªãŒããããŸãã:)
ãŸãšã
XNUMXæã§è£œåéçºéå§ããXNUMX幎ãè¿ããŸããã ãã®éãç§ãã¡ã¯å€ãã®ããšãæãéããããšãã§ããããã€ãã®ç¹ã§ã¯ç«¶åä»ç€Ÿã«è¿œãã€ãããšãã§ããŸããã ããããããã¯ãšããããç§ãã¡ã®ç®æšã¯ãAPI ãæäœããããã®æ¬åœã«äŸ¿å©ãªããŒã«ãäœæããããšã§ãã ç§ãã¡ã«ã¯ãŸã ããã¹ãããšããããããããŸããæ¥å¹Žã®ãããžã§ã¯ãéçºã®å€§ãŸããªèšç»ã¯æ¬¡ã®ãšããã§ãã
çæ§ã®ãã£ãŒãããã¯ã«ãããè±å¯ãªæ©èœãããé©åã«æäœã§ããããã«ãªããŸãããŸããçæ§ã®ãµããŒãã¯ãç§ãã¡ãæ£ããããšãããŠãããšããåãšèªä¿¡ãäžããŠãããŸãã ããŸããŸä»æ¥ã¯ç§ãã¡ã®ãããžã§ã¯ãã«ãšã£ãŠéèŠãªæ¥ã§ããTestMace ãå
¬éãããæ¥ã§ãã
åºæïŒ habr.com