±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½²½âÁË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"); |
|