postman 的常用功能

一伶椿、?? 安裝與更新

1、安裝的方式

方式1:chrome插件版本:chrome--->設(shè)置--->擴展程序;

方式2:native版本(具有更好的擴展性届腐,推薦使用):https://www.getpostman.com/

2适篙、Chrome app和native app的區(qū)別

1往核、Cookies(登錄):native版本可以直接操作cookie,而chrome版本需要安裝擴展嚷节;

2聂儒、Built-in proxy(代理):native版本自帶proxy,可以用來抓包硫痰;

3衩婚、Menu bar(菜單欄):chrome沒有帶菜單欄,而native自帶菜單欄效斑;

4非春、Restricted headers(受限headers):有一些headers在chrome app上是受限的,比如Origin and User-Agent缓屠;

5奇昙、Don‘t follow redirects option(不去跟隨重定向):native版本才有這個選項;

6敌完、Postman console:native版本自帶储耐;

3、native app更新

步驟:File--->Settings--->Update--->Minor fixes

二滨溉、?? 發(fā)送一個api請求

文檔:https://www.v2ex.com/p/7v9TEc53

api地址:https://www.v2ex.com/api/topics/hot.json

三什湘、?? 模擬HTTP Requests

1长赞、請求Request

URL

Method:根據(jù)方法的不同,body編輯器會變化闽撤;

Headers

body:form-data:①涧卵、網(wǎng)頁表單用來傳輸數(shù)據(jù)的默認格式,可以模擬填寫表單腹尖,并且提交表單柳恐;②、可以上傳一個文件作為key的value提交(如上傳文件)热幔,但該文件不會作為歷史保存乐设,只能在每次需要發(fā)送請求的時候,重新添加绎巨;

?????x-www-urlencodedl:①近尚、urlencode中的key-value會寫入URL,from-data模式的key-value不明顯寫入URL场勤,而是直接提交戈锻;②、這個編碼格式不能上傳文件和媳;

?????raw:可以包含任何東西格遭,所有填寫的text都會隨著請求發(fā)送json/字符串;

?????binary:也不能保存歷史留瞳,每次選擇文件拒迅,提交;

選擇參數(shù)方式后她倘,postman自動的幫我們設(shè)置Content-Type璧微;

Pre-request Script:請求發(fā)送前,可進行一些腳本設(shè)置硬梁,如前硫,設(shè)置或清除參數(shù)、變量荧止;

Tests:定義發(fā)送Request之后屹电,需要用腳本檢測的內(nèi)容,也就是Test case的內(nèi)容罩息;

2嗤详、響應(yīng)Response

Body:Pretty:①、格式化了JSON和XML瓷炮,方便查看葱色,點擊里面的URL,postman會創(chuàng)建一個request娘香;②苍狰、json办龄、HTML、XML淋昭、Text等俐填;

Raw:text;

preview:格式化了JSON和XML翔忽,方便查看英融;

?四、?? 權(quán)限Authorization

Basic Auth:填寫用戶名和密碼歇式,點擊Update Requests驶悟;

Digest Auth:要比Basic Auth復(fù)雜的多,使用當前填寫的值生成authorization header材失,所以在生成header之前要確保設(shè)置的正確性痕鳍,如果當前的header已經(jīng)存在,postman會移除之前的header龙巨;

OAuth 1.0a:讓你簽署支持OAuth1.0基于身份驗證的請求笼呆,OAuth不用獲取access token,你需要去API提供者獲取的旨别,OAuth1.0可以在header或者查詢參數(shù)中設(shè)置value诗赌;

OAuth2.0:支持獲得OAuth2.0 token并添加到request中;

五昼榛、?? 斷言Writing Test

設(shè)置全局變量境肾;

設(shè)置環(huán)境變量;

拿到并處理請求的響應(yīng)胆屿;

定義測試檢查點和斷言;

1偶宫、Clear a global variable:

①非迹、清除一個全局變量;

②纯趋、postman.clearGlobalVariable(“variable.key”);

2憎兽、Clear an environment variable:

①、清除一個環(huán)境變量吵冒;

②纯命、postman.clearGlobalEnvironmentVariable(“variable.key”);

3、Response body:Contains string:

①痹栖、response包含內(nèi)容亿汞;

②、tests[“Body matches string”]=responseBody.has(“string_you_want_to_search”)

4揪阿、Response body:Convert XML body to a JSON Object:

①疗我、將xml格式的response轉(zhuǎn)換成json格式咆畏;

②、var jsonObject = xml2Json(responseBody);

5吴裤、Response body:Is equal to a string:

①旧找、response等于預(yù)期內(nèi)容;

②麦牺、tests[*Body is corret*] = resposeBody === *response_body_string*;

6钮蛛、Response body:JSON value check:

①、json解析key的值進行校驗剖膳;

②魏颓、tests[*Args key contains argument passed as url parament*] = ‘test’ in responseJSON.args;

7、Response headers:Content-Type header check:

①潮秘、檢查response的header信息是否有被測字段琼开;

②、tests[*Content-Type is present*] = postman.getResponseHeader(“Content-Type”);

8枕荞、Response time is less than 200ms:

①柜候、響應(yīng)時間判斷;

②躏精、tests[*Response time is less than 200ms*] = responseTime < 200;

9渣刷、Set an global variable:

①、設(shè)置全局變量矗烛;

②辅柴、postman.setGlobalVariable(“variable_key”,”variable_value”);

10、Set an environment variable:

①瞭吃、設(shè)置環(huán)境變量碌嘀;

②、postman.setEnvironmentVariable(“variable_key”,”variable_value”);

11歪架、Status code:Code is 200:

①股冗、判斷狀態(tài)碼;

②和蚪、tests[“Status code is 200”] = responseCode.code !=400;

12止状、Status code:Code name has string:

①稚失、檢查code name是否包含內(nèi)容递礼;

②、tests[“Status code name has string”] = responseCode.name.has(“Created”);

13近范、Status code:Successful POST request:

①催束、成功的post請求集峦;

②、tests[“Successful POST request”] = 201 ||responseCode.code ===202;

14、Use Tiny Validator for JSON data:

var schema = {

? "items": {

??? "type": "boolean"

? }

};

var data1 = [true, false];

var data2 = [true, 123];

pm.test('Schema is valid', function() {

? pm.expect(tv4.validate(data1, schema)).to.be.true;

? pm.expect(tv4.validate(data2, schema)).to.be.true;

});

六少梁、?? 測試集合Collections

1洛口、數(shù)據(jù)驅(qū)動的接口自動化測試

2、命令行中運行

1凯沪、命令行中運行:可以在無UI界面的服務(wù)器上運行第焰;可以在ci持續(xù)集成系統(tǒng)上運行;

2妨马、運行準備:導(dǎo)出collection挺举;安裝nodejs和npm(國內(nèi)cnpm);安裝newman烘跺;

3湘纵、生成測試報告:CLI reporter;JSON reporter滤淳;HTML reporter梧喷;JUnit reporter;

七脖咐、?? 變量

?1铺敌、環(huán)境變量environment:比如可以將測試domain設(shè)置成環(huán)境變量;

2屁擅、全局變量Global variable:實現(xiàn)接口請求的參數(shù)依賴于其他接口的返回偿凭,比如可以將錯誤信息設(shè)置成全局變量;

3派歌、Local本地變量:一般可以在sandbox中定義弯囊;

4、Data:測試數(shù)據(jù)中導(dǎo)入的變量胶果,也就是所謂的參數(shù)化匾嘱;

注意:當全局變量和環(huán)境變量沖突時,環(huán)境變量覆蓋全局變量早抠;

八奄毡、?? 在test suite中運行test case

1、Environment :環(huán)境變量贝或;

2、Iterations:重復(fù)運行次數(shù)锐秦;

3咪奖、Delay:間隔時間,用例與用例間的間隔時間酱床;

4羊赵、Data:外部數(shù)據(jù)加載,即用例的參數(shù)化,可以與Iterations結(jié)合起來用昧捷,實現(xiàn)參數(shù)化闲昭,也就是數(shù)據(jù)驅(qū)動;

九靡挥、?? 生成Request代碼

1序矩、導(dǎo)出python腳本進行數(shù)據(jù)驅(qū)動的接口測試

1、導(dǎo)出python的requests腳本

2跋破、使用nuittest進行接口自動化測試

2簸淀、導(dǎo)出java代碼進行數(shù)據(jù)驅(qū)動的接口測試

1、導(dǎo)出成java的OkHttp代碼毒返;

2租幕、使用Junit進行接口自動化測試;

3拧簸、使用fastJSON解析json字符串劲绪;

十、?? Jekins+postman+newnam

1盆赤、Postman導(dǎo)出用例集合和導(dǎo)出環(huán)境變量贾富;

2、newman運行:①弟劲、無環(huán)境變量:newman run D:\API.postman_collection.json;

???????????? ②祷安、有環(huán)境變量:newman run D:\API.postman_collection.json –environment D:\postnam_environment.json;

3、執(zhí)行服務(wù)器上的Collection:newman –u?https://www.getpostman.com/collections/cb208e7e64056f5294e5;

4兔乞、jenkins:①汇鞭、構(gòu)建;②庸追、構(gòu)建后發(fā)郵件霍骄;

十一、?? Interceptor錄制

1淡溯、先在瀏覽器安裝Interceptor读整,并打開;

2咱娶、postman同時打開Interceptor米间;

3、刷新網(wǎng)頁膘侮,進行錄制請求屈糊;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市琼了,隨后出現(xiàn)的幾起案子逻锐,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昧诱,死亡現(xiàn)場離奇詭異晓淀,居然都是意外死亡,警方通過查閱死者的電腦和手機盏档,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門凶掰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人妆丘,你說我怎么就攤上這事锄俄。” “怎么了勺拣?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵奶赠,是天一觀的道長。 經(jīng)常有香客問我药有,道長毅戈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任愤惰,我火速辦了婚禮苇经,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宦言。我一直安慰自己扇单,他們只是感情好,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布奠旺。 她就那樣靜靜地躺著蜘澜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪响疚。 梳的紋絲不亂的頭發(fā)上鄙信,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機與錄音忿晕,去河邊找鬼装诡。 笑死,一個胖子當著我的面吹牛践盼,可吹牛的內(nèi)容都是我干的鸦采。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼咕幻,長吁一口氣:“原來是場噩夢啊……” “哼赖淤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起谅河,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后绷耍,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吐限,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年褂始,在試婚紗的時候發(fā)現(xiàn)自己被綠了诸典。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡崎苗,死狀恐怖狐粱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情胆数,我是刑警寧澤肌蜻,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站必尼,受9級特大地震影響蒋搜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜判莉,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一豆挽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧券盅,春花似錦帮哈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至互站,卻和暖如春私蕾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背胡桃。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工踩叭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人翠胰。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓容贝,卻偏偏與公主長得像,于是被迫代替她去往敵國和親之景。 傳聞我的和親對象是個殘疾皇子斤富,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容