API自動化之postman高級應(yīng)用(一)

來啦老鐵9邗巍!身诺!


來聊聊

這兩周已經(jīng)開始通勤上班了蜜托,路途遙遠(yuǎn),經(jīng)常沒把電腦帶回來了霉赡,周末例外橄务。趁著周末手里有電腦,上點(diǎn)干貨同廉!廢話不多說仪糖,我們直接從postman工具聊起吧8趟尽(關(guān)于Postman是啥迫肖,基本使用介紹锅劝,我們就不再贅述了,大家可以看看這方面的文章學(xué)習(xí)和溫習(xí)一下)蟆湖。

postman可是個神器啊故爵,用6了,可以做到API半自動化的效果隅津,甚至結(jié)合其他技術(shù)手段诬垂,可以做到真正的小型API自動化,接下來就是見證奇跡的時(shí)刻伦仍!


裝逼vip

1.腳本和斷言介紹结窘;

postman為用戶提供了2個腳本入口,一個叫Pre-request Script充蓝,一個叫Tests隧枫,用戶可在這兩個入口使用javascript腳本和postman預(yù)置的語句,對請求前后做一些操作谓苟。

Pre-request Script

這個代表在發(fā)起請求前做的一些操作官脓,通常我們可以用其做一些數(shù)據(jù)準(zhǔn)備、調(diào)用其他簡單接口等操作涝焙,官網(wǎng)介紹:https://learning.postman.com/docs/postman/scripts/intro-to-scripts/

我們以一個免費(fèi)接口 https://api.apiopen.top/getJoke?page=1&count=2&type=video 為例卑笨,假設(shè)我們每次想要獲取不同數(shù)量(參數(shù)count)的數(shù)據(jù),那么我們就必須在請求前設(shè)置好數(shù)量仑撞,這時(shí)候Pre-request Script就派上用場了赤兴,我們將接口參數(shù)化如:https://api.apiopen.top/getJoke?page=1&count={{count}}&type=video

postman上準(zhǔn)備如下:

Pre-request Script

pm.globals.set(key, value):在postman中設(shè)置全局變量的用法(除了全局變量,postman還有環(huán)境變量隧哮,讀者朋友請自行腦補(bǔ)哈)搀缠;

{{}}:postman引用環(huán)境變量、全局變量時(shí)需用2對花括號包裹近迁;

$randomInt:postman內(nèi)置的獲取1~1000隨機(jī)數(shù)的變量艺普,當(dāng)然我們也可以用js代碼在Pre-request Script獲取一個隨機(jī)數(shù),然后放到pm.globals.set()里頭鉴竭,但不是人人都會歧譬,而postman就很人性化地提供了一些較為常用的內(nèi)置變量,方便用戶使用搏存。

postman的內(nèi)置變量還是比較豐富便捷的瑰步,比如$timestamp可獲取當(dāng)前時(shí)間戳,$randomPhoneNumber可獲取10位隨機(jī)電話號碼璧眠,還有一些非常擬真的隨機(jī)數(shù)據(jù)缩焦,如$randomFirstName和$randomLastName生成的是看起來非常真實(shí)的名字读虏,比如Felton Jones,而不是隨機(jī)的文字而已袁滥,這非常人性化呀盖桥!

其他postman內(nèi)置變量可以通過以下途徑了解:

在Url上,輸入{符號+空格题翻,可查看支持的內(nèi)置變量揩徊;

url

在非Url上,輸入{符號嵌赠,可查看支持的內(nèi)置變量塑荒;

非Url

當(dāng)我們點(diǎn)擊Send按鈕后脏答,postman先為我們準(zhǔn)備好一個隨機(jī)數(shù)放到全局變量中枪向,請求時(shí)postman將從環(huán)境變量中獲取這個變量,然后發(fā)起請求和執(zhí)行后續(xù)的其他操作吃溅;


牛逼壞了

Tests

這個代表在請求完成后做的一些操作炊豪,通常我們會在此處做一些校驗(yàn)凌箕、數(shù)據(jù)存儲、調(diào)用其他簡單API等操作溜在,官網(wǎng)介紹:https://go.pstmn.io/docs-test-scripts

此處陌知,我校驗(yàn)了HTTP返回碼是否為200;API返回?cái)?shù)據(jù)中掖肋,result數(shù)組的長度是否與請求參數(shù)count相等仆葡;result數(shù)組中第一個元素的sid參數(shù)是否不為空;同時(shí)志笼,我還將sid存儲到全局變量池中沿盅,供后續(xù)其他API使用。

Tests

基于Pre-request Script和Tests纫溃,我們可以在某些場景下自動地準(zhǔn)備數(shù)據(jù)腰涧,并完成測試點(diǎn)驗(yàn)證,測試時(shí)不用再人為地填充數(shù)據(jù)紊浩,不用再人工驗(yàn)證API返回或測試點(diǎn)窖铡,一定程度上解放了雙手,我們可以將其歸入半自動化麾下坊谁!

為了介紹使用sid和介紹其他功能费彼,我額外準(zhǔn)備了一個API,即通過sid獲取內(nèi)容:

sid獲取內(nèi)容

2.Runner介紹口芍;

有了上述的基礎(chǔ)箍铲,我們一起來進(jìn)階一下,咱們來學(xué)學(xué)Runner這個東西鬓椭,入口和初始界面如下:

Runner入口
初始界面

假設(shè)我們有多個API颠猴,這個些API間有依賴關(guān)系关划,執(zhí)行完第一個API才能執(zhí)行第二個API,執(zhí)行完第二個才能執(zhí)行第三個翘瓮,以此類推贮折,即使有Pre-request Script和Tests幫助數(shù)據(jù)準(zhǔn)備和測試驗(yàn)證,難道我們一個API一個API的去點(diǎn)嗎春畔?如果再遇到需要頻繁測試API們脱货,或需要大量調(diào)用API來造數(shù)據(jù)岛都,又只能不停的點(diǎn)點(diǎn)點(diǎn)嗎律姨?英語好點(diǎn)的朋友應(yīng)該能看出來了,對臼疫,這個Runner就是來解救大家的择份。

Runner例子

Runner的幾個作用:

控制執(zhí)行順序。通過右側(cè)的RUN ORDER烫堤,我們可以拖動API荣赶,來安排執(zhí)行順序,Runner啟動后就會按我們指定的順序執(zhí)行鸽斟;

批量循環(huán)執(zhí)行拔创。Interations參數(shù)為我們要執(zhí)行的次數(shù)或者叫輪數(shù),Delay是用于控制API的執(zhí)行速度的富蓄,假設(shè)Delay設(shè)置為1000ms, 那么每個API之間將等待1秒剩燥,注意是API間隔,而不是每一輪間隔立倍。

返回信息保留灭红。Save Responses可在執(zhí)行后保留API返回,讓使用者能夠反觀執(zhí)行過程和獲取返回?cái)?shù)據(jù)口注,因?yàn)镽unner有時(shí)候可以用來調(diào)用API批量創(chuàng)造數(shù)據(jù)变擒。

導(dǎo)出測試結(jié)果。Runner跑完后寝志,還可通過Run Results頁面查看本次的統(tǒng)計(jì)報(bào)告娇斑,同時(shí)也可導(dǎo)出本次運(yùn)行的統(tǒng)計(jì)報(bào)告,不過導(dǎo)出的報(bào)告是Json格式的材部,大家參考參考毫缆。

運(yùn)行次數(shù):2輪

通過Runner,我們可以批量按順序執(zhí)行API們败富,在實(shí)際場景中還是蠻常用的悔醋。Runner可以在一定程度上解放測試人員的雙手,我們可以將Runner歸到半自動化麾下兽叮。大家可以根據(jù)上述涉及的知識點(diǎn)芬骄,自行探索和深入猾愿。

夜已深,咱們今天就到這吧账阻,希望本文對大家有所幫助蒂秘。

下期帶大家在使用postman的基礎(chǔ)上做自動化,敬請期待L蕴R錾!

記得點(diǎn)贊哦
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載蒲牧,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者撇贺。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市冰抢,隨后出現(xiàn)的幾起案子松嘶,更是在濱河造成了極大的恐慌,老刑警劉巖挎扰,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翠订,死亡現(xiàn)場離奇詭異,居然都是意外死亡遵倦,警方通過查閱死者的電腦和手機(jī)尽超,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梧躺,“玉大人似谁,你說我怎么就攤上這事≡镎” “怎么了棘脐?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長龙致。 經(jīng)常有香客問我蛀缝,道長,這世上最難降的妖魔是什么目代? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任屈梁,我火速辦了婚禮,結(jié)果婚禮上榛了,老公的妹妹穿的比我還像新娘在讶。我一直安慰自己,他們只是感情好霜大,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布构哺。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪曙强。 梳的紋絲不亂的頭發(fā)上残拐,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機(jī)與錄音碟嘴,去河邊找鬼溪食。 笑死,一個胖子當(dāng)著我的面吹牛娜扇,可吹牛的內(nèi)容都是我干的错沃。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼雀瓢,長吁一口氣:“原來是場噩夢啊……” “哼枢析!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起致燥,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤登疗,失蹤者是張志新(化名)和其女友劉穎排截,沒想到半個月后嫌蚤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡断傲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年脱吱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片认罩。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡箱蝠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出垦垂,到底是詐尸還是另有隱情宦搬,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布劫拗,位于F島的核電站间校,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏页慷。R本人自食惡果不足惜憔足,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望酒繁。 院中可真熱鬧滓彰,春花似錦、人聲如沸州袒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽郎哭。三九已至他匪,卻和暖如春弓叛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背诚纸。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工撰筷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人畦徘。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓毕籽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親井辆。 傳聞我的和親對象是個殘疾皇子关筒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354