一、postman中可以設(shè)置全局和環(huán)境變量(以便可以存儲(chǔ)一些例如:url、token值、測(cè)試參數(shù)等數(shù)據(jù))
1、postman全局變量和環(huán)境變量的區(qū)別:
(1)全局變量:全局變量是全局唯一的,不可重復(fù)定義的變量
(2)環(huán)境變量:一個(gè)變量只能屬于某個(gè)環(huán)境,在某一個(gè)環(huán)境中變量不可重復(fù)定義;在環(huán)境與環(huán)境之間可以定義重復(fù)的變量;一個(gè)環(huán)境可以包含多個(gè)環(huán)境變量;常見(jiàn)環(huán)境分類:開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境、生產(chǎn)環(huán)境。
2、變量的設(shè)置
(1)變量是通過(guò)key-value的形式來(lái)存儲(chǔ)。
例如:url:http://test.baidu.com
(2)變量的使用:
通過(guò){{變量key}}來(lái)調(diào)用關(guān)鍵字獲取值
例如:{{url}},可以放在需要填寫參數(shù)的任何位置。
(3)如何創(chuàng)建變量:
??點(diǎn)擊postman界面右上角的Environment quick look,在彈窗中可以選擇創(chuàng)建全局變量、導(dǎo)入變量文件、創(chuàng)建環(huán)境變量。

添加環(huán)境變量或全局變量

全局變量在創(chuàng)建后,任何時(shí)候都可以獲取到,而環(huán)境變量只有在設(shè)置為當(dāng)前環(huán)境時(shí),才會(huì)獲取到此環(huán)境中的變量。這個(gè)根據(jù)需要來(lái)設(shè)置是全局變量還是環(huán)境變量。
(4)變量的引用:
??如圖所示,是一個(gè)環(huán)境變量的設(shè)置和引用,當(dāng)鼠標(biāo)懸浮在我們引用的變量{{key}}上時(shí),會(huì)顯示當(dāng)前變量的值。

二、參數(shù)傳遞和斷言
??在postman中有專門的代碼區(qū)域,可以通過(guò)js代碼語(yǔ)言來(lái)實(shí)現(xiàn)一些自定義操作。在Pre-request Script區(qū)域,是請(qǐng)求發(fā)送前的代碼區(qū),比如我們需要對(duì)密碼進(jìn)行md5加密后發(fā)送,就可以使用js中的方法先進(jìn)行加密。在Tests區(qū)域中,可以通過(guò)獲取返回參數(shù)的值進(jìn)行斷言,斷言失敗的接口會(huì)顯示為false結(jié)果。

如何進(jìn)行參數(shù)傳遞:
??比如支付接口,需要上一個(gè)下單接口返回的訂單號(hào)來(lái)作為入?yún)ⅰ?/p>
??這個(gè)時(shí)候,首先要在下單接口的Tests區(qū)域中,獲取到返回?cái)?shù)據(jù)的訂單號(hào),然后存儲(chǔ)為全局變量;
??接著在支付接口中,入?yún)⒅械挠唵翁?hào)值填寫為我們?cè)O(shè)置的全局變量,這樣就實(shí)現(xiàn)了一次參數(shù)傳遞。
三、在postman中對(duì)全局(環(huán)境)變量的操作方法
1.1、獲取變量
(1)獲取全局變量:
pm.globals.get(“variable_key”);
(2)獲取當(dāng)前環(huán)境變量:
pm.environment.get(“variable_key”);
(3)獲取普通變量:
pm.variables.get(“variable_key”);
1.2、設(shè)置變量
(1)設(shè)置全局變量:
pm.globals.set(“variable_key”, “variable_value”);
(2)設(shè)置當(dāng)前環(huán)境變量:
pm.environment.set(“variable_key”, “variable_value”);
1.3、清空變量值
(1)清空當(dāng)前環(huán)境變量:
pm.environment.unset(“variable_key”);
(2)清空全局變量:
pm.globals.unset(“variable_key”);
2、返回?cái)?shù)據(jù)的判斷
這里需要注意的是,網(wǎng)上有一些教程比較老了,例如這種形式的寫法:
tests[“Status code is 200”] = responseCode.code === 200;
這樣的寫法官方文檔中已經(jīng)表示不推薦使用,而是推薦統(tǒng)一的js書(shū)寫格式。
(1)判斷返回狀態(tài)碼
pm.test(“返回狀態(tài)碼為200”, function () {
??pm.response.to.have.status(200);
});
(2)判斷返回header中是否有“Content-Type”字段
pm.test(“Content-Type字段存在”, function () {
??pm.response.to.have.header(“Content-Type”);
});
(3)判斷接口返回內(nèi)容匹配一個(gè)字符串
pm.test(“返回內(nèi)容匹配字符串”, function () {
pm.response.to.have.body(“response_body_string”);
});
(4)判斷返回參數(shù)中包含某個(gè)字符串
pm.test(“字符串包含在返回值中”, function () { pm.expect(pm.response.text()).to.include(“想要搜索的字符串”);});
(5)判斷接口響應(yīng)時(shí)間
pm.test(“接口響應(yīng)時(shí)間小于200ms”, function () { pm.expect(pm.response.responseTime).to.be.below(200);});
(6)把responseBody轉(zhuǎn)為json字符串
var Jsondata =JSON.parse(responseBody);
(7)把xml格式返回轉(zhuǎn)換為json格式
var jsonObject = xml2Json(responseBody);
(8)獲取并判斷返回參數(shù)的值文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-436765.html
// 假設(shè)返回參數(shù)為:{“code” : 0}
pm.test(“斷言code字段值是否為0”,function(){
??var jsonData = pm.response.json(); // 創(chuàng)建一個(gè)變量,值為返回參數(shù)(json格式)
??pm.expect(jsonData.code).to.eql(0); // 判斷返回參數(shù)中code字段值為0
});
官方文檔:https://learning.postman.com/docs/writing-scripts/script-references/test-examples/#making-assertions-on-the-http-response文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-436765.html
到了這里,關(guān)于postman全局變量和環(huán)境變量的區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!