-- ·|­û / µù¥U -- ¡@
¡@±b¸¹¡G
¡@±K½X¡G
¡@ | µù¥U | §Ñ°O±K½X
3/26 ·s®Ñ¨ì¡I 3/19 ·s®Ñ¨ì¡I 3/14 ·s®Ñ¨ì¡I 12/12 ·s®Ñ¨ì¡I
ÁʮѬyµ{¡EQ & A¡E¯¸°È¯d¨¥ª©¡E«ÈªA«H½c
¢x 3ds Max¢x Maya¢x Rhino¢x After Effects¢x SketchUp¢x ZBrush¢x Painter¢x Unity¢x
¢x PhotoShop¢x AutoCad¢x MasterCam¢x SolidWorks¢x Creo¢x UG¢x Revit¢x Nuke¢x
¢x C#¢x C¢x C++¢x Java¢x ¹CÀ¸µ{¦¡¢x Linux¢x ´O¤J¦¡¢x PLC¢x FPGA¢x Matlab¢x
¢x Àb«È¢x ¸ê®Æ®w¢x ·j¯Á¤ÞÀº¢x ¼v¹³³B²z¢x Fluent¢x VR+AR¢x ANSYS¢x ²`«×¾Ç²ß¢x
¢x ³æ´¹¤ù¢x AVR¢x OpenGL¢x Arduino¢x Raspberry Pi¢x ¹q¸ô³]­p¢x Cadence¢x Protel¢x
¢x Hadoop¢x Python¢x Stm32¢x Cortex¢x Labview¢x ¤â¾÷µ{¦¡¢x Android¢x iPhone¢x
¥i¬d®Ñ¦W,§@ªÌ,ISBN,3dwoo®Ñ¸¹
¸Ô²Ó®ÑÄy¤ÀÃþ

¥þ´Ì¦Û°Ê¤Æ´ú¸Õ¹ê¾Ô¡X¡X°ò¤_TestNG¡BHttpClient¡BSelenium©MAppium

( ²Åé ¦r)
§@ªÌ¡G¿c®aÀÜÃþ§O¡G1. -> ³nÅé¤uµ{ -> ³nÅé´ú¸Õ
ĶªÌ¡G
¥Xª©ªÀ¡G¹q¤l¤u·~¥Xª©ªÀ¥þ´Ì¦Û°Ê¤Æ´ú¸Õ¹ê¾Ô¡X¡X°ò¤_TestNG¡BHttpClient¡BSelenium©MAppium 3dWoo®Ñ¸¹¡G 52437
¸ß°Ý®ÑÄy½Ð»¡¥X¦¹®Ñ¸¹¡I

¡i¯Ê®Ñ¡j
NT°â»ù¡G 395 ¤¸

¥Xª©¤é¡G3/1/2020
­¶¼Æ¡G252
¥úºÐ¼Æ¡G0
¯¸ªø±ÀÂË¡G
¦L¨ê¡G¶Â¥Õ¦L¨ê»y¨t¡G ( ²Åé ª© )
¥[¤JÁʪ«¨® ¢x¥[¨ì§Úªº³Ì·R
(½Ð¥ýµn¤J·|­û)
ISBN¡G9787121383823
§@ªÌ§Ç¡@|¡@ĶªÌ§Ç¡@|¡@«e¨¥¡@|¡@¤º®e²¤¶¡@|¡@¥Ø¿ý¡@|¡@§Ç
(²Åé®Ñ¤W©Ò­z¤§¤U¸ü³sµ²¯Ó®É¶O¥\, ®¤¤£¾A¥Î¦b¥xÆW, ­YŪªÌ»Ý­n½Ð¦Û¦æ¹Á¸Õ, ®¤¤£«OÃÒ)
§@ªÌ§Ç¡G

ĶªÌ§Ç¡G

«e¨¥¡G

¼g§@­I´º
2011 ¦~§Ú±µÄ²¤F²Ä¤@­Ó¦Û°Ê¤Æ´ú¸Õ¤u¨ãDeviceAnywhere¡A¸Ó¤u¨ã±N¯u¹ê¤â¾÷¸m¤_¤ªºÝ¡A³q¹L¿ý¨î¦^©ñ°õ¦æ¦Û°Ê¤Æ´ú¸Õ¸}¥»¡A³Ì²×ªö¥Î¹Ï¤ù¹ï¤ñ§Þ³N¹ê²{Â_¨¥¡C¦Û¦¹¤§¦Z¡A§Ú¹ï¦Û°Ê¤Æ´ú¸Õ§Þ³N²£¥Í¤F¿@«pªº¿³½ì¡A¦b¤§¦Zªº8 ¦~¦h®É¶¡¨½¡A§Ú¤£Â_¾Ç²ß¦Û°Ê¤Æ´ú¸Õ§Þ³N¡A¦}§â¥¦¸¨¹ê¨ì¹ê»Ú¶µ¥Ø¤¤¡C
¬°¤°¤\¬OTestNG¡A¦Ó¤£¬OJUnit¡H
JUnit ¥D­n¥Î¤_³æ¤¸´ú¸Õ¡A¦ÓTestNG ¦bJUnit ªº°ò¦¤W°µ¤F«Ü¦h§ï¶i¡A§ó¾A¦X°µ¥þ´Ì¦Û°Ê¤Æ´ú¸Õªº¾ãÅé®Ø¬[¡C

¥»®Ñ¤º®e
¥»®Ñªº¼g§@¶¶§Ç¤£¬O¥Ñ²L¤J²`ªº¡A¦Ó¬O¡§¦Û©³¦V¤W¡¨ªº¡A§Y«ö·Ó³æ¤¸¦Û°Ê¤Æ´ú¸Õ¡B±µ¤f¦Û°Ê¤Æ´ú¸Õ©M¬É­±¦Û°Ê¤Æ´ú¸Õªº¶¶§Ç½s¼gªº¡C
¥»®Ñ­º¥ý¹ï¦Û°Ê¤Æ´ú¸Õ¶i¦æ¤F·§­z¡]²Ä1 ³¹¡^¡F
±µµÛ¹ïJava ©MTestNG »yªk¶i¦æ¤FÁ¿¸Ñ¡]²Ä2 ³¹©M²Ä3 ³¹¡^¡F
®Ö¤ß³¡¤À¬O¨Ï¥ÎTestNG ¶i¦æ³æ¤¸¦Û°Ê¤Æ´ú¸Õ¡B±µ¤f¦Û°Ê¤Æ´ú¸Õ©M¬É­±¦Û°Ê¤Æ´ú¸Õ¡]²Ä4³¹¦Ü²Ä10 ³¹¡^¡F
³Ì¦Z¤¶²Ð¤F«ùÄò¶°¦¨¡BMock ´ú¸Õ©M¥N½XÂл\²vµ¥ÂX®iª¾ÃÑ¡]²Ä11 ³¹¡^¡C
¹ï¤_¥N½X°ò¦¤ñ¸ûÁ¡®zªºÅªªÌ¡A«Øij¦b¾\Ū§¹«e¤T³¹¤º®e¦Z¡A¥ý¾\Ū¸û¬°Â²³æªº²Ä5¡B7¡B8 ³¹¡A¦A¾\Ū²Ä4¡B6¡B9¡B10¡B11 ³¹¡C

¾A¦XŪªÌ
´ú¸Õ¤uµ{®v¡G¥»®Ñ¥i¥H±q²³æªºWeb ¦Û°Ê¤Æ´ú¸Õ¡]²Ä7 ³¹¡^±a§A¨«¶i¦Û°Ê¤Æ´ú¸Õªº¤jªù¡C
¦Û°Ê¤Æ´ú¸Õ¤uµ{®v¡G¥´³q¦U­Ó¯Å§Oªº¦Û°Ê¤Æ´ú¸Õ¾ÀÂS¡AÀ°§UŪªÌ¥þ­±´x´¤³æ¤¸¦Û°Ê¤Æ´ú¸Õ¡B±µ¤f¦Û°Ê¤Æ´ú¸Õ©M¬É­±¦Û°Ê¤Æ´ú¸Õ¡C
´ú¸ÕºÞ²zªÌ¡G¤F¸Ñ¥D¬y¦Û°Ê¤Æ´ú¸Õ§Þ³N¡A«ü¾É¹Î¶¤¶}®i¦Û°Ê¤Æ´ú¸Õ¡A§â´¤¦Û°Ê¤Æ´ú¸Õªº¤è¦V©M¥Ø¼Ð¡C

­PÁÂ
·PÁ¦ѱCªº²z¸Ñ©M¤ä«ù¡AÅý§Ú¯à¥þ¨­¤ß¦a½s¼g¥»®Ñ¡C
·PÁ¦Ѥj¡]³¯ùÚÆk¡^µ¹§Ú¶i¤J³n¥ó´ú¸Õ¦æ·~ªº¾÷·|¡A¨S¦³³o­Ó¾÷·|¡A§Ú¤£¥i¯à¦b³o­Ó¦æ·~¨«±o³o¤\»·¡C
·PÁ½s¿è¦w®R¦b¥»®Ñ¥Xª©¹Lµ{¤¤­@¤ßªº«ü¾É¡C
ÁöµM®Ñ¤¤ªº¨C­Ó§Þ³NÂI³£´¿¦b¹ê»Ú¶µ¥Ø¤¤¹ê½î¹L¡A¦ý¥Ñ¤_®É¶¡­Ü«PÃø§K¦³»~¡A·q½ÐŪªÌ§åµû«ü¥¿¡C
¿c®aÀÜ
2019 ¦~12 ¤ë20 ¤é
¤º®e²¤¶¡G

TestNG §@¬°Java ¤¤Á|¨¬»´­«ªº´ú¸Õ®Ø¬[¡A°£¥i¥H´À¥NJUnit ¶i¦æ³æ¤¸¦Û°Ê¤Æ´ú¸Õ¥~¡AÁÙ¥i¥H³q¹L¶°¦¨Selenium¡BAppium ©MHttpClient µ¥®Ø¬[°µ¦UºØÃþ«¬ªº¦Û°Ê¤Æ´ú¸Õ¡C¥»®Ñ­º¥ý¹ï¦Û°Ê¤Æ´ú¸Õ¶i¦æ¤F·§­z¡A±µµÛ¹ïTestNG ªº»yªk¶i¦æ¤FÁ¿¸Ñ¡A®Ö¤ß³¡¤À¬O¨Ï¥ÎTestNG ¶i¦æ³æ¤¸¦Û°Ê¤Æ´ú¸Õ¡B±µ¤f¦Û°Ê¤Æ´ú¸Õ©M¬É­±¦Û°Ê¤Æ´ú¸Õ¡A³Ì¦Z¤¶²Ð¤F«ùÄò¶°¦¨¡BMock ´ú¸Õ©M¥N½XÂл\²vµ¥ÂX®iª¾ÃÑ¡C¥»®Ñ¾A¦X´ú¸Õ¤uµ{®v¡B¦Û°Ê¤Æ´ú¸Õ¤uµ{®v©M´ú¸ÕºÞ²zªÌ¾\Ū¡C
¥Ø¿ý¡G

²Ä1 ³¹ ¦Û°Ê¤Æ´ú¸Õ·§­z 1
1.1 ¦Û°Ê¤Æ´ú¸Õ©w¸q©M¤ÀÃþ . 1
1.2 ¦Û°Ê¤Æ´ú¸Õªº¥Øªº . 3
1.2.1 ´£°ª³n¥ó½è¶q 3
1.2.2 ´£°ª´ú¸Õ®Ä²v 5
1.3 ¦Û°Ê¤Æ´ú¸Õ¹ê¬I¤T­n¯À . 6
1.3.1 ¦³©ú½Tªº¥Ø¼Ð 6
1.3.2 ¦³¨¬°÷ªº¸ê·½ 7
1.3.3 ¦³¦X²zªº­p¹º 8

²Ä2 ³¹ TestNG »yªk . 12
2.1 TestNG ²¤¶ 12
2.2 ´ú¸Õ«eªº·Ç³Æ¤u§@ . 12
2.2.1 °t¸mMaven 12
2.2.2 ³Ð«Ø¤uµ{ 14
2.2.3 ´ú¸Õ°õ¦æ 16
2.3 TestNG ª`¸Ñ 19
2.3.1 «e¸m±ø¥ó©M¦Z¸m±ø¥ó 20
2.3.2 ¼Æ¾ÚÅX°Ê 24
2.3.3 ´ú¸Õ¥Î¨Ò 25
2.4 testng.xml. 28
2.4.1 ¡Õpackage¡Ö 28
2.4.2 ¡Õinclude¡Ö©M¡Õexclude¡Ö . 30
2.4.3 ¡Õparameter¡Ö¼Ðñ 32

²Ä3 ³¹ ³æ¤¸¦Û°Ê¤Æ´ú¸Õ 34
3.1 ½s¼g«Ý´úµ{§Ç . 34
3.2 ¤â¤u´ú¸Õ¥Î¨Ò³]­p . 35
3.2.1 ¤ÀªR«Ý´úµ{§Ç 35
3.2.2 ´ú¸Õ¥Î¨Ò³]­p 35
3.3 ³]­p¦Û°Ê¤Æ´ú¸Õ¥Î¨Ò . 36
3.3.1 °ò¤_JUnit ³]­p¦Û°Ê¤Æ´ú¸Õ¥Î¨Ò 36
3.3.2 °ò¤_TestNG ³]­p¦Û°Ê¤Æ´ú¸Õ¥Î¨Ò 38
3.4 Spring ªº³æ¤¸¦Û°Ê¤Æ´ú¸Õ 42
3.4.1 Java ¥ø·~¯ÅÀ³¥Î²¤¶ 42
3.4.2 ½s¼g«Ý´úµ{§Ç 44
3.4.3 ³æ¤¸¦Û°Ê¤Æ´ú¸Õ 50

²Ä4 ³¹ HTTP ±µ¤f¦Û°Ê¤Æ´ú¸Õ 56
4.1 HTTP ²¤¶ 56
4.2 ³¡¸p«Ý´úµ{§Ç . 57
4.3 ¤â¤u´ú¸Õ¥Î¨Ò³]­p . 58
4.3.1 ¤ÀªR«Ý´ú±µ¤f 58
4.3.2 ´ú¸Õ¥Î¨Ò³]­p 60
4.4 HttpClient ¥Îªk . 62
4.4.1 HttpClient ²¤¶ 62
4.4.2 ³Ð«Ø¤uµ{ 63
4.4.3 µo°eHTTP ½Ð¨D 64
4.4.4 ³B²zªA°È¾¹ÅTÀ³ 66
4.4.5 ³]¸m½Ð¨DÀY 68
4.5 TestNG ¶°¦¨HttpClient 68
4.5.1 RESTful ±µ¤f¦Û°Ê¤Æ´ú¸Õ . 69
4.5.2 SOAP ±µ¤f¦Û°Ê¤Æ´ú¸Õ . 81

²Ä5 ³¹ RPC ±µ¤f¦Û°Ê¤Æ´ú¸Õ . 87
5.1 RPC ²¤¶ . 87
5.2 ³¡¸p«Ý´úµ{§Ç . 88
5.3 ¤â¤u´ú¸Õ¥Î¨Ò³]­p . 90
5.3.1 ¤ÀªR«Ý´ú±µ¤f 90
5.3.2 ´ú¸Õ¥Î¨Ò³]­p 91
5.4 TestNG Dubbo ±µ¤f¦Û°Ê¤Æ´ú¸Õ 92
5.4.1 °ò¤_XML ¤è¦¡ . 94
5.4.2 °ò¤_API ¤è¦¡ 99
5.4.3 °ò¤_ª`¸Ñ¤è¦¡ 100
5.4.4 ªx¤Æ½Õ¥Î 102

²Ä6 ³¹ Web ¦Û°Ê¤Æ´ú¸Õ . 107
6.1 Web ¦Û°Ê¤Æ´ú¸Õ¤u¨ã¡]®Ø¬[¡^²¤¶ . 107
6.2 ³¡¸p«Ý´úµ{§Ç . 108
6.3 Selenium ¥Îªk . 109
6.3.1 ·Ç³Æ 109
6.3.2 ¤¸¯À¾Þ§@ 110
6.3.3 ¹«¼Ð¨Æ¥ó 115
6.3.4 Áä½L¨Æ¥ó 118
6.3.5 ÂsÄý¾¹¾Þ§@ 119
6.3.6 JavaScript ¹ï¸Ü®Ø³B²z 121
6.3.7 µ¥«Ý³B²z 124
6.4 TestNG ¶°¦¨Selenium 129

²Ä7 ³¹ Android ¦Û°Ê¤Æ´ú¸Õ 133
7.1 Android ¦Û°Ê¤Æ´ú¸Õ¤u¨ã¡]®Ø¬[¡^²¤¶ . 133
7.2 ¦w¸Ë«Ý´úÀ³¥Î . 134
7.3 Appium ¥Îªk . 134
7.3.1 ·Ç³Æ 134
7.3.2 ªì©l¤Æ°Ñ¼Æ 136
7.3.3 ¤¸¯À¾Þ§@ 139
7.3.4 À³¥Î¾Þ§@ 145
7.3.5 ¨t²Î¾Þ§@ 146
7.3.6 ¨Ï¥ÎAndroid ¼ÒÀÀ¾¹ . 147
7.4 TestNG ¶°¦¨Appium 148

²Ä8 ³¹ iOS ¦Û°Ê¤Æ´ú¸Õ 151
8.1 iOS ¦Û°Ê¤Æ´ú¸Õ¤u¨ã¡]®Ø¬[¡^²¤¶ 151
8.2 «Ý´úÀ³¥Î¶}µo . 151
8.2.1 ¤uµ{³Ð«Ø 152
8.2.2 ¬É­±¶}µo 152
8.2.3 ÅÞ¿è¶}µo 155
8.3 Appium ªº¥Îªk . 159
8.3.1 ·Ç³Æ 159
8.3.2 ªì©l¤Æ°Ñ¼Æ 160
8.3.3 ¤¸¯À¾Þ§@ 161
8.3.4 À³¥Î¾Þ§@ 167
8.3.5 ¨t²Î¾Þ§@ 169
8.3.6 ¨Ï¥ÎiOS ¼ÒÀÀ¾¹ 169
8.4 TestNG ¶°¦¨Appium 171

²Ä9 ³¹ ¦Û°Ê¤Æ´ú¸Õ¹ê¾Ô 174
9.1 ¹ê¾Ô¶µ¥Ø³¡¸p¦w¸Ë . 174
9.1.1 JForum ½×¾Â³¡¸p . 174
9.1.2 AnExplorer ¤å¥óºÞ²z¾¹¦w¸Ë 177
9.2 Web ¦Û°Ê¤Æ´ú¸Õ¹ê¾Ô . 177
9.2.1 ¤À¼h©M¸Ñ½¢ 177
9.2.2 ¤½¦@¨ç¼Æ©M·~°È¨ç¼Æ«Ê¸Ë 180
9.2.3 ¦Û°Ê¤Æ´ú¸Õ¥Î¨Ò½s¼g 186
9.2.4 ´ú¸Õ¼Æ¾Ú·Ç³Æ 189
9.3 Android ¦Û°Ê¤Æ´ú¸Õ¹ê¾Ô . 192
9.3.1 ¤uµ{·Ç³Æ 192
9.3.2 Page Object ³]­p¼Ò¦¡ 193
9.3.3 ­¶­±¹ï¶H¼h«Ê¸Ë 195
9.3.4 ·~°ÈÅÞ¿è¼h«Ê¸Ë 203
9.3.5 ¦Û°Ê¤Æ´ú¸Õ¥Î¨Ò½s¼g 204
9.4 ¶i¤@¨BÀu¤Æ . 207

²Ä10 ³¹ «ùÄò¶°¦¨ 208
10.1 «ùÄò¶°¦¨¡B«ùÄò¥æ¥I©M«ùÄò³¡¸p 208
10.2 Jenkins ªº­«­n¥\¯à²¤¶ 209
10.2.1 Jenkins ³¡¸p . 209
10.2.2 ¥ô°ÈºÞ²z 211
10.2.3 ºc«ØºÞ²z 212
10.2.4 ¸`ÂIºÞ²z 213
10.2.5 ´¡¥óºÞ²z 213
10.2.6 ¥Î¤áºÞ²z 215
10.3 TestNG ¶°¦¨¨ìJenkins . 216
10.3.1 TestNG ¤uµ{³Ð«Ø . 216
10.3.2 SVN ³¡¸p¤Î¨Ï¥Î . 218
10.3.3 JDK ©MMaven °t¸m . 220
10.3.4 §âTestNG ¶°¦¨¨ìJenkins . 221

²Ä11 ³¹ Mock ´ú¸Õ©M¥N½XÂл\²v . 225
11.1 ³æ¤¸Mock ´ú¸Õ 225
11.1.1 ³æ¤¸Mock ´ú¸Õ²¤¶ . 225
11.2.2 Mockito ¥Îªk 225
11.2 ±µ¤fMock ´ú¸Õ 230
11.2.1 ±µ¤fMock ´ú¸Õ²¤¶ . 230
11.2.2 RAP2 ¥Îªk . 230
11.3 ¥N½XÂл\²v²¤¶ 234
11.4 JaCoCo ¥Îªk 235
11.4.1 JaCoCo ­p¼Æ¾¹ . 235
11.4.2 ¨Ï¥ÎEclEmma ´¡¥ó. 236
11.4.3 Maven ¶°¦¨JaCoCo. 239
§Ç¡G