使用postman做API自動化測試

postman作為一款發(fā)送HTTP請求的應(yīng)用工具往堡,在開發(fā)和測試過程中調(diào)試HTTP接口有著很大的作用,這里分享通過postman完成一個(gè)小型項(xiàng)目接口自動化測試的文章。

一肺孵、基本功能介紹

1走敌、下載安裝:可以直接安裝 Chrome瀏覽器的插件或者是下載postman? 客戶端碴倾,使用統(tǒng)一的賬號登陸就能使數(shù)據(jù)同步。

2掉丽、發(fā)送請求:

我們常用GET/POST/DELETE …類型的http請求跌榔,在postman中只需填寫對應(yīng)的填寫URL,HEARDER捶障,BODY等內(nèi)容就可以發(fā)送請求并看到接口請求的結(jié)果僧须。下圖簡單展示一個(gè)接口返回的界面和常用功能:


3、settings—General 設(shè)置postman的系統(tǒng)設(shè)置项炼,例如主題背景快捷鍵等担平。

4示绊、code:我們可以將postman中對接口調(diào)試的結(jié)果直接導(dǎo)出成想要的代碼:


5、關(guān)于參數(shù):

Form-data 傳參? form-data是web表單默認(rèn)的傳輸格式暂论,編輯器允許你通過設(shè)置key-value形式的數(shù)據(jù)來模擬填充表單面褐。你可以在最后的選項(xiàng)中選擇添加文件。

x-www-form-urlencoded傳參? 這個(gè)編碼格式同樣可以通過設(shè)置key-value的方式作為URL的參數(shù)空另。

raw 傳參 一個(gè)raw請求可以包含任何內(nèi)容盆耽。在這里可以設(shè)置我們常用的JSON 和 XML數(shù)據(jù)格式。

binary 傳參 在這里你可以發(fā)送視頻扼菠、音頻摄杂、文本等文件。

查看相應(yīng):

Postman的body標(biāo)簽中有三種查看方式:Pretty循榆、Raw析恢、Preview

Pretty方式,可以讓JSON 和 XML的響應(yīng)內(nèi)容顯示的更美觀規(guī)整秧饮。

顯示最原始的數(shù)據(jù)映挂,可以幫助你判斷是否minified

可以幫你把HTML頁面自動解析顯示出來。

6盗尸、參數(shù)化

對于一條完整的測試數(shù)據(jù)的場景構(gòu)建柑船,我們可以使用{{name}}參數(shù)化來傳遞,比如接口B依賴接口A返回的字段data_1泼各,那么我們使用如下語句進(jìn)行傳遞:

在接口A的Tests腳本中添加:

var rsp=JSON.parse(responseBody);

postman.setEnvironmentVariable("data_1",rsp.data.data_1); //將response返回的data_1存為當(dāng)前環(huán)境變量data_1

在接口B中調(diào)用data_1:

data = {{data_1}}

7鞍时、常用概念

1、同步cookie:可以使用Chrome瀏覽器已經(jīng)登錄的cookie扣蜻,同步瀏覽器的cookie需要安裝另一個(gè)插件Interceptor(攔截機(jī))逆巍。它可以在你發(fā)送請求時(shí)幫你將已經(jīng)存在于瀏覽器的數(shù)據(jù)隨header請求,另外它可以將瀏覽器的請求寫到postman的歷史中(需要開啟“Request Capture”)莽使。

2锐极、集合

集合不單單只有分類和存儲功能,Postman支持一鍵運(yùn)行整個(gè)集合內(nèi)的測試芳肌。

我們可以把一個(gè)請求當(dāng)做一個(gè)Test Case, 那么集合就是一個(gè)Test Suite灵再。

每個(gè)集合都對應(yīng)一個(gè)URL,可以通過Share按鈕獲得你的集合URL亿笤,這個(gè)URL可以用于分享給你的隊(duì)友檬嘀,或者用于Newman執(zhí)行。

Newman是Postman的一個(gè)命令行工具责嚷,可以讓API測試加入到你的持續(xù)集成任務(wù)上。

3掂铐、環(huán)境變量

當(dāng)做API測試時(shí)罕拂,你可能經(jīng)常需要切換不同的設(shè)置揍异。比如,開發(fā)環(huán)境的API設(shè)置爆班、測試環(huán)境和產(chǎn)品環(huán)境的API設(shè)置衷掷,你可能需要在不同的測試環(huán)境下使用不同的配置。為此Postman提供了環(huán)境變量柿菩,這樣你就可以通過修改環(huán)境變量戚嗅,而不需修改請求了。

你可以通過右上角的下拉菜單選擇環(huán)境枢舶,可以通過點(diǎn)擊右側(cè)的小眼睛來查看當(dāng)前環(huán)境變量懦胞。


8、接口自動化測試

首先凉泄,Postman測試沙箱是一個(gè)JavaScript執(zhí)行環(huán)境躏尉,可以通過JS腳本來編寫pre-requist和測試腳本。pre-requist可以用來修改一些默認(rèn)參數(shù)后众。

postman執(zhí)行接口請求分為以下三個(gè)部分:

1胀糜、在發(fā)起請求之前運(yùn)行的Pre-request,預(yù)處理數(shù)據(jù)蒂誉,作用:在發(fā)送請求前編輯請求數(shù)據(jù)教藻,比如用戶名或時(shí)間戳

2、對響應(yīng)后的數(shù)據(jù)運(yùn)行的Test右锨,檢查數(shù)據(jù)并做斷言括堤,作用:對響應(yīng)的數(shù)據(jù)檢查和斷言,例如檢查狀態(tài)碼陡蝇、檢查響應(yīng)串痊臭、驗(yàn)證JSON、檢查header登夫、限制應(yīng)答時(shí)間

3广匙、批量運(yùn)行所有請求的Collection Runner,批量執(zhí)行接口測試


然后恼策,我們選擇需要運(yùn)行的測試集和測試數(shù)據(jù)鸦致,run之后可以看到測試報(bào)告。


最后查看本次的測試報(bào)告涣楷,根據(jù)報(bào)告結(jié)果跟進(jìn)具體問題:



9分唾、Jenkins集成

????????我們知道Jenkins可以用來做持續(xù)集成,需在安裝Jenkins的機(jī)器上同時(shí)安裝Newman 狮斗,并且將我們的測試集的數(shù)據(jù)放在git管理绽乔,在jenkins的Shell腳本命令中指定每次執(zhí)行最新的代碼去run ,就可以實(shí)現(xiàn)最簡單的接口自動化測試碳褒。


1折砸、安裝Newman ,先安裝node.js

brew -v

brew install node

Node -v? 或者 brew list

2看疗、node.js 安裝成功之后? 安裝Newman

npm install -g newma

3、運(yùn)行命令 本地/報(bào)告


?這里我們將需要運(yùn)行的測試集合導(dǎo)出到本地睦授,命名為Hippo.postman_collection

使用Newman 常用的運(yùn)行命令有:

newman -c /Users/aoxiaowen/Desktop/Hippo.postman_collection? ? //其中 -c 后面的參數(shù)為postman_collection文件的本地路徑

newman run --reporters html? /Users/aoxiaowen/Desktop/Hippo.postman_collection --reporter-html-export htmlOutput.html --export-online? ?//選擇測試報(bào)告的格式两芳,指定當(dāng)前運(yùn)行的環(huán)境

newman run /Users/aoxiaowen/Desktop/Hippo.postman_collection.json -e /Users/aoxiaowen/Desktop/Hippo.postman_environment.json --reporters html --reporter-html-export /Users/aoxiaowen/postmanfile/result.html? ?//使用本地json測試數(shù)據(jù)

newman run /Users/aoxiaowen/Downloads/testData.postman_collection -e /Users/aoxiaowen/Downloads/online.postman_environment -g /Users/aoxiaowen/Desktop/test.csv --folder testData --reporters html --reporter-html-export /Users/aoxiaowen/postmanfile/result.html??//使用本地csv測試數(shù)據(jù)

????????這種自動化的測試一般適用于小型的簡單測試,本身的接口collection可以方便于我們?nèi)粘5臏y試收集去枷。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末怖辆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子删顶,更是在濱河造成了極大的恐慌竖螃,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翼闹,死亡現(xiàn)場離奇詭異斑鼻,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)猎荠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門坚弱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人关摇,你說我怎么就攤上這事荒叶。” “怎么了输虱?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵些楣,是天一觀的道長。 經(jīng)常有香客問我宪睹,道長愁茁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任亭病,我火速辦了婚禮鹅很,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘罪帖。我一直安慰自己促煮,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布整袁。 她就那樣靜靜地躺著菠齿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪坐昙。 梳的紋絲不亂的頭發(fā)上绳匀,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼襟士。 笑死盗飒,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的陋桂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼蝶溶,長吁一口氣:“原來是場噩夢啊……” “哼嗜历!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起抖所,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤梨州,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后田轧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體暴匠,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年傻粘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了每窖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡弦悉,死狀恐怖窒典,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情稽莉,我是刑警寧澤瀑志,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站污秆,受9級特大地震影響劈猪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜良拼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一战得、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧将饺,春花似錦贡避、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至掖蛤,卻和暖如春杀捻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蚓庭。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工致讥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留仅仆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓垢袱,卻偏偏與公主長得像墓拜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子请契,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評論 2 355

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