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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
POSTMAN½Ó¿Ú²âÊÔ¹¤¾ß--¹ØÁª¼¼Êõ
 
×÷Õßêdzƣº ÊÕ¼¯Ã÷ÌìµÄ‡éÒä
  2183  次浏览      27
 2021-1-29
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁ˽ӿڲâÊÔ¹¤¾ß POSTMAN£¬Ëü²»½ö¿ÉÒÔµ÷ÊÔ¼òµ¥µÄcss¡¢html¡¢½Å±¾µÈ¼òµ¥µÄÍøÒ³»ù±¾ÐÅÏ¢£¬Ëü»¹¿ÉÒÔ·¢Ëͼ¸ºõËùÓÐÀàÐ͵ÄHTTPÇëÇó¡£
±¾ÎÄÀ´×ÔÓÚCSDN£¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼­¡¢ÍƼö¡£

±³¾°£º2017ÄêÈëÖ°Ò»¼Òp2pÐÐÒµµÄ»¥ÁªÍø¹«Ë¾£¬±»Áìµ¼½éÉÜʹÓÃpostman×ö½Ó¿Ú²âÊÔ£¬±¾ÈËϰ¹ßÐÔʹÓÃJMeter×ö½Ó¿Ú²âÊÔ£¬µ±È»Õâ¸ö¹¤¾ßÌý˵¹ý£¬¿ª·¢Õß³£ÓÃÀ´µ÷ÊÔ½Ó¿Ú¡£µ«µ±Ê±¹«Ë¾µÄͬÊ´ó¶àʹÓÃpostmanµÄ¹¦ÄÜÓÐÏÞ£¬ÀýÈçûÓÐʵÏÖ¼¯³É×Ô¶¯»¯»·¾³(newman)¡¢Ã»ÓйºÂòÆäÊշѰæÊµÏÖÐÔÄܲâÊԵĽӿڼàÌý¡¢Ö»Ê¹Óõ½ÆäÖеÄcollections¹¦ÄÜ£¬µ«ÊÇÓÐÒ»¸öʹÓÃȱÏÝ£¬×ö½Ó¿Ú²»ÄÇô·½±ã£¬¼´Á½¸ö½Ó¿ÚÖ®¼äµÄ¹ØÁªÐÔ£¬ÈçÇëÇóÏÂÒ»¸ö½Ó¿ÚÐèÒªÉÏÒ»¸ö½Ó¿ÚÏìÓ¦µÄtokenʱ£¬Ö»ÄÜÏÈÇëÇóÒ»´Î£¬µÃµ½tokenÖµ£¬ÔÙcopy·µ»ØµÄtoken£¬Æ´½Óµ½ÏÂÒ»¸ö½Ó¿ÚµÄÇëÇó²ÎÊýÖУ¬Íê³É½Ó¿Ú²âÊÔ£»Èç´Ë¼´Îª²»·½±ã£¬´Ó¶øµ¼ÖÂЧÂʲ»¸ß¡£Îª´Ë£¬»¨Á˵ãʱ¼äѧϰʹÓÃpostman×ö½Ó¿Ú²âÊÔ£¬²ÅÓÐÁ˽â¾öÒÔϼ¼Êõµã£¬µ±È»Ò²Ãâ²»Á˰ٶÈÒ»·¬¡£

¹¤¾ß½éÉÜ£ºÓû§ÔÚ¿ª·¢Õßµ÷ÊÔÍøÂç³ÌÐò»òÕßÊÇÍøÒ³B/SģʽµÄ³ÌÐòµÄʱºòÊÇÐèҪһЩ·½·¨À´¸ú×ÙÍøÒ³ÇëÇóµÄ£¬Óû§¿ÉÒÔʹÓÃÒ»Ð©ÍøÂçµÄ¼àÊÓ¹¤¾ß±ÈÈçÖøÃûµÄFirebugµÈÍøÒ³µ÷ÊÔ¹¤¾ß¡£½ñÌì¸ø´ó¼Ò½éÉܵÄÕâ¿îÍøÒ³µ÷ÊÔ¹¤¾ß²»½ö¿ÉÒÔµ÷ÊÔ¼òµ¥µÄcss¡¢html¡¢½Å±¾µÈ¼òµ¥µÄÍøÒ³»ù±¾ÐÅÏ¢£¬Ëü»¹¿ÉÒÔ·¢Ëͼ¸ºõËùÓÐÀàÐ͵ÄHTTPÇëÇó£¡

1¡¢PostmanÔÚ·¢ËÍÍøÂçHTTPÇëÇó·½Ãæ¿ÉÒÔ˵ÊÇChrome²å¼þÀà²úÆ·ÖеĴú±í²úÆ·Ö®Ò»¡£http://chromecj.com/web-development/2014-09/60/download.html ÏÂÔØÒ³Ãæ ¹Ù·½µØÖ·£ºhttps://www.getpostman.com/

2¡¢ÕâÀﲻ׸Êöpostman½Ó¿Ú²âÊÔ¹¤¾ß£¬ÈçºÎ×ö½Ó¿Ú²âÊÔ£¿Æä¸ñʽ¼°Ìîд·½Ê½ÈçͼËùʾ£º

3¡¢½Ó¿Ú×Ô¶¯»¯²âÊÔ£¬ÈçºÎ×öÄØ£¿postmanÌṩÁËÒ»¸öcollectionsÊÕ¼¯µÄ¹¦ÄÜ£¬¿ÉÒ԰Ѷà¸ö½Ó¿Ú½Å±¾´®³ÉÒ»¸öÒµÎñ³¡¾°£¬·ÅÔÚÖ¸¶¨µÄÎļþ¼ÐÀһ´Î¿ÉÒÔÔËÐÐÕû¸ö½Ó¿Ú£¬¼´Ò»¸öÒµÎñ³¡¾°£»

4¡¢ÈçÉÏËùÊö£¬¾ÍÓÐÎÊÌâÁË£¬Í¬Ò»¸ö»·¾³£¬ÓÐЩ²Ù×÷ÐèÒª»ñÈ¡ÁîÅÆtoken£¬²ÅÄÜÏÂÒ»²½²Ù×÷£¿ÕâÀï¾ÍÒªÓõ½¹ØÁª¼¼Êõ£¬Ï°¹ß½Ð×ö¹ØÁª£¬ÈçͬLoadrunnerÓйØÁªº¯Êý(web_reg_save_param_ex)¡¢jmeterÓкóÖô¦ÀíÆ÷(ÕýÔò±í´ïʽ¡¢jsonÌáÈ¡Æ÷¡¢xpath)µÈµÈ£»

5¡¢postmanÌṩÁË»·¾³±äÁ¿£¬ÓÐ×Ô¶¯¶¨ÒåµÄ»·¾³±äÁ¿ÒÔ¼°È«¾Ö±äÁ¿£»×Ô¶¨Òå»·¾³±äÁ¿Ãû³Æ£ºurl£¬±äÁ¿ÃûVariable Name, ±äÁ¿Öµ£ºVariable Value

È«¾Ö±äÁ¿£¬Èç¿ÉÒÔÉèÖýӿÚÇëÇóµÄheaderÐÅÏ¢£º

±äÁ¿ÒýÓ÷½Ê½Ë«»¨À¨ºÅ£º{{}}£¬ÈçÉÏurlµØÖ·¿ÉÒÔд³É{{url}}/login

6¡¢ÉÏͼtestsÑéÖ¤£¬¿ÉÒÔдÈë½Å±¾£¬

var jsonData = JSON.parse(responseBody); //»ñÈ¡ÏìÓ¦json¸ñʽ±¨ÎÄ

postman.setEnvironmentVariable("token", jsonData.data.result.token); //ÉèÖû·¾³±äÁ¿ token£¬ÖµÎªjsonData.data.result.token

tests["token"]=jsonData.data.result.token; //ÑéÖ¤ÏìÓ¦±¨ÎÄÀïÓÐtoken²ÎÊý·µ»Ø

tests["Body matches string"] = responseBody.has("±Ï²ÊÎä"); //¶ÏÑÔtestÏìÓ¦±¨ÎĽá¹ûÊÇ·ñ°üº­

tips£ºvar ¶¨ÒåÒ»¸ö±äÁ¿jsonData £¬ÉèÖÃtoken±äÁ¿£¬jsonData.data.result.token Õâ¸öÖµÊÇÒ»¼¶Ò»¼¶ÍùÏÂ×ßµÄjsonÊý¾Ý£¬

7¡¢¾ÙÀý£¬³¡¾°£ºÓû§ÏȵǼϵͳ£¬»ñÈ¡tokenÁîÅÆ£¬ÏÂÒ»²½²Ù×÷¹ºÂò½Ó¿ÚʹÓõǼ·µ»ØµÄtokenÁîÅÆ½øÐвÙ×÷£¬ÕâʱÁ½¸ö½Ó¿Ú¾Í·ÅÔÚͬһ¸öcollectionsÎļþ¼Ð£»

µÚÒ»¸öµÇ¼½Ó¿Ú£¬ÉèÖÃtests--»·¾³±äÁ¿ÉèÖÃÏìÓ¦µÄtokenÖµ£¬

µÚ¶þ¸ö¹ºÂò½Ó¿Ú£¬´«²Î{{token}}ÒýÓû·¾³±äÁ¿£¬½øÐйºÂò²Ù×÷¡£

ÉÏͼÓÒ²àÏÔʾtestsÑéÖ¤µÄ½á¹û£¬Ö»ÊÇÑé֤ͨ¹ýµÄtests£¬ÏëÒªÖªµÀÑéÖ¤¶ÏÑÔÊÇ·ñÕýÈ·£¬Ö»ÄÜ¿´ºǫ́ÈÕÖ¾£»

8¡¢Èç´Ë±ãÍê³ÉÁËÁ½¸ö½Ó¿ÚµÄ¹ØÁª¶¯×÷£¬²»ÐèÒªÏÈÔËÐÐÒ»¸öµÇ¼½Ó¿Ú£¬»ñÈ¡tokenÁîÅÆ£¬È»ºóÌí¼Ó¹ºÂò½Ó¿ÚÊäÈëtoken£»

tips£ºdelayµÄµ¥Î»ÊǺÁÃë¡£

9¡¢ºóÐøpostmanÇ¿´óµÄ¹¦ÄÜ£¬¿ÉÒÔÍê³Éapi×Ô¶¯»¯½Ó¿Ú²âÊÔ¡£

// ÅжÏÊÇ·ñ´æÔÚ 'user_id' Öµtests["Body contains user_id"] = responseBody.has("user_id");if(tests["Body contains user_id"]){ // ½«·µ»ØÐÅÏ¢½âÎö³É¶ÔÏó var responseData = JSON.parse(responseBody); tests["value_user_id"]=responseData.token.user_id // ÉèÖÃÈ«¾Ö±äÁ¿ postman.setGlobalVariable("user_id",tests["value_user_id"]);}else{ // globals["test_user_id"] ÊÇÎÒÔÚ `Pre-request Script` ÖÐÔ¤¶¨ÒåºÃµÄÒ»¸ö³£Á¿Öµ postman.setGlobalVariable("user_id",globals["test_user_id"]);}

10¡¢linuxϵͳ°²×°postmanÃüÁîÐÐÔËÐй¤¾ßnewman£¬.ÃüÁîÐÐÔËÐнӿڼ¯ºÏ£ºÊ×ÏÈÏÂÔØ¸Õ²Å´´½¨µÄ¼¯ºÏ£¬µã»÷export,²¢±£´æµ½Ö¸¶¨Â·¾¶£»

11¡¢ÔÙÀ´ÆÕ¼°Ò»¸öpostmanµÄpre-request script¹¦ÄÜÀ´´´½¨»·¾³±äÁ¿ÓëÈ«¾Ö±äÁ¿£»

ÈçÏÂͼ£¬ÔÚtests¿ÉÒÔ¼ì²â±äÁ¿µÄÖµÊÇ·ñ±»ÒýÓÃÁË£»×Ö·û´®ÓÃË«ÒýºÅ£º

µã»÷postmanÓÒÉϽǵÄÑÛ¾¦£¬¿ÉÒÔ¿´µ½Ô¤ÉèÇëÇóµÄ½Å±¾ÒѾ­°ÑÈ«¾Ö±äÁ¿ºÍ»·¾³±äÁ¿Ð´½øÈëÁË£»

12¡¢apiÇëÇó¶à¸ö£¬ÐèÒª¹ØÁªÉÏÒ»¸öapiÇëÇóÏìÓ¦·µ»ØµÄÖµ£¬ÔÚÇëÇ󷢯ðºóÉèÖû·¾³±äÁ¿£¬ºÍÔÚ·¢ÆðǰÉèÖû·¾³±äÁ¿ÓõÄͬһ¸ö·½·¨£º

postman.setEnvironmentVariable("key", "value");postman.setGlobalVariable("key", "value");ǰÕßÊÇ»·¾³±äÁ¿£¬ºóÕßÊÇÈ«¾Ö±äÁ¿£¬¶¼ÊÇ¿ÉÒÔÔÚÇëÇóǰºóÉèÖÃΪapi±äÁ¿

Ëæ»úÊý

PostMan ³ýÁËÌṩ»·¾³±äÁ¿ºÍÈ«¾Ö±äÁ¿Í⣬»¹ÌṩÁËÈýÖÖËæ»úÊý¡£

{{$guid}}

£ºÌí¼ÓÒ»¸öV4·ç¸ñGUID

{{$timestamp}}

£º½«µ±Ç°µÄʱ¼ä´Á£¬¾«È·µ½Ãë

{{$randomInt}}

£ºÌí¼Ó0ºÍ1000Ö®¼äµÄËæ»úÕûÊý

ÄÚÖýű¾ËµÃ÷£º

1. Çå³ýÒ»¸öÈ«¾Ö±äÁ¿ Clear a global variable

¶ÔÓ¦½Å±¾£º postman.clearGlobalVariable("variable_key");

²ÎÊý£ºÐèÒªÇå³ýµÄ±äÁ¿µÄkey

2.Çå³ýÒ»¸ö»·¾³±äÁ¿ Clear an environment variable

¶ÔÓ¦½Å±¾£º postman.clearEnvironmentVariable("variable_key");

²ÎÊý£ºÐèÒªÇå³ýµÄ»·¾³±äÁ¿µÄkey

3.response°üº¬ÄÚÈÝ Response body:Contains string

¶ÔÓ¦½Å±¾£º tests["Body matches string"] =responseBody.has("string_you_want_to_search");

²ÎÊý£ºÔ¤ÆÚÄÚÈÝ

4.½«xml¸ñʽµÄresponseת»»³Éson¸ñʽ Response body:Convert XML body to a JSON Object

¶ÔÓ¦½Å±¾£º var jsonObject = xml2Json(responseBody);

²ÎÊý£º£¨Ä¬Èϲ»ÐèÒªÉèÖòÎÊý,Ϊ½Ó¿ÚµÄresponse£©ÐèҪת»»µÄxml

5.responseµÈÓÚÔ¤ÆÚÄÚÈÝ Response body:Is equal to a string

¶ÔÓ¦½Å±¾£º tests["Body is correct"] = responseBody === "response_body_string";

²ÎÊý£ºÔ¤ÆÚresponse

6.json½âÎökeyµÄÖµ½øÐÐУÑé Response body:JSON value check

¶ÔÓ¦½Å±¾£º tests["Args key contains argument passed as url parameter"] = 'test' in responseJSON.args

²ÎÊý£ºtestÌæ»»±»²âµÄÖµ£¬argsÌæ»»±»²âµÄkey

7.¼ì²éresponseµÄheaderÐÅÏ¢ÊÇ·ñÓб»²â×Ö¶Î Response headers:Content-Type header check

¶ÔÓ¦½Å±¾£º tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");

²ÎÊý£ºÔ¤ÆÚheader

8.ÏìӦʱ¼äÅÐ¶Ï Response time is less than 200ms

¶ÔÓ¦½Å±¾£º tests["Response time is less than 200ms"] = responseTime < 200;

²ÎÊý£ºÏìӦʱ¼ä

9.ÉèÖÃÈ«¾Ö±äÁ¿ Set an global variable

¶ÔÓ¦½Å±¾£º postman.setGlobalVariable("variable_key", "variable_value");

²ÎÊý£ºÈ«¾Ö±äÁ¿µÄ¼üÖµ

10.ÉèÖû·¾³±äÁ¿ Set an environment variable

¶ÔÓ¦½Å±¾£º postman.setEnvironmentVariable("variable_key", "variable_value");

²ÎÊý£º»·¾³±äÁ¿µÄ¼üÖµ

11.ÅжÏ״̬Âë Status code:Code is 200

¶ÔÓ¦½Å±¾£º tests["Status code is 200"] = responseCode.code != 400;

²ÎÊý£º×´Ì¬Âë

12.¼ì²écode name ÊÇ·ñ°üº¬ÄÚÈÝ Status code:Code name has string

¶ÔÓ¦½Å±¾£º tests["Status code name has string"] = responseCode.name.has("Created");

²ÎÊý£ºÔ¤ÆÚcode name°üº¬×Ö·û´®

13.³É¹¦µÄpostÇëÇó Status code:Successful POST request

¶ÔÓ¦½Å±¾£º tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;

14.΢СÑéÖ¤Æ÷ Use Tiny Validator for JSON data

¶ÔÓ¦½Å±¾£ºvar schema = { "items": { "type": "boolean" } };

var data1 = [true, false];

var data2 = [true, 123];

console.log(tv4.error);

tests["Valid Data1"] = tv4.validate(data1, schema);

tests["Valid Data2"] = tv4.validate(data2, schema);

²ÎÊý£º¿ÉÒÔÐÞ¸ÄitemsÀïÃæµÄ¼üÖµ¶ÔÀ´¶ÔÓ¦ÑéÖ¤jsonµÄ²ÎÊý

 
   
2183 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

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

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

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
´óÊý¾Ýƽ̨²âÊÔ
΢·þÎñ¼Ü¹¹ÏµIJâÊÔÖ®µÀ
´ÓÁã¿ªÊ¼ÕÆÎÕ΢·þÎñÈí¼þ²âÊÔ
ÈçºÎ½øÐвâÊÔÐèÇó·ÖÎö£º´Ó½ÓÊÕÐèÇóµ½ÓÃÀýÉè¼Æ
python_selenium×Ô¶¯»¯²âÊÔ¿ò¼Ü
×îпγÌ
²âÊÔÐèÇó·ÖÎöÓë²âÊÔÓÃÀýÉè¼Æ
ÐÔÄܲâÊÔ·½·¨Óë¼¼Êõ
×Ô¶¯»¯²âÊÔ¿ò¼ÜÉè¼Æ¸ß¼¶Êµ¼ù
½Ó¿Ú×Ô¶¯»¯²âÊÔ·½·¨Ó빤¾ß
Èí¼þ²âÊÔ·½·¨Óëʵ¼ù(¹á´©°¸Àý)
³É¹¦°¸Àý
ij֧¸¶ÆóÒµ µ¥Ôª²âÊÔÓëÖØ¹¹Åàѵ
±±¾© Óû§ÌåÑé¡¢¿ÉÓÃÐÔ²âÊÔÓëÆÀ¹À
ij¾ü¹¤Ñо¿µ¥Î» ×Ô¶¯»¯²âÊÔ·½·¨¡¢°¸ÀýÓ빤¾ß
ÖªÃûÏû·Ñ½ðÈÚ¹«Ë¾ ̽Ë÷ÐÔ²âÊÔÓë²âÊÔ·ÖÎö
±±¾© º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Èí¼þ²âÊԼܹ¹Ê¦