postman設(shè)置接口關(guān)聯(lián)
在實(shí)際的接口測(cè)試中,后一個(gè)接口經(jīng)常需要用到前一個(gè)接口返回的結(jié)果, 從而讓后一個(gè)接口能正常執(zhí)行,這個(gè)過程的實(shí)現(xiàn)稱為關(guān)聯(lián)。
在postman中實(shí)現(xiàn)關(guān)聯(lián)操作的步驟如下:
1、利用postman獲取上一個(gè)接口指定的返回值,可以在tests中提取響應(yīng)中的字典做全局變量;如下圖
2、編寫代碼設(shè)置全局變量,會(huì)自動(dòng)把全局變量的信息加入到Environments中的Globals中,如下圖
使用postman全局變量保存上一個(gè)接口的值,代碼如下:
老版本寫法:postman.setGlobalVariable("全局變量名", str); 其中前面的參數(shù)為全局變量名稱 ,后面為變量
新版本寫法:pm.globals.set("token_id", token_value);其中前面的參數(shù)為全局變量名稱 ,后面為變量
3、和之前引用全局變量一樣,使用{{全局變量名}}即可;如下圖
同時(shí),我也為大家準(zhǔn)備了一份軟件測(cè)試視頻教程(含面試、接口、自動(dòng)化、性能測(cè)試等),就在下方,需要的可以直接去觀看,也可以直接點(diǎn)擊文末小卡片免費(fèi)領(lǐng)取資料文檔
軟件測(cè)試視頻教程觀看處:
Postman接口測(cè)試保姆級(jí)教程及接口自動(dòng)化測(cè)試項(xiàng)目實(shí)戰(zhàn)教程你要的都在這
postman實(shí)現(xiàn)參數(shù)化
什么時(shí)候會(huì)用到參數(shù)化
比如:一個(gè)模塊要用多組不同數(shù)據(jù)進(jìn)行測(cè)試 ?== 驗(yàn)證業(yè)務(wù)的正確性
Login模塊:正確的用戶名,密碼 ===成功;錯(cuò)誤的用戶名,正確的密碼 === 失敗
postman實(shí)現(xiàn)參數(shù)化
在實(shí)際的接口測(cè)試中,部分參數(shù)每次發(fā)送請(qǐng)求時(shí)都要唯一(比如注冊(cè)), 這時(shí)可采用postman把測(cè)試數(shù)據(jù)進(jìn)行參數(shù)化處理
postman設(shè)置參數(shù)的形式主要有三種:
- 內(nèi)建變量實(shí)現(xiàn)
- Pre-request Script頁(yè)簽中使用代碼實(shí)現(xiàn) (推薦)
- 外部文件的方式實(shí)現(xiàn);如csv文件/json格式文件
一、內(nèi)建變量實(shí)現(xiàn)
Postman有以下三種內(nèi)建變量,適合一次性使用;缺點(diǎn):內(nèi)鍵變量不能做精確對(duì)比
{{$guid}}:生成GUID;如下圖:
{{$timestamp}}:當(dāng)前時(shí)間戳;如下圖
可通過在線時(shí)間戳轉(zhuǎn)換工具查看時(shí)間:https://tool.lu/timestamp/
{{$randomInt}}:0-1000的隨機(jī)整數(shù)
二、Pre-request Script頁(yè)簽中使用代碼實(shí)現(xiàn)(推薦)
Pre-request Script為執(zhí)行接口請(qǐng)求之前要做的操作,而tests是執(zhí)行完請(qǐng)求要 做的操作。內(nèi)建變量一般放在Request里,我們也可以用代碼在Pre-request Script中實(shí)現(xiàn),用代碼實(shí)現(xiàn)的好處是可以復(fù)用。
Pre-request Script 與test 一樣 支持javascript語法
在Pre-request Script中實(shí)現(xiàn)的幾種參數(shù)化;如下
//獲取當(dāng)前時(shí)間戳 毫秒
var now_time = Date.now()
pm.globals.set("now_time",now_time)
//guid實(shí)現(xiàn)
const guid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
.replace(/x/g, () => (Math.floor(Math.random() * 16)).toString(16))
.replace(/y/g, () => (Math.floor(Math.random() * 4 + 8)).toString(16));
pm.globals.set("guid_value",guid)
//隨機(jī)整數(shù)實(shí)現(xiàn)
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) +
min
pm.globals.set("randomInt_num",randomInt(8,15))
//從多個(gè)選項(xiàng)中選擇實(shí)現(xiàn)
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) +
min
const getRandomValue = list => list[randomInt(0, list.length - 1)];
const charsInName = ['王','李','張']
pm.globals.set("people_name",getRandomValue(charsInName))
//隨機(jī)手機(jī)號(hào)實(shí)現(xiàn)
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) +
min
var mobile_num = `18${randomInt(100000000, 999999999)}`;
pm.globals.set("mobile_num",mobile_num)
//同步等待實(shí)現(xiàn):等待5秒后開始執(zhí)行
const sleep = (milliseconds) => {
const start = Date.now();
while (Date.now() <= start + milliseconds) {}
}
sleep(5000)
實(shí)戰(zhàn)示例:通過Pre-request Script編寫代碼可以在隨機(jī)參數(shù)中做斷言的精確比對(duì)
1、在Pre-request Script中編寫代碼
2、在請(qǐng)求中引用變量;{{變量名}}
3、在tests中做斷言,驗(yàn)證實(shí)際結(jié)果和預(yù)期結(jié)果是否一致
4、查看執(zhí)行結(jié)果
三、外部文件方式實(shí)現(xiàn)參數(shù)化
在postman中,除了上述兩種方法實(shí)現(xiàn)參數(shù)化,還可以利用外部數(shù)據(jù)文件 (支持csv文件和包含json格式文本的數(shù)據(jù))。外部數(shù)據(jù)文件目前是通過Runner 頁(yè)簽可以進(jìn)行導(dǎo)入。
csv文件格式舉例:
csv文件要在Collection Runner中工作,第一行必須是在request中要使用的 變量名,每一行是一條用例,并表示一次迭代。
1、先準(zhǔn)備csv文件,編碼是UTF-8;如上圖
2、在postman中引用變量名,如下圖中的百度搜索中wd的參數(shù)引入了{(lán){search_word}},tests頁(yè)簽中做斷言引用了data.expected_result
3、點(diǎn)擊Runner按鈕,勾選需執(zhí)行的請(qǐng)求,在設(shè)置循環(huán)次數(shù),導(dǎo)入csv文件,點(diǎn)擊run執(zhí)行;如下圖
4、查看執(zhí)行結(jié)果
json文件你需要確保你的文件有鍵/值對(duì)數(shù)組。數(shù)組中的每個(gè)元素是鍵值對(duì)對(duì) 象,代表一次迭代。key作為request中要使用的變量名,value作為key的取值。
json文件實(shí)現(xiàn)參數(shù)化步驟:
1、準(zhǔn)備要使用的json格式測(cè)試數(shù)據(jù)文件;
2、在postman腳本中,HTTP requests中使用{{ key }}去引用,在script中使用 data. key 或者 data[“key”] 去引用;
3、打開Runner窗口,點(diǎn)擊Data旁邊的Select File按鈕,導(dǎo)入jsondata參數(shù)化文件; 點(diǎn)擊Data File Type類型選擇application/json后,點(diǎn)擊Preview按鈕,檢查數(shù)據(jù)正確
4、查看執(zhí)行結(jié)果
Postman本篇總結(jié)
PS:這里分享一套軟件測(cè)試的自學(xué)教程合集。對(duì)于在測(cè)試行業(yè)發(fā)展的小伙伴們來說應(yīng)該會(huì)很有幫助。除了基礎(chǔ)入門的資源,博主也收集不少進(jìn)階自動(dòng)化的資源,從理論到實(shí)戰(zhàn),知行合一才能真正的掌握。全套內(nèi)容已經(jīng)打包到網(wǎng)盤,內(nèi)容總量接近500個(gè)G。
? 240集-零基礎(chǔ)到精通全套視頻課程
? [課件+源碼]-完整配套的教程
? 18套-測(cè)試實(shí)戰(zhàn)項(xiàng)目源碼
? 37套-測(cè)試工具軟件包
? 268道-真實(shí)面試題
? 200個(gè)模板-面試簡(jiǎn)歷模板、測(cè)試方案模板、軟件測(cè)試報(bào)告模板、測(cè)試分析模版、測(cè)試計(jì)劃模板、性能測(cè)試報(bào)告、性能測(cè)試報(bào)告、性能測(cè)試腳本用例模板(信息完整)文章來源:http://www.zghlxwxcb.cn/news/detail-852912.html
這些資料,對(duì)于做【軟件測(cè)試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉(cāng)庫(kù),這個(gè)倉(cāng)庫(kù)也陪伴我走過了最艱難的路程,希望也能幫助到你!凡事要趁早,特別是技術(shù)行業(yè),一定要提升技術(shù)功底。文章來源地址http://www.zghlxwxcb.cn/news/detail-852912.html
到了這里,關(guān)于Postman接口測(cè)試: postman設(shè)置接口關(guān)聯(lián),實(shí)現(xiàn)參數(shù)化的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!