1¡¢°²×°
Á½ÖÖ°²×°·½Ê½£¬ÎÒÈÈÖÔÓÚÒÔchrome²å¼þÐÎʽ°²×°
Chrome²å¼þ
Mac App
2¡¢·¢ËÍÇëÇó
Postman×î»ù´¡µÄ¹¦ÄܾÍÊÇ·¢ËÍhttpÇëÇó£¬Ö§³ÖGET/PUT/POST/DELETE£¬»¹ÓкܶàÎÒ²»ÈÏʶµÄhttp·½·¨¡£
ͨ¹ýÌîдURL¡¢header¡¢bodyµÈ¾Í¿ÉÒÔ·¢ËÍÒ»¸öÇëÇó£¬Õâ¶ÔÓÚÎÒÃÇÆ½Ê±×öһЩ¼òµ¥µÄ²âÊÔÊǹ»Óõġ£
Èç¹ûÄãµÄÓ¦ÓÃÐèÒªÓõ½µÇ¼ÑéÖ¤£¬¿ÉÒÔͨ¹ýÌîдAuthorizationÒÔÂú×ãÄãµÄÐèÇó¡£
ÁíÍâÒ²¿ÉÒÔʹÓÃChromeä¯ÀÀÆ÷ÒѾµÇ¼µÄcookie£¬Í¬²½ä¯ÀÀÆ÷µÄcookieÐèÒª°²×°ÁíÒ»¸ö²å¼þInterceptor£¨À¹½Ø»ú£©¡£Ëü¿ÉÒÔÔÚÄã·¢ËÍÇëÇóʱ°ïÄ㽫ÒѾ´æÔÚÓÚä¯ÀÀÆ÷µÄÊý¾ÝËæheaderÇëÇó£¬ÁíÍâËü¿ÉÒÔ½«ä¯ÀÀÆ÷µÄÇëÇóдµ½postmanµÄÀúÊ·ÖУ¨ÐèÒª¿ªÆô¡°Request
Capture¡±£©¡£
3¡¢¼¯ºÏ
ÿ´ÎÅäÖÃÍêÒ»¸öÇëÇ󶼿ÉÒÔ±£´æµ½Ò»¸ö¼¯ºÏÖУ¬Èç´ËÒ»À´£¬Ï´βâÊÔ¿ÉÒÔÖ±½Ó´Ó¼¯ºÏÖÐÕÒµ½ÄãÒªÖ´ÐеIJâÊÔ¡£
¼¯ºÏ²»µ¥µ¥Ö»ÓзÖÀàºÍ´æ´¢¹¦ÄÜ£¬PostmanÖ§³ÖÒ»¼üÔËÐÐÕû¸ö¼¯ºÏÄڵIJâÊÔ¡£
ÎÒÃÇ¿ÉÒÔ°ÑÒ»¸öÇëÇóµ±×öÒ»¸öTest Case, ÄÇô¼¯ºÏ¾ÍÊÇÒ»¸öTest Suite¡£
ÿ¸ö¼¯ºÏ¶¼¶ÔÓ¦Ò»¸öURL£¬¿ÉÒÔͨ¹ýShare°´Å¥»ñµÃÄãµÄ¼¯ºÏURL£¬Õâ¸öURL¿ÉÒÔÓÃÓÚ·ÖÏí¸øÄãµÄ¶ÓÓÑ£¬»òÕßÓÃÓÚNewmanÖ´ÐС£
NewmanÊÇPostmanµÄÒ»¸öÃüÁîÐй¤¾ß£¬¿ÉÒÔÈÃAPI²âÊÔ¼ÓÈëµ½ÄãµÄ³ÖÐø¼¯³ÉÈÎÎñÉÏ¡£
4¡¢»·¾³±äÁ¿
µ±×öAPI²âÊÔʱ£¬Äã¿ÉÄܾ³£ÐèÒªÇл»²»Í¬µÄÉèÖᣱÈÈ磬¿ª·¢»·¾³µÄAPIÉèÖᢲâÊÔ»·¾³ºÍ²úÆ·»·¾³µÄAPIÉèÖã¬Äã¿ÉÄÜÐèÒªÔÚ²»Í¬µÄ²âÊÔ»·¾³ÏÂʹÓò»Í¬µÄÅäÖá£Îª´ËPostmanÌṩÁË»·¾³±äÁ¿£¬ÕâÑùÄã¾Í¿ÉÒÔͨ¹ýÐ޸Ļ·¾³±äÁ¿£¬¶ø²»ÐèÐÞ¸ÄÇëÇóÁË¡£
Äã¿ÉÒÔͨ¹ýÓÒÉϽǵÄÏÂÀ²Ëµ¥Ñ¡Ôñ»·¾³£¬¿ÉÒÔͨ¹ýµã»÷ÓÒ²àµÄСÑÛ¾¦À´²é¿´µ±Ç°»·¾³±äÁ¿¡£
5¡¢API²âÊÔ
Postman²âÊÔɳÏäÊÇÒ»¸öJavaScriptÖ´Ðл·¾³£¬¿ÉÒÔͨ¹ýJS½Å±¾À´±àдpre-requistºÍ²âÊԽű¾¡£pre-requist¿ÉÒÔÓÃÀ´ÐÞ¸ÄһЩĬÈϲÎÊý¡£
PostmanɳÏ伯³ÉÁ˼¸¸ö¹¤¾ß¿â£¬±ÈÈçlodash¡¢SugarJs¡¢tv4£¬»¹ÓÐһЩÄÚÖú¯ÊýÈçxml2JSON..
tv4ÓÃÓÚÑéÖ¤JSONÊý¾Ý£¬Í¨¹ý±àдJSON SchemaÀ´ÑéÖ¤£¬JSON SchemaµÄÓï·¨Çë²ÎÕÕÕâÀï
²âÊÔÓï·¨£º
// description Ϊ¸Ã²âÊÔµÄÃèÊö // value Ö»ÒªBoolean(value)²»µÈÓÚfalse£¬Õâ¸ö²âÊÔ¾ÍÊÇPASS tests[description] = value
// example
tests["Status code is 200"] = responseCode.code
=== 200; |
ÎÒÃÇÒÔgithub statusµÄ½Ó¿ÚΪÀý£º
url: https://status.github.com/api/status.json
tests["Status code is 200"] = responseCode.code === 200;
// validate json schema
var schema = {
properties: {
status: {type: 'string'},
last_updated: {type: 'string'}
}
};
tests["Valid data schema"] = tv4.validate(responseBody,
schema);
// check status
var jsonData = JSON.parse(responseBody);
tests["Github status is good"] = jsonData.status
=== 'good'; |
ÔËÐнá¹û£º

ʾÀý
ÊÜ http://httpbin.org/ Æô·¢£¬PostmanÒ²ÌṩÁËÒ»Ì×ÈëÃŵÄAPI http://dump.getpostman.com/
£¬½ÓÏÂÀ´ÎÒÃǽ«ÀûÓÃÕâÌ×API×öÍêÕûµÄ²âÊÔ¡£
1¡¢´´½¨Ò»¸ö»·¾³±äÁ¿


Ìí¼ÓÒ»¸öURL±äÁ¿£¬ÎÒÃÇ»áÔÚºóÐøÊ¹ÓÃ
2¡¢ÇëÇóÒ»¸öÐÂÓû§
ÎÒÃÇÐèҪͨ¹ý·¢ËÍÒ»¸öPOSTÇëÇóµ½{{url}}/blog/users/À´´´½¨Ò»¸öÓû§£¬²¢ÐèÒª¸½¼ÓÏÂÃæµÄ²ÎÊýµ½ÇëÇóbodyÖУº
×¢£º¼ÇµÃ½«»·¾³±äÁ¿Çл»µ½dump.getpostman.com£¬ÕâÑùÎÒÃDzÅÄÜ»ñÈ¡µ½{{url}}±äÁ¿
{ "username": "abhinav", "password": "abc" } |

Õâ¸ö½Ó¿ÚÏÖÔÚºÃÏñ²»Ö§³Ö´´½¨Óû§ÁË£¬ÎÒÃǼÙÉèÒѾ´´½¨³É¹¦ÁË£¬ÒòΪÕâ²»Ó°ÏìÎÒÃǺóÐø²Ù×÷
3¡¢»ñÈ¡Óû§µÄToken
TokenÓÃÓÚÊÚÓèÖÕ¶ËÇëÇóºÍ·ÃÎÊȨÏ޵ġ£ÎÒÃÇ¿ÉÒÔͨ¹ýPOSTÓû§ÃûºÍÃÜÂëÇëÇó {{url}}/blog/users/tokens/
À´»ñÈ¡Óû§µÄToken£¬Õâ¸öToken½«ÓÃÓÚÆäËûÇëÇóÖС£
{ "username": "abhinav", "password": "abc" } |

4¡¢¸ñʽ»¯JSON
ÎÒÃÇÐèÒª´ÓÉÏÃæµÄÇëÇó½á¹ûÖлñÈ¡µ½Óû§TokenºÍÓû§ID£¬²¢½«ÕâÁ½¸öÖµ±£´æµ½»·¾³±äÁ¿ÖУ¬ÒÔ¹©ºóÐøÊ¹Ó᣽«ÏÂÃæÕâ¶Î´úÂëÌí¼Óµ½²âÊÔ±à¼Æ÷ÖУº
var data = JSON.parse(responseBody);
if (data.token) {
tests["Body has token"] = true;
postman.setEnvironmentVariable("user_id",
data.user_id);
postman.setEnvironmentVariable("token",
data.token);
}
else {
tests["Body has token"] = false;
} |

5¡¢´´½¨Ò»ÆªÎÄÕÂ
Èç¹ûÉÏÃæµÄ²âÊÔÊÇÔÚÖ÷´°¿Ú»òÕß¼¯ºÏÔËÐÐÆ÷ÖÐÖ´ÐУ¬ÄÇô user_id ºÍ token »á×Ô¶¯µØ±»Ìí¼Óµ½»·¾³±äÁ¿ÖС£
ΪÁË´´½¨Ò»ÆªÎÄÕ£¬ÎÒÃÇÐèÒª·¢ËÍÒ»¸öPOSTÇëÇóµ½ {{url}}/blog/posts £¬²¢½« user_id
ºÍ token Ìí¼ÓÔÚURL²ÎÊýÖС£POSTµÄÇëÇóBodyÈçÏ£º
{ "post": "This is a new post" } |

6¡¢¼ì²é·µ»ØÊý¾Ý
Èç¹ûÉÏÊöµÄÇëÇó³É¹¦µÄ»°½«·µ»ØÒ»¸ö´øÓÐpost_idµÄJSON¡£ÎÒÃǽ«ÔÚÕâÀïÑéÖ¤ÊÇ·ñ´´½¨ÎÄÕ³ɹ¦£¬²¢ÇÒ½«ÎÄÕÂID±£´æµ½»·¾³±äÁ¿¡£½«ÏÂÃæÕâ¶Î´úÂëÌí¼Óµ½²âÊÔ±à¼Æ÷ÖУº
var data = JSON.parse(responseBody);
if (data.post_id) {
tests["post_id found"] = true;
postman.setEnvironmentVariable("post_id",
data.post_id);
}
else {
tests["post_id found"] = false;
} |

7¡¢»ñȡһƪÎÄÕ²¢ÑéÖ¤JSON
ÎÒÃǽ«Í¨¹ýÉÏÃæ·µ»ØµÄÎÄÕÂIDÀ´»ñÈ¡ÎÒÃÇ´´½¨µÄÎÄÕ¡£ÕâÀïÎÒÃǽ«Óõ½PostmanÄÚÖÃµÄ tv4 JSON
ÑéÖ¤Æ÷À´¼ì²é·þÎñÆ÷ÏìÓ¦µÄJSON¡£
´´½¨Ò»¸öGETÇëÇóµ½ {{url}}/blog/posts/{{post_id}}£¬²¢½«ÏÂÃæÕâ¶Î´úÂëÌí¼Óµ½²âÊÔ±à¼Æ÷ÖУº
var schema = { "type": "object", "properties": { "content": "string", "created_at": "integer", "id": "integer" }, "required": ["content", "created_at", "id"] };
var data = JSON.parse(responseBody);
var result = tv4.validateResult(data, schema);
tests["Valid schema"] = result.valid; |

8¡¢Ò»¼üÔËÐÐÓë·ÖÏí¼¯ºÏ
ÎÒÃǽ«ÉÏÊöÿһ¸ö²âÊÔ±£´æµ½PostmanTestµÄ¼¯ºÏÖУ¬ÕâÑùÎÒÃǾͿÉÒÔÔÚÈκÎʱºò´ò¿ªºÍÔËÐÐÄãÏëÒªµÄ²âÊÔ£¬²¢ÇÒ¿ÉÒÔÒ»¼üÔËÐÐËùÓУ¬»òÕß½«¼¯ºÏ·ÖÏí¸øÄãµÄС»ï°é£¬Ò²¿ÉÒÔ»ñȡǶÈëʽ´úÂ루ÈçÏÂÃæµÄ°´Å¥£©¡£
|