国产精品吹潮在线播放,日韩一区二区三区在线播放,啊级免费黄片视频,66av视频

網(wǎng)站首頁(yè)
手機(jī)版

postman導(dǎo)出測(cè)試接口講解(postman 導(dǎo)出)

更新時(shí)間:2024-08-25 00:07:03作者:佚名

postman導(dǎo)出測(cè)試接口講解(postman 導(dǎo)出)

Postman是一款我們?cè)诠ぷ髦惺褂妙l率非常高的API調(diào)試工具,估計(jì)很多童鞋在使用它時(shí)也比較粗暴,填好接口地址、參數(shù),直接send就完事了,估計(jì)大家要說了,這么簡(jiǎn)單的東西還能玩出什么花來。今天就和大家安利幾個(gè)非常實(shí)用、但是可能一直被忽視的功能,用完之后,簡(jiǎn)直不要太香!

環(huán)境變量

我們通過一個(gè)例子來看一下環(huán)境變量的用法,在一個(gè)項(xiàng)目的生命周期中,可能會(huì)有開發(fā)環(huán)境、測(cè)試環(huán)境、預(yù)上線環(huán)境、線上環(huán)境等眾多的不同環(huán)境,這時(shí)候就可以通過環(huán)境變量來管理接口的地址以及端口。

點(diǎn)擊左側(cè)的Environments,系統(tǒng)中默認(rèn)已經(jīng)存在了一個(gè)Globals的全局環(huán)境,在這里可以存放一些通用的公共變量的值。先在這里寫入host和port信息:


在需要使用變量時(shí),可以在訪問接口時(shí)使用雙大括號(hào)包裹變量,以{{variable}}的方式進(jìn)行引用:


除了默認(rèn)的全局環(huán)境外,也可以自己創(chuàng)建新的環(huán)境來存放變量。在下面的例子中,創(chuàng)建了local和test兩個(gè)環(huán)境,這樣我們可以直接在兩個(gè)環(huán)境間進(jìn)行切換激活,簡(jiǎn)化了開發(fā)中測(cè)試接口的過程,不再需要頻繁的改動(dòng)接口的地址。


如果激活的環(huán)境和全局環(huán)境中有名稱重復(fù)的變量,那么當(dāng)前激活的環(huán)境中的變量具有更高的優(yōu)先級(jí),它會(huì)直接覆蓋globals環(huán)境中變量的值:


在上面,我們將環(huán)境變量分為了兩類,普通環(huán)境變量和全局變量。總的來說,全局變量具有更高的使用范圍,即使切換到自己創(chuàng)建的環(huán)境,全局變量仍然可用。但是我們自己創(chuàng)建的環(huán)境之間是相互隔離的,如果切換到一個(gè)環(huán)境,那么其他環(huán)境中的變量將不再可用。

像上面這樣手動(dòng)寫入變量的值,在某些時(shí)候可能不太方便滿足一些需求,因此postman提供了一種方法,允許使用腳本來改變環(huán)境變量的值。我們來看一下發(fā)送請(qǐng)求中的Pre-request Script和Tests模塊,它們是在請(qǐng)求發(fā)送前或完成后執(zhí)行的腳本,具體的使用在后面具體介紹,現(xiàn)在我們只需要知道能在這里執(zhí)行js代碼就可以了。


下面,在Pre-request Script中加入兩行js代碼:

pm.globals.set("key1","value1");pm.environment.set("key2","value2");

執(zhí)行完成請(qǐng)求后再次查看環(huán)境變量,全局環(huán)境和當(dāng)前環(huán)境中都寫入了新的值:


同樣,也可以使用腳本刪除變量:

pm.globals.unset("key1");pm.environment.unset("key2");

除了上面的兩類變量外,postman中的Collection也可以存儲(chǔ)變量。Collection可以理解為一個(gè)集合,通常在使用中我們會(huì)將一個(gè)應(yīng)用系統(tǒng)中的接口放在一個(gè)集合中,集合中的變量擁有更小的使用范圍,僅在當(dāng)前集合內(nèi)可用:


同樣,也可以在腳本中對(duì)它進(jìn)行操作:

pm.collectionVariables.set("key3","value3");pm.collectionVariables.unset("key3");

在有了環(huán)境變量的基礎(chǔ)后,再回頭看一下上面提到的Pre-request Script和Tests,它們是兩個(gè)比較類似的功能,用處也非常廣泛。

Pre-request Script

運(yùn)行js腳本

Pre-request Script可以翻譯為預(yù)請(qǐng)求腳本,是在請(qǐng)求發(fā)送前被執(zhí)行的代碼邏輯,可以在這里執(zhí)行一些js代碼。通過下面的簡(jiǎn)單例子進(jìn)行一下演示,先準(zhǔn)備一個(gè)后臺(tái)接口,將前端傳遞過來的時(shí)間戳轉(zhuǎn)換為時(shí)間并打印:

@GetMapping("test1") public void time(@RequestParam("time") String time){ Date date = new Date(Long.parseLong(time)); System.out.println(date); }

在Pre-request Script中利用js代碼獲取當(dāng)前時(shí)間,并放到集合變量中,在請(qǐng)求中傳給后端:


發(fā)送請(qǐng)求,控制臺(tái)打印了前端接口的調(diào)用時(shí)間:

Tue Aug 01 14:14:29 CST 2021

發(fā)送get請(qǐng)求

Pre-request Script的另一大用途就是,在請(qǐng)求當(dāng)前接口前,通過執(zhí)行腳本來先請(qǐng)求一下其他接口。在postman中,已經(jīng)內(nèi)置了sendRequest方法來發(fā)送get方法請(qǐng)求。我們?cè)谶@里調(diào)用一個(gè)本地接口,并將信息打印到console控制臺(tái)(可以通過 Show Postman Console開啟)。


通過控制臺(tái)的打印順序,也可以看到,是在先執(zhí)行了Pre-request中的請(qǐng)求后,才去執(zhí)行的真正目標(biāo)接口的請(qǐng)求。直接像上面這樣調(diào)用sendRequest時(shí),默認(rèn)發(fā)送的get的請(qǐng)求,如果需要使用post請(qǐng)求、配置請(qǐng)求header或使用json傳參的話,可以使用下面單獨(dú)封裝請(qǐng)求的方式。

發(fā)送post請(qǐng)求

在這里,我們通過一個(gè)例子來演示Pre-request Script在具體的工作中能夠怎樣應(yīng)用。有一個(gè)很普遍的場(chǎng)景,通常在調(diào)試需要權(quán)限認(rèn)證的接口時(shí),需要提前通過一個(gè)接口獲取token,然后再訪問目標(biāo)接口時(shí)攜帶這個(gè)token。

這時(shí)就可以在Pre-request Script中先調(diào)用獲取token的接口,再將token設(shè)置到集合的環(huán)境變量中,在之后的接口調(diào)用中引用它。在這里先準(zhǔn)備了一個(gè)應(yīng)用了Shiro+JWT的項(xiàng)目,其中通過登錄接口獲取token,之后的其他接口都需要帶上這個(gè)token用于認(rèn)證 。

我們?cè)趕endRequest發(fā)送get請(qǐng)求的基礎(chǔ)上,進(jìn)行一些修改。首先定義一個(gè)變量,在其中使用url指定請(qǐng)求地址,method指定請(qǐng)求方法,body攜帶參數(shù),最后使用sendRequest進(jìn)行請(qǐng)求的發(fā)送。


在獲取完成token后,通過下面的代碼將獲取的token放入了Collection的變量中:

pm.collectionVariables.set("TOKEN",response.json().data.token);

查看Collection中的變量,已經(jīng)保存了剛才獲取的token:


在需要認(rèn)證的接口header中,引用這個(gè)token,就可以正常的調(diào)用接口了:


在上面的例子中,我們使用的是urlencoded的表單傳參方式,如果接口定義是使用json方式傳參,可以寫成下面的格式:

body: { mode: 'raw', raw: JSON.stringify({ key: 'value' })}

如果需要傳遞header請(qǐng)求頭信息,也可以在自定義的請(qǐng)求中添加:

const loginRequest = { url: '...', header: [ 'Key1 : Value1', 'Key2 : Value2' ], ...};

具體的使用中需要添加什么字段非常的靈活,可以由我們自行進(jìn)行配置。

Tests

和Pre-request Script相對(duì),Tests是在請(qǐng)求完成后執(zhí)行的操作。這里我們回顧一下上面Pre-request Script中發(fā)送post請(qǐng)求的例子,其實(shí)可以通過Tests來進(jìn)行改進(jìn)。

因?yàn)樵谏厦娴睦又?,獲取到的token是JWT生成的,具有一定有效時(shí)間,在一段時(shí)間內(nèi)是都可以復(fù)用的。因此我們可以先手動(dòng)調(diào)用一次login接口獲取token,完成后在Tests中使用腳本將獲取的token放入Collection的變量中,就不需要在每次調(diào)用接口前都調(diào)用login接口重復(fù)獲取token了。

調(diào)用login接口并存入緩存的過程:


之后在調(diào)用其他需要攜帶這個(gè)token的接口時(shí),使用{{TOKEN}}的方式,就會(huì)自動(dòng)填充剛才保存的TOKEN值。這樣在獲取到新的token后,每個(gè)接口中的token都會(huì)自動(dòng)更新,就不需要再手動(dòng)復(fù)制到每個(gè)接口了,極大的減少了工作量。

在postman中,在Collection中可以創(chuàng)建Folder文件夾,并且集合和文件夾上也可以添加Pre-request Script和Tests腳本。我們來看一下位于Folder中的請(qǐng)求,在執(zhí)行Pre-request Script和Tests時(shí)順序是怎樣的,在每個(gè)環(huán)節(jié)中加入對(duì)應(yīng)的打印語句,最后輸出的結(jié)果是這樣的:


也就是說,在發(fā)送請(qǐng)求前,postman會(huì)先執(zhí)行所有Pre-request Script,并且順序是集合最先、文件夾次之、最后是請(qǐng)求中的,在執(zhí)行完成真正的請(qǐng)求后執(zhí)行所有的Tests,順序同上。這也就要求我們?cè)谑褂肞re-request Script及Tests功能前,首先要求我們對(duì)接口的調(diào)用順序、數(shù)據(jù)的流向有一個(gè)明確的了解,這樣才能保證不會(huì)出現(xiàn)空值或更新錯(cuò)誤的情況。

本文標(biāo)簽: [db:關(guān)鍵詞]  

為您推薦

postman導(dǎo)出測(cè)試接口講解(postman 導(dǎo)出)

Postman是一款我們?cè)诠ぷ髦惺褂妙l率非常高的API調(diào)試工具,估計(jì)很多童鞋在使用它時(shí)也比較粗暴,填好接口地址、參數(shù),直接send就完事了,估計(jì)大家要說了,這么簡(jiǎn)單的東西還能玩出什么花來。今天就和大家

2024-08-25 00:07

2021lol名字允許的符號(hào)(2021lol手游名字允許的符號(hào))

大家好,我是又菜又愛玩游戲的圓妹。不知道大家玩英雄聯(lián)盟的時(shí)候會(huì)不會(huì)跟圓妹一樣,會(huì)注意到隊(duì)友以及敵方召喚師的ID?在圓妹的6年英雄聯(lián)盟生涯里,一局遇到9個(gè)不同的ID,一千局都快一萬了,何況我玩了幾千局。

2024-08-25 00:07

php三種數(shù)據(jù)類型 php三種數(shù)據(jù)類型區(qū)別

昨天剛講完P(guān)HP基礎(chǔ)知識(shí)數(shù)據(jù)類型之間相互轉(zhuǎn)換,今天就來講講PHP變量類型測(cè)試函數(shù)的使用。在PHP編碼過程中也非常常用到變量類型測(cè)試函數(shù),那么現(xiàn)在我就來給大家講解is_bool的基本知識(shí)。 is_bo

2024-08-25 00:07

兩種調(diào)出CAD工具欄的方法 如何調(diào)出cad的工具欄

AutoCAD是一款非常專業(yè)的制圖軟件,工程師或者是建筑師,建筑專業(yè)人員可以使用它來制作非常精確的2D和3D圖形?! ?   而很多小伙伴在使用這款軟件制圖時(shí)發(fā)現(xiàn),自己的AutoCAD軟件界面上沒

2024-08-25 00:04

游戲出現(xiàn)fatalerror解決(打開游戲fatalerror)

DNFFatal Error怎么處理?玩家在游戲的過程當(dāng)中總會(huì)遇到一些意想不到的情況,比如在開心游戲當(dāng)中突然出現(xiàn)了報(bào)錯(cuò)提示,其中就包括了Fatal Error,對(duì)于這個(gè)報(bào)錯(cuò),到底是由于什么引起的呢?玩

2024-08-25 00:04

網(wǎng)站內(nèi)部鏈接優(yōu)化方法(網(wǎng)站內(nèi)部鏈接優(yōu)化方法有哪些)

在十年前就做了幾個(gè)網(wǎng)站,然后開始接觸了網(wǎng)站優(yōu)化這塊,包括了推廣,當(dāng)時(shí)也是只是為了一個(gè)PR值,還有做些排名,讓用戶能夠更好的找到我,做點(diǎn)流量這樣。 直接開始最簡(jiǎn)單的東西:1、相關(guān)行業(yè)的友情鏈接,這個(gè)可

2024-08-25 00:04