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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
PostMan½Ó¿Ú²âÊÔ(ºÜÈ«ÃæµÄ½Ó¿Ú²âÊԽ̳Ì)
 
×÷ÕßêdzƣºÇ§ÀïºÍËûµÄÈí¼þ²âÊÔ
  5667  次浏览      27
 2021-1-12 
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½²½âÁËPostman»ù´¡Ô­Àí¡¢¹¤¾ßÓ¦Óà µÈÏà¹ØÄÚÈÝ¡£
±¾ÎÄÀ´×ÔÓÚ²©¿ÍÔ°£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

Ò»£ºÀíÂÛ²¿·Ö

1. ǰÑÔ

ÔÚǰºó¶Ë·ÖÀ뿪·¢Ê±£¬ºó¶Ë¹¤×÷ÈËÔ±Íê³Éϵͳ½Ó¿Ú¿ª·¢ºó£¬ÐèÒªÓëǰ¶ËÈËÔ±¶Ô½Ó£¬²âÊÔµ÷ÊÔ½Ó¿Ú£¬ÑéÖ¤½Ó¿ÚµÄÕýÈ·ÐÔ¿ÉÓÃÐÔ¡£¶øÕâÒªÇóǰ¶Ë¿ª·¢½ø¶ÈºÍºó¶Ë½ø¶È±£³Ö»ù±¾Ò»Ö£¬ÈκÎÒ»·½µÄ½ø¶È¸ú²»ÉÏ£¬¶¼ÎÞ·¨¼°Ê±Íê³É¹¦ÄÜÄ£¿éµÄ²âÊÔ¡£

×öΪºó¶Ë¿ª·¢ÈËÔ±£¬ÒªÇó¶ÀÁ¢¿ª·¢Íê³Éij¸ö½Ó¿Úºó£¬¿ª·¢ÈËÔ±×Ô¼ºÐèÒªÏȲâÊÔͨ¹ýºóÔÙÌá½»¸ø²âÊÔÈËÔ±½øÐвâÊÔ£¬·ñÔò»á³öÏÖµ½²âÊÔÈËÔ±ÄÄÀïÒµÎñÁ÷³Ì¸ù±¾¾Í×ß²»Í¨£¬»òÕßBUG»á¹ý¶àµÄÇé¿öµÈ¡£

Êг¡ÉÏÓкܶàÓÅÐãµÄ£¬ÍêÉÆµÄ½Ó¿Ú²âÊÔ¹¤¾ß£¬±ÈÈçSoapUI£¬Postman£¬JMeter¡¢yapiµÈ£¬Äܹ»¸ßЧµÄ°ïÖúºó¶Ë¿ª·¢ÈËÔ±¶ÀÁ¢½øÐнӿڲâÊÔ¡£ÕâÀïʹÓÃPostman½Ó¿Ú²âÊÔ¹¤¾ß£¬·Ö±ð½éÉÜÈçºÎ¶ÔGETÇëÇóºÍPOSTÇëÇó½øÐнӿڲâÊÔ¡£

2. Postman¼ò½é

PostmanÊÇÒ»¸ö½Ó¿Ú²âÊÔ¹¤¾ß£¬ÔÚ×ö½Ó¿Ú²âÊÔµÄʱºò£¬PostmanÏ൱ÓÚÒ»¸ö¿Í»§¶Ë£¬Ëü¿ÉÒÔÄ£ÄâÓû§·¢ÆðµÄ¸÷ÀàHTTPÇëÇ󣬽«ÇëÇóÊý¾Ý·¢ËÍÖÁ·þÎñ¶Ë£¬»ñÈ¡¶ÔÓ¦µÄÏìÓ¦½á¹û£¬

´Ó¶øÑéÖ¤ÏìÓ¦ÖеĽá¹ûÊý¾ÝÊÇ·ñºÍÔ¤ÆÚÖµÏàÆ¥Å䣻²¢È·±£¿ª·¢ÈËÔ±Äܹ»¼°Ê±´¦Àí½Ó¿ÚÖеÄbug£¬½ø¶ø±£Ö¤²úÆ·ÉÏÏßÖ®ºóµÄÎȶ¨ÐԺͰ²È«ÐÔ¡£

ËüÖ÷ÒªÊÇÓÃÀ´Ä£Äâ¸÷ÖÖHTTPÇëÇóµÄ(Èç:get/post/delete/put..µÈµÈ),PostmanÓëä¯ÀÀÆ÷µÄÇø±ðÔÚÓÚÓеÄä¯ÀÀÆ÷²»ÄÜÊä³öJson¸ñʽ£¬¶øPostman¸üÖ±¹Û½Ó¿Ú·µ»ØµÄ½á¹û¡£

3.Postman½çÃæÍ¼

¸÷¸ö¹¦ÄÜÇøµÄʹÓÃÈçÏ£º

l ¿ì½ÝÇø£º ¿ì½ÝÇøÌṩ³£ÓõIJÙ×÷Èë¿Ú£¬°üÀ¨ÔËÐÐÊղؼеÄÒ»×é²âÊÔÊý¾Ý£¬µ¼Èë±ðÈ˹²ÏíµÄÊղؼвâÊÔÊý¾Ý£¨Import from file, Import from folder, Import from linkµÈ£©£¬»òн¨ÇëÇó¡¢ÊղؼС¢»·¾³±äÁ¿µÈ¡£

l ²à±ßÀ¸£º °üÀ¨ËÑË÷À¸£¬ Request ÇëÇóµÄÀúÊ·¼Ç¼ºÍÊղؼйÜÀí¡£

l ¹¦ÄÜÇø£º Request ÇëÇóÉèÖ㬲鿴 Response ÏìÓ¦½á¹ûºÍ²âÊÔ½á¹û£¬¿ÉÒÔ½«ÇëÇó±£´æµ½ÊղؼС£

l ÉèÖÃÇø£ºÉèÖú͹ÜÀí»·¾³±äÁ¿ºÍÈ«¾Ö±äÁ¿¡£

¶þ£º¹¤¾ßÓ¦ÓÃ

1. н¨½Ó¿Ú

1.1 ´´½¨Collection¼¯ºÏ

ÔÚ¸Õ¿ªÊ¼Ò»¸öÏîĿʱ£¬ÎªÁ˺óÐø±ãÓÚ×éÖ¯ºÍ¹ÜÀí£¬°ÑͬÊô¸ÃÏîÄ¿µÄ¶à¸ö API£¬·ÅÔÚÒ»×éÀï¡£ËùÒÔÒªÏÈȥн¨Ò»¸ö Collection: New -> Collection

1.2 ´´½¨ÇëÇó

1.3 ÉèÖÃHTTPÇëÇó

ÉèÖà HTTP µÄ Method ·½·¨ºÍÊäÈë api µÄµØÖ·ÒÔ¼°ÇëÇó²ÎÊý»òÇëÇóÌå

ÒÔÏÂΪ»ñȡ΢ÐŹ«ÖÚºÅΪ°¸ÀýËùÉè¼ÆµÄHTTPÇëÇó

GETÊÇÇëÇó·½·¨£¬ÇëÇó·½·¨ÊÇHTTPÇëÇóµÄ±ØÒªÒªËØ£¬³£¼ûµÄÇëÇó·½·¨ÓÐGETºÍPOSTÁ½ÖÖ¡£APIµØÖ·Ò»°ãΪURLµØÖ·¡£Èç¹ûÊÇÇëÇóURLÖеÄÈë²Î£¬»áÔÚParamsÁгö²ÎÊýÃû³Æ¼°²ÎÊýȡֵ£¬·½±ãÎÒÃÇÇáËɵÄÐ޸ĸ÷Èë²ÎµÄÖµ¡£ÈçÓÐÐèÒª£¬»¹Ó¦¸ÃÉèÖÃHTTPÇëÇóHeaders²¿·Ö¡£

Èç¹ûÊÇPOSTÇëÇó£¬ÐèÒª½«ÇëÇó·½·¨ÉèÖÃΪPOST£¬Ò»°ã˵À´POSTÇëÇóÊÇÓÐÇëÇóÌåµÄ£¬¹ÌÐèÒªÔÚBody²¿·ÖÖбàдÕýÈ·µÄÇëÇóbodyÄÚÈݺÍContent-TypeµÄÖµ£¨ÔÚHeadersÖнøÐÐÉèÖã©

1.3.1 GETºÍPOSTµÄÇø±ð

l GET ʹÓÃURL »òCookie ´«²Î£¬¶øPOST½«Êý¾Ý·ÅÔÚBody ÖС£

l GETµÄURL ÔÚ³¤¶ÈÉÏ»áÓÐÏÞÖÆ£¬¶øPOSTûÓС£

l POST±ÈGETÏà¶Ô°²È«£¬ÒòΪÔÚµØÖ·À¸²»¿É¼û¡£

l Ò»°ãPOSTÇëÇóÓÃÀ´»ñÈ¡Êý¾Ý£¬POSTÇëÇóÓÃÀ´·¢ËÍÊý¾Ý¡£

¶ÔÓÚÉÏÃæµÄÇø±ð£¬ÆäʵµÚÒ»µãPOSTÒ²¿ÉÒÔ½«Êý¾Ý·ÅÔÚURLÀGETÇëÇóÆäʵҲûÓ㤶ÈÏÞÖÆ£¬POSTÇëÇó¿´ÆðÀ´ÊÇÒþʽµÄ£¬µ«ÊÇ¿ÉÒÔͨ¹ý×¥°üÄõ½²ÎÊý¡£

1.4 ·¢ËÍHTTPÇëÇó

µã»÷ÉÏͼÖÐÀ¶É«Sendͼ±ê¼´¿É·¢ËÍÇëÇó£¬ÑéÖ¤ÇëÇó½á¹ûÊÇ·ñÕýÈ·¡£ÏÂͼÊǶÔÓ¦µÄÏìÓ¦½á¹û£¬°üº¬BodyºÍHeadersÁ½¸ö²¿·Ö£¬Body¼´ÏìÓ¦ÌåÕýÎÄ£¬Headers¼´ÎªÏìӦͷÐÅÏ¢£¬ÏìӦͷ²»°üº¬ÏìӦ״̬ÂëºÍ״̬ÐÅÏ¢²¿·Ö¡£

ÏìÓ¦Ìå°üº¬ÈýÖֲ鿴ģʽ£¬·Ö±ðΪ£ºPrettyĬÈÏģʽ¡¢RawԭʼÊý¾Ý¸ñʽ£¬PreviewÔ¤ÀÀģʽ£¨´ËģʽÕë¶ÔHTMLÒ³ÃæÐ§¹ûºÜºÃ£©¡£

1.5 ¹ØÁª¼¼Êõ

¹Ø¼ü¼¼ÊõÊǽ«Ç°Ò»¸öÇëÇóµÄÏìÓ¦½á¹û±£´æµ½±äÁ¿ÖУ¬ÔÙ½«´Ë±äÁ¿ÔÚºóÐøÇëÇóÖнøÐÐÒýÓá£

1.5.1 ±£´æÇ°Ò»¸öÇëÇóµÄÏìÓ¦Êý¾Ý

ÒòΪTestsÄ£¿éÊǺóÖÃģʽ£¬¿É¶ÔÏìÓ¦½øÐд¦Àí¡£ÎÒÃÇ¿ÉÒÔͨ¹ý¸³Öµ·½Ê½°ÑÏìÓ¦½á¹û±£´æµ½±äÁ¿ÖУ¬²Î¿¼´úÂëÈçÏ£º

1.5.2 ¶ÔºóÒ»¸öÇëÇó½øÐвÎÊý»¯

ÒòÇ°Ãæ½«access_tokenµÄÖµ±£´æµ½ÁË»·¾³±äÁ¿ÖУ¬ËùÒÔÔÚ¸ÃÇëÇóÖУ¬Ö»ÐèÒª½øÐвÎÊýÒýÓü´¿É¡£

1.5.3 ¹ØÁªµÄ¸ß¼¶²Ù×÷

ÀûÓÃSend a requestʵÏÖǰÖò½Ö裬ÀýÈ磺¿Í·þ·¢ÏûϢģ¿é£¬Ç°Öò½ÖèÊÇ»ñÈ¡access_token£¬ÎÒÃÇ¿ÉÔÚPre-request ScriptǰÖò½ÖèÖз¢ËÍÇëÇ󣬽«¸ÃÇëÇóµÄ½á¹û±£´æµ½»·¾³±äÁ¿accesstokenÖУ¬È»ºóÔÚÖ÷ÇëÇóÖÐÒýÓøû·¾³±äÁ¿¼´¿É¡£

1.5.4 ¸½£ºÇ°Öò½ÖèÖз¢ËÍPOSTÇëÇó

POSTÇëÇóÏà±ÈGETÇëÇóÒª¸´ÔÓÒ»µã£¬ÒòΪÆäÐèÒª¼ÓÈëÇëÇóHeaderºÍÇëÇóBody£¬ÒÔÏÂÊÇPre-request ScriptÔÚ·¢ËÍPOSTÇëÇóµÄ°¸Àý£º

¹¹ÔìÒ»¸öµÇ¼ÇëÇó

const loginRequest = {
url: 'http://115.28.108.130: 5000/api/user/login/',
method: "POST",
body: {
mode: 'urlencoded', // ģʽΪ±íµ¥url±àÂëģʽ
urlencoded: 'name=ÕÅÈý &password=123456'
}
};

·¢ËÍÇëÇó

pm.sendRequest (loginRequest, function (err, res) {
console.log(err ? err : res.text());
});

·¢ËÍJSON¸ñʽÇëÇóÓë·¢ËÍPOSTÇëÇóÀàËÆ£¬ÒÔϲÉÓÃÁËrawģʽ·¢ËÍÇëÇóÌå¡£

¹¹ÔìÒ»¸ö×¢²áÇëÇó

const regRequest = {
url: 'http://115.28.108.130: 5000/api/user/reg/',
method: 'POST',
header: 'Content-Type: application/json', //×¢ÒâÒªÔÚHeaderÖÐÉùÃ÷ÄÚÈÝʹÓõÄÀàÐÍ
body: {
mode: 'raw', // ʹÓÃraw(ԭʼ)¸ñʽ
raw: JSON.stringify ({ name: 'СС', password: '123456' }) //Òª½«JSON¶ÔÏóתΪÎı¾·¢ËÍ
}
};

·¢ËÍÇëÇó

pm.sendRequest (regRequest, function (err, res) {
console.log (err ? err : res.json()); // ÏìӦΪJSON¸ñʽ¿ÉÒÔʹÓÃres.json()»ñÈ¡µ½JSON¶ÔÏó
});

ÒòΪHTTPÇëÇó¶¼Ö§³Öraw¸ñʽ£¬ÎÒÃÇÖ»ÒªÄܹ»»ñÈ¡ÇëÇóµÄraw¸ñʽ£¬±ã¿É²ÉÓÃrawģʽ·¢ËÍÈÎÒâÀàÐ͵ÄÇëÇóÌåÁË¡£

2.½Ó¿ÚÊý¾ÝÓÃÀý

2.1 Êý¾ÝÓÃÀýÉè¼Æ

PostmanÖ§³ÖµÄÊÇcsvÎļþ×÷ΪÊý¾ÝÓÃÀý£¬Êý¾ÝÓÃÀý°üº¬Èý´ó²¿·Ö£¬·Ö±ðΪ£ºÓÃÀý±êÌ⣨title£©£¬Èë²Î£¨grant_type£¬appid£¬secret£©£¬ÆÚÍû½á¹û£¨expected£©

ÎÒÃÇ¿ÉÒÔ¸ù¾ÝºÚºÐÓÃÀýÉè¼Æ·½·¨ÈçµÈ¼ÛÀà¡¢±ß½çÖµ¡¢Åж¨±í¡¢Õý½»ÊµÑé·¨¶ÔÈë²Î½øÐÐÓÃÀýÉè¼Æ£¬µÃµ½¸÷ÖÖ²»Í¬µÄ²âÊÔ³¡¾°£¨È¡Öµ×éºÏ£©

2.2 Êý¾ÝÓÃÀý²ÎÊý»¯

Ç°ÃæÎÒÃÇÔÚcsvÎļþÖбàдºÃÁËÊý¾ÝÓÃÀý£¬ÇÒ±£Ö¤µÚÒ»ÐÐΪ²ÎÊýµÄÃû³Æ¡£½«ÇëÇóÖÐÈë²ÎÖµÒÀ´Î½øÐÐÌæ»»£¬ÔÚPostmanÖвÎÊýµÄ±àд¹æ¸ñΪÁ½¸ö»¨À¨ºÅ£¬È磺{{appid}}

2.3 ÉèÖõü´úÆ÷

Òª¶ÁÈ¡ËùÓеIJâÊÔÓÃÀý£¬ÐèÒªÉèÖõü´úÆ÷ÈÃÆäÑ­»·¶ÁÈ¡ÄÇЩ²âÊÔÊý¾Ý¡£PostmanÖÐÉèÖõü´úÆ÷ÐèÔÚRunÖÐÍê³É£¬Çë¿´¡¾4.RunnerÖ´ÐвâÊÔ¡¿

3.½á¹û¼ì²é£¨¶ÏÑÔ£©

PostmanµÄ¶ÏÑÔ¹¦ÄÜÔÚTestÄ£¿éÖУ¬±ÈÈçÒª²âÊÔ·µ»Ø½á¹ûÊÇ·ñº¬ÓÐijһ×Ö·û´®£¬¾ÍÐèÒªÔÚTestÖбàдÏàÓ¦µÄ´úÂ룬TestÖеĴúÂëʹÓõÄÊÇJavaScriptÓï·¨¡£

3.1 Postman×Ô´øTestsº¯Êý

PostmanÌṩÁ˲ο¼´úÂ빩ÎÒÃÇÑ¡Ôñ¼´¿É£¬Ö÷Òª¶ÏÑÔ´úÂëÓÐÈçϼ¸ÖÖ£º

# ¶ÏÑÔ״̬ÂëÊÇ·ñΪ200£¬ÔÚ¶ÏÑÔÖдËÖÖ¶ÏÑÔ¼ÛÖµ²»¸ß

pm.test ("Status code is 200", function () {
pm.response.to.have.status(200);
});

# ¶ÏÑÔÏìÓ¦Îı¾ÖÐÊÇ·ñ°üº¬Ä³¸öÊý¾Ý´®£¬³£ÓÃ

pm.test ("Body matches string", function () {
pm.expect (pm.response.text()).to.include ("string_you_want_to_search");
});

# ʹÓÃJsonPath¶ÏÑÔ

pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});

# ¼ì²éÏìÓ¦ÕýÎÄÖÐÊÇ·ñ°üº¬Ä³¸ö×Ó´®

pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});

# ÏìÓ¦ÐÅÏ¢°üº¬ÁбíÖÐÆäÖÐijһ¸ö

pm.test("Successful POST request", function () {
pm.expect(pm.response.code).to.be.oneOf([201,202]);
});

# ½«xmlÏìӦתΪjson

var jsonObject = xml2Json(responseBody);

3.2 ÊÖ¹¤testsº¯Êý

Ò²¿ÉÒÔʹÓöÏÑÔ²¢¸³ÖµµÄÐÎʽ£¬Ïà¶Ô¶øÑÔ£¬ÒÔÏ·½Ê½»á¸üΪ¼ò½àʵÓá£

³£¼ûµÄ¶ÏÑÔ´úÂëÓУº

# ¼ì²éresponseµÄbodyÖÐÊÇ·ñ°üº¬×Ö·û´®

tests["Body matches string"] = responseBody.has("string_you_want_to_search");

# ¼ì²éJSON½ÚµãµÄÖµºÍ½ÚµãÔªËØµÄ¸öÊýΪ5

var data = JSON.parse(responseBody).city; //°ÑJSON×Ö·û´®×ª»¯Îª¶ÔÏó
tests["Your test name"] = data.value===100;
tests["program's lenght"] = data.programs.length===5;

# ÑéÖ¤Response timeÊÇ·ñСÓÚij¸öÖµ

tests["Response time is less than 200ms"] = responseTime < 200;

3.3 tests¸ß¼¶²Ù×÷

ÎÒÃÇ¿ÉÒÔÒýÓÃÊý¾ÝÓÃÀýcsvÎĵµÖеÄÔ¤ÆÚ½á¹û½øÐжÏÑÔ¡£

var jsonData = JSON.parse(responseBody) ;
# data.expected ΪcsvÊý¾ÝÎļþÖеÄÔ¤ÆÚ½á
tests["²âÊÔ½á¹ûͨ¹ý"] = jsonData.expires_in===data.expected ;

ÔÚtests»¹¿ÉÒÔʹÓÃÅжÏÓï¾ä½øÐжÏÑÔ£¬ÈçÏ£º

ÔÚPostmanÖжÏÑԵIJÙ×÷·Ç³£Áé»î£¬ÐèҪͬѧÃÇ¶à½øÐÐÁ·Ï°¡£

pm.test ("Ô¤ÆÚ½á¹û°üº¬£º³¤É³£¬Êµ¼Ê½á¹ûΪ£º"+result, function () {
if (JSON.parse(responseBody).city==="³¤É³"){
pm.expect (pm.response.text()).to.include("ǧÀï");
pm.expect (pm.response.text()).to.include("³¤É³");
}else if (JSON.parse(responseBody).city==="Changsha"){
pm.expect (pm.response.text()).to.include("ǧÀï");
pm.expect (pm.response.text()).to.include("Changsha");
}else if (JSON.parse(responseBody).city==="éLɳ"){
pm.expect (pm.response.text()).to.include("ǧÀï");
pm.expect (pm.response.text()).to.include("éLɳ");
}
});

4.RunnerÖ´ÐвâÊÔ

4.1 ÉèÖõü´úÆ÷

4.2 ²é¿´ÔËÐнá¹û

Èý£ºÆäËûÊÂÏî

1.±£´æ½Ó¿ÚÅäÖÃ

´ýÕû¸ö½Ó¿Ú¶¼µ÷ÊÔÍê±Ïºó£¬¼ÇµÃµã»÷ Save È¥±£´æ½Ó¿ÚÐÅÏ¢£º

È¥±£´æµ±Ç° API ½Ó¿Ú£¬È»ºóÐèÒªÌîдÏà¹ØµÄ½Ó¿ÚÐÅÏ¢£º

l Request Name: ÇëÇóµÄÃû×Ö

ÎÒÒ»°ãϰ¹ßÓñ£´æÎª ½Ó¿ÚµÄ×îºóµÄ×Ö¶ÎÃû£¬±ÈÈç

l Request Description: ½Ó¿ÚµÄÃèÊö

×îºÃдÉϸýӿڵÄҪʵÏֵĻù±¾¹¦ÄܺÍÏà¹Ø×¢ÒâÊÂÏî

Ö§³Ö Markdown Óï·¨

Select a collection or folder to save: Ñ¡ÔñÒª±£´æµ½Äĸö·Ö×飨»òÎļþ¼Ð£©

ÍùÍù±£´æµ½Ä³¸ö API ½Ó¿Úµ½ËùÊôµÄ¸ÃÏîÄ¿ÃûµÄ·Ö×é

2. PostmanµÄ²ÎÊý

2.1 ×Ô¶¯½âÎö¶à¸ö²ÎÊýParam

±ÈÈ磬¶ÔÓÚÒ»¸ö GET µÄÇëÇóµÄ url ÊÇ£º

https://api.weixin.qq.com/cgi-bin/token?grant_type =client_credential&appid =wx508a5cacbbfc1141&secret =fa4fc7f17ddead12d7cdcd994e7d2543

¶ÔÓ¦×ÅÆäʵÊÇ?key=valueÐÎʽÖаüº¬¶à¸ö Http µÄ GET µÄ query string=query parameters

Postman ¿ÉÒÔ×Ô¶¯°ïÎÒÃǽâÎö³ö¶ÔÓ¦²ÎÊý£º

2.2 ÁÙʱ½ûÓòÎÊý

ÔÚ²»É¾³ýij²ÎÊýµÄÇé¿öÏ£¬Èç¹ûÏëÒªÔÝʱ²»´«²ÎÊý£¬¿ÉÒÔ·½±ãµÄͨ¹ý²»¹´Ñ¡µÄ·½Ê½È¥ÊµÏÖ

2.3 ÅúÁ¿±à¼­¶à¸ö²ÎÊý

Èç¹ûÏëÒªÅúÁ¿µÄ±à¼­²ÎÊý£¬¿ÉÒÔµã»÷ÓÒÉϽǵÄBulk Edit£¬È¥ÊµÏÖÅúÁ¿±à¼­¡£

3. Postman·¢ËÍPOSTÇëÇóÏê½²

POST ÇëÇó²»ÄÜÏñGETÒ»ÑùÖ±½ÓÔÚä¯ÀÀÆ÷ÊäÈë¾Í¿ÉÒÔÇëÇó£¬ÐèÒª½èÖú¹¤¾ßÀ´Íê³É¡£

3.1.1 ·¢ËÍkey-value µÄÇëÇó£º

ÒÔlogin ½Ó¿ÚΪÀý£¬ÔÚBody ÖÐѡȡ"form-data" ¸ñʽ£¬ÊäÈëËùÐèµÄkey-value, ѡȡ¶ÔÓ¦µÄ»·¾³±äÁ¿¡£

3.1.2 ·¢ËÍjson¸ñʽµÄÇëÇó£º

ÒÔadd user ½Ó¿ÚΪÀý£¬ÔÚBody ÖÐѡȡ"raw" ¸ñʽ£¬¸ù¾Ý½Ó¿ÚÎĵµÊäÈëjson Êý¾Ý£¬ ÓÐÐèÒªÓ¦Óû·¾³±äÁ¿µÄѡȡ»·¾³±äÁ¿¡£

3.1.3 ·¢ËÍÎļþµÄÇëÇó

ÒÔfile upload ½Ó¿ÚΪÀý£¬ÔÚBody ÖÐѡȡ"form-data" ¸ñʽ£¬ÔÚkey ÀïÊäÈë"file"£¬ÔÚÓұߵÄÏÂÀ­ÀïѡȡÀàÐÍΪ"File"£¬µã»÷"Choose Files" ¾Í¿ÉÒÔÉÏ´«±¾µØÎļþÁË¡£

4. »·¾³±äÁ¿ÉèÖÃ

4.1 ÉèÖû·¾³±äÁ¿µÄÒâÒå

ÔÚ²âÊÔ API ÆÚ¼ä£¬ÍùÍù´æÔÚ¶àÖÖ»·¾³£¬¶ÔÓ¦ IP µØÖ·£¨»òÓòÃûÒ²²»Í¬£©¡£±ÈÈ磺

Dev£ºhttp://192.168.1.21/oa/index.jsp

l ÓÃÓÚ¿ª·¢ÆÚ¼äµÄÏßÉ쵀 Development µÄ²âÊÔ»·¾³

LocalTest£ºhttp://192.168.1.42/oa/index.jsp

l ÓÃÓÚ¿ª·¢ÆÚ¼äÅäºÏºǫ́¿ª·¢ÈËÔ±µÄ±¾µØ¾ÖÓòÍøÄڵı¾µØ»·¾³£¬ÓÃÓÚÁªºÏµ÷ÊÔ API ½Ó¿Ú

Product£ºhttp://www.example.com/oa/index.jsp

l ÓÃÓÚ¿ª·¢Íê³É·¢²¼µ½Éú²ú»·¾³

ÔÚ²âÊÔAPIÆÚ¼ä£¬ÍùÍùÐèÒªÐÞ¸ÄAPIµØÖ·£¬ÕâÑùЧÂÊ»á±È½ÏµÍÇÒ¸ü»»ºóµÄµØÖ·Ã»·¨±£´æ¡£

4.2 »·¾³±äÁ¿ÉèÖÃ

ÔÚPostmanµÄÉèÖÃÇøÓÐEnvironment ºÍ Global Variable£¬ÓÃÓÚ½â¾öÕâ¸öÎÊÌ⣬ʵÏÖ²»Í¬»·¾³µÄ¹ÜÀí£º

ºÜÃ÷ÏÔ£¬¾Í¿ÉÒÔÓÃÀ´ÊµÏÖ²»ÓÃÊÖ¶¯ÐÞ¸Ä url ÖеķþÎñÆ÷µØÖ·£¬´Ó¶ø¶¯Ì¬µÄʵÏÖ£¬Ö§³Ö²»Í¬·þÎñÆ÷»·¾³:

l Production Éú²ú»·¾³

l Development ¿ª·¢»·¾³

l Local ±¾µØ¾ÖÓòÍø»·¾³

»·¾³±äÁ¿¿ÉÒÔʹÓÃÔÚÒÔϵط½£º

l URL

l URL params

l Header values

l form-data/url-encoded values

l Raw body content

×¢Ò⣺ÔÚÄãҪʹÓõıäÁ¿ÃûÉϸ½ÉÏË«»¨À¨ºÅ£¬Ò»¸öÇëÇóÖ»ÄÜÓ¦ÓÃÒ»¸ö»·¾³±äÁ¿¡£

4.3 ʹÓôúÂëÉèÖû·¾³±äÁ¿

ÎÒÃÇ¿ÉÒÔÔÚPre-request ScriptºÍTestÄ£¿éÖнøÐл·¾³±äÁ¿ÉèÖá£

--1.ÉèÖû·¾³±äÁ¿

postman.setEnvironmentVariable("key", "value");

--2.»ñÈ¡»·¾³±äÁ¿

pm.environment.get("variable_key");

4.4 È«¾Ö±äÁ¿

È«¾Ö±äÁ¿£¨Global Variable£©¹ËÃû˼ÒåÊÇÕë¶ÔÓÚËùÓнű¾ºÍËùÓл·¾³½«ÉúЧµÄ±äÁ¿£¬ËüµÄ×÷ÓÃÓò´óÓÚ»·¾³±äÁ¿¡£ÉèÖÃÈ«¾Ö±äÁ¿µÄ·½·¨Óë»·¾³±äÁ¿ÏàËÆ£º

--1.ÉèÖÃÈ«¾Ö±äÁ¿

pm.globals.set("variable_key", "variable_value");

--2.»ñȡȫ¾Ö±äÁ¿

pm.globals.get("variable_key");

 
   
5667 ´Îä¯ÀÀ       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¾ü¹¤Ñо¿µ¥Î» ×Ô¶¯»¯²âÊÔ·½·¨¡¢°¸ÀýÓ빤¾ß
ÖªÃûÏû·Ñ½ðÈÚ¹«Ë¾ ̽Ë÷ÐÔ²âÊÔÓë²âÊÔ·ÖÎö
±±¾© º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Èí¼þ²âÊԼܹ¹Ê¦