±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁ˽ӿڲâÊÔ¹¤¾ß 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µÄ²ÎÊý
|