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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
È¥ÄĶù http ½Ó¿Ú×Ô¶¯»¯²âÊÔʵ¼ù
 
  3910  次浏览      28
 2018-12-10
 

 

±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚÍøÂ磬±¾Îļòµ¥½éÉÜÁËYApi ×Ô¶¯»¯²âÊÔ´ó´ó¼ò»¯Á˽ӿڲâÊÔÊý¾Ý×¼±¸£¬ºÍÑéÖ¤»·½Ú£¬Ä¿Ç°È¥ÄĶù²âÊÔÍŶÓÒѾ­¿ªÊ¼Ê¹Óá£

±³¾°

Ô½À´Ô½¶àµÄÓ¦ÓûùÓÚǰºó¶Ë·ÖÀë¹¹½¨£¬ºó¶ËÌṩÊý¾Ý½Ó¿Ú£¬Ç°¶Ëµ÷Óýӿڷµ»Ø json Êý¾ÝäÖȾµ½ UI£¬Õâ¸öʱºò±£Ö¤ºó¶Ë½Ó¿ÚÊý¾ÝÕýÈ·ÐÔ±äµÄÓúÀ´ÓúÖØÒª£¬½Ó¿Ú²âÊÔ¾ÍÊÇÀ´½â¾öÕâ¸öÎÊÌâ¡£ºÜ¶àÍŶӣ¬½Ó¿Ú²âÊÔ¾ÍÊÇÊÖ¶¯ÔËÐнӿڣ¬ÈâÑ۱ȶԽӿڷµ»ØµÄÊý¾Ý£¬ÕâÑùµÄ²Ù×÷Á÷³ÌЧÂʵÍÏ£¬ÈÝÒ׳ö´í¡£Ê¹Óà YApi Ö»ÐèÒªÔÚ¿ÉÊÓ»¯ GUI Ï£¬ÅäÖÃÏÂÿ¸ö½Ó¿ÚµÄÈë²ÎºÍ¶Ô RESPONSE ¶ÏÑÔ£¬¼´¿ÉʵÏÖ¶Ô½Ó¿ÚµÄ×Ô¶¯»¯²âÊÔ£¬´ó´óÌáÉýÁ˽ӿڲâÊÔµÄЧÂÊ¡£

×¼±¸¹¤×÷

Èç¹ûÄú»¹Î´²¿Êð yapi ½Ó¿Ú¹ÜÀíÆ½Ì¨£¬¿ÉÏÈȥʾÀýÕ¾µãÊÔÓá£

ÔÚ´´½¨ÍêÏîÄ¿ºÍ½Ó¿Úºó£¬ÐèÒª½øÈëµ½²âÊÔ¼¯Ò³Ã棬µ¼ÈëÐèÒª²âÊԵĽӿڡ£

»ù´¡¸ÅÄî

ÐèҪѧϰµÄ»ù´¡¸ÅÄîÖ÷Òª°üº¬²âÊÔ¼¯¡¢Pre-Script ¡¢Test-Script Èý·½Ãæ¡£

²âÊÔ¼¯

ÔÚÆ½Ê±µÄ¿ª·¢¹ý³ÌÖУ¬¾­³£Óöµ½µÄÒ»¸öÎÊÌâÊÇÿ´Îµ÷ÊÔ½Ó¿Ú¶¼ÐèÒªÖØÐÂÌîд²ÎÊý£¬YApi²âÊÔ¼¯Äܹ»±£´æÖ®Ç°ÌîдµÄ²ÎÊý£¬·½±ãÏ´εĵ÷ÊÔ¡£Ã¿¸öµÄÇëÇó²ÎÊý»¹¿ÉÒÔͨ¹ýÇ°ÃæÒÑÇëÇóµÄ½Ó¿ÚÊý¾Ý¶ÁÈ¡£¬»òÌîдmockËæ»ú×Ö·û´®£¬Í¨¹ýÉèÖöÏÑԽű¾ÑéÖ¤·µ»ØÊý¾ÝµÄÕýÈ·ÐÔ¡£

ÔÚ²âÊÔÁбí¿ÉÒÔ¿´µ½Ã¿¸ö²âÊÔÓÃÀýµÄ key,»¹ÓÐ ¿ªÊ¼²âÊÔ¡¢±¨¸æµÈ¹¦ÄÜ

µã»÷¿ªÊ¼²âÊԻᰴÕÕ case ¶¨ÒåµÄ²ÎÊý´ÓÉÏÍùÏÂÒ»¸öÒ»¸ö½øÐвâÊÔ£¬Èç¹û˳ÐòÓÐÎÊÌ⣬¿ÉÒÔÍ϶¯µ÷Õû

²âÊÔÍê³ÉÖ®ºó£¬µã»÷±¨¸æ²é¿´¸Ã´ÎÇëÇóµÄ½á¹û

Pre-Script

Pre-Script °üÀ¨ÇëÇó²ÎÊý´¦Àí½Å±¾ºÍÏìÓ¦Êý¾Ý´¦Àí½Å±¾Á½²¿·Ö¡£Í¨¹ý×Ô¶¨Òå js ½Å±¾·½Ê½¸Ä±äÇëÇóµÄ²ÎÊýºÍ·µ»ØµÄ response Êý¾Ý¡£ËûµÄʹÓó¡¾°ÈçÏ£º

1.½Ó¿ÚÇëÇó²ÎÊýÐèÒª¼ÓÃܼ°·µ»Ø response ½âÃÜ

2.½Ó¿ÚÇëÇó²ÎÊýÐèÒªÌí¼Ó¼ÆËã token

ÇëÇó²ÎÊý´¦Àí½Å±¾Ê¾Àý

ÒÔ jquery ajax ΪÀý£¬¼ÙÉ赱ǰµÄÇëÇó²ÎÊýÊÇ

{
url: '/api/user?id=1',
method: 'POST',
headers: {
xxx: 'xxx'
},
data: {
type: 1
}
}

ÄÇô¹«¹²±äÁ¿ context °üº¬ÒÔÏÂÊôÐÔ£º

context = {
pathname: '/api/user',
query: {
id: 1
},
requestHeader: {
xxx: 'xxx'
},
method: 'POST',
requestBody: {
type:1
}
}

¼ÙÉèÎÒÃÇÐèÒªÔÚ url Ôö¼ÓÒ»¸ö token ²ÎÊý£¬¿ÉÒÔдÈçÏÂ×Ô¶¨Òå½Å±¾£º

·µ»ØÊý¾Ý´¦Àí½Å±¾Ê¾Àý

ÔÚÉÏÃæµÄʾÀýÇëÇóÍê³Éºó£¬¼ÙÉè·µ»Ø responseBody={a:1},¹«¹²±äÁ¿ context °üº¬ÒÔÏÂÊôÐÔ£º

context = {
pathname: '/api/user',
query: {
id: 1
},
requestHeader: {
xxx: 'xxx'
},
method: 'POST',
requestBody: {
type:1
},
responseData: {
a:1
},
responseHeader: {
content-type: 'application/json'
...
}
}

¼ÙÉèÎÒÃÇÐèÒªÐÞ¸ÄÏìÓ¦Êý¾Ý responseBody a µÄֵΪ 2£¬¿ÉÒÔÌîдÈçÏÂ×Ô¶¨Òå½Å±¾£º

Test-Script (²âÊԽű¾)

ͨ¹ý×Ô¶¨Òå½Å±¾¶ÏÑÔ½Ó¿Ú²ÎÊý»ò·µ»Ø response Êý¾Ý£¬ÔÚ½Ó¿ÚÓÃÀýÒ³Ãæµã»÷ Test ±à¼­¡£

Ö§³ÖµÄ¹«¹²±äÁ¿

1.assert

assert(value)

ÅÐ¶Ï value ÊÇ·ñΪ truth, ÀýÈç assert(1) ͨ¹ý£¬ assert(0) ²»Í¨¹ý£¬Ö»Òª value ²»ÊÇ null, 0, falseµÈÖµÑé֤ͨ¹ý

assert.equal(actual, expected)

ÅÐ¶Ï actual ÊÇ·ñµÈÓÚ expected£¬ÀýÈç assert(1, 1)ͨ¹ý

assert.notEqual(actual, expected)

ÅÐ¶Ï actual ÊÇ·ñ²»µÈÓÚ expected

assert.deepEqual(actual, expected)

¼ÙÉ裺 actual = {a:1} ÊÇÒ»¸ö¶ÔÏ󣬼´±ã expected = {a:1}£¬Èç¹ûʹÓà assert.equal ¿ÉÄÜÒ²ÊDz»ÏàµÈµÄ£¬ÒòΪÔÚ js ÒýÓõÄÖ»ÊǶÔÏóµÄÒ»¸öÖ¸Õ룬ÐèҪʹÓà assert.deepEqual ±È½ÏÁ½¸ö¶ÔÏóÊÇ·ñÏàµÈ

assert.notDeepEaual(actual, expected)

Éî¶È±È½ÏÁ½¸ö¶ÔÏóÊÇ·ñ²»ÏàµÈ

2.status

http ״̬Âë

3.params

http request params, ºÏ²¢ÁË query ºÍ body

4.body

·µ»Ø response body

5.header

·µ»Ø response header

6.records

¼Ç¼µÄ http ÇëÇóÐÅÏ¢£¬¼ÙÉèÐèÒª»ñÈ¡ key Ϊ 555 µÄ½Ó¿Ú²ÎÊý»òÕßÏìÓ¦Êý¾Ý£¬¿Éͨ¹ý records[555].params »ò records[555].body »ñÈ¡

7.log

log£¨message£© º¯Êý,µ÷ÊÔʱʹÓã¬log ÐÅÏ¢½ö½öÔÚ¶ÏÑÔʧ°Üºó´òÓ¡

ʾÀý

assert.equal(body.errcode, 0)
assert.equal(body.data.group_name, 'testGroup')
assert.equal(status, 200)

¿ªÊ¼²âÊÔ

µÚÒ»²½£ºÅäÖòÎÊý

YApi ³ýÁËÖ§³Ö³£Á¿×Ö·û´®Í⣬»¹Ö§³Ö mock Ëæ»ú×Ö·û´®ºÍ±äÁ¿×Ö·û´®¡£

Mock²ÎÊý

Mock ²ÎÊýÿ´ÎÇëÇó¶¼»áÉú³ÉËæ»ú×Ö·û´®,Ö§³Ö mockjs ËùÓÐռλ·û

±äÁ¿²ÎÊý

YApi ÌṩÁËÇ¿´óµÄ±äÁ¿²ÎÊý¹¦ÄÜ£¬Äã¿ÉÒÔÔÚ²âÊÔµÄʱºòʹÓÃÇ°Ãæ½Ó¿ÚµÄ ²ÎÊý »ò ·µ»ØÖµ ×÷Ϊ ºóÃæ½Ó¿ÚµÄ²ÎÊý£¬¼´Ê¹½Ó¿ÚÖ®¼ä´æÔÚÒÀÀµ£¬Ò²¿ÉÒÔÇáËÉ Ò»¼ü²âÊÔ~

¸ñʽ£º

$.{key}.{params|body}.{path}

ÀýÈ磺ÏÖÓÐÁ½¸ö½Ó¿Ú£¬·Ö±ðÊÇ¡°µ¼º½±êÌ⡱ºÍ¡°ÎÄÕÂÁÐ±í¡±

ÎÄÕÂÁбí½Ó¿ÚÐèÒª´«²ÎÊý: µ±Ç°±êÌâ(id)£¬¶øÕâ¸ö id ÐèҪͨ¹ý µ¼º½±êÌ⠵ķµ»ØÖµ»ñÈ¡£¬ÕâʱӦÔÚ ÎÄÕÂÁÐ±í µÄ²ÎÊýÊäÈë¿òÖиù¾ÝǰÕßµÄ key ÕÒµ½¶ÔÓ¦ id¡£

µ¼º½±êÌ⠵IJÎÊýºÍ·µ»ØÖµÓÐÈçϽṹ£º

²ÎÊý£º

·µ»ØÖµ£º

Ôò ÎÄÕÂÁÐ±í µÄ²ÎÊý¿ÉÒÔÈçÏÂÅäÖãº

ÆäÖÐ [Math Processing Error].269.params ¼´±íʾ key ֵΪ 269 ÓÃÀýµÄÇëÇó²ÎÊý£¬$.269.body** ¼´±íʾ key ֵΪ 269 ÓÃÀýµÄ·µ»ØÖµ¡£

Tips: ÉÏÏÂÍ϶¯²âÊÔ¼¯ºÏµÄÁбíÏî¿ÉÒÔµ÷Õû²âÊÔµÄ˳Ðò¡£

ĿǰyapiÖеÄquery£¬body,headerºÍpathParamµÄÊäÈë²ÎÊýÒѾ­Ö§³Öµã»÷Ñ¡Ôñ¹¦ÄÜ¡£ÎÞÐè×Ô¼ºÌîд±í´ïʽ£¬Ö»ÐèÔÚµ¯´°ÖÐÑ¡ÔñÐèҪչʾµÄ±í´ïʽ¼´¿É¡£ ÊäÈëÑ¡Ïî°üÀ¨³£Á¿£¬mockÊý¾Ý£¬ÔÚ²âÊÔ¼¯ºÏÖÐÒ²Ö§³Ö±äÁ¿Ñ¡Ôñ¡£

¾ßÌåÓ÷¨£ºµ¥»÷±à¼­°´Å¥´ò¿ª±í´ïʽÉú³ÉÆ÷£¬µã»÷ÐèÒªµÄÊý¾Ý´´½¨±í´ïʽ£¬ÕâÀïÒ²¿ÉÒÔʵʱ²é¿´±í´ïʽ½á¹û¡£

µÚ¶þ²½£º¿ªÊ¼²âÊÔ

ºó¼Ç£º

YApi ×Ô¶¯»¯²âÊÔ´ó´ó¼ò»¯Á˽ӿڲâÊÔÊý¾Ý×¼±¸£¬ºÍÑéÖ¤»·½Ú£¬Ä¿Ç°È¥ÄĶù²âÊÔÍŶÓÒѾ­¿ªÊ¼Ê¹Óá£Î´À´ YApi ½«»á³ÖÐøÓÅ»¯×Ô¶¯»¯²âÊÔ¹¦ÄÜ£¬Ï£Íû´ó¼ÒÌá³ö´ó¼Ò±¦¹óµÄÒâ¼û¡£

 

   
3910 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

΢·þÎñ²âÊÔÖ®µ¥Ôª²âÊÔ
һƪͼÎÄ´øÄãÁ˽â°×ºÐ²âÊÔÓÃÀýÉè¼Æ·½·¨
È«ÃæµÄÖÊÁ¿±£ÕÏÌåϵ֮»Ø¹é²âÊÔ²ßÂÔ
È˹¤ÖÇÄÜ×Ô¶¯»¯²âÊÔ̽Ë÷
Ïà¹ØÎĵµ

×Ô¶¯»¯½Ó¿Ú²âÊÔʵ¼ù֮·
jenkins³ÖÐø¼¯³É²âÊÔ
ÐÔÄܲâÊÔÕï¶Ï·ÖÎöÓëÓÅ»¯
ÐÔÄܲâÊÔʵÀý
Ïà¹Ø¿Î³Ì

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù