在某些時(shí)候官脓,我們需要獲取到一個(gè)變量仿贬,并保存下來,因?yàn)樵诤竺嫖覀儠?huì)使用到品抽。比如token储笑,sign等信息
這時(shí)候就需要用到tests區(qū)域了,使用其強(qiáng)大的js語法
下面是一個(gè)簡(jiǎn)單的將返回值的某個(gè)數(shù)據(jù)設(shè)置為環(huán)境變量或者全局變量的介紹:
定義一個(gè)xxx圆恤,獲取body中返回的所有參數(shù),并轉(zhuǎn)化為JSON格式 var xxx = JSON.parse(responseBody);
//把json字符串轉(zhuǎn)化為對(duì)象突倍。parse()會(huì)進(jìn)行json格式的檢查是一個(gè)安全的函數(shù), 如:檢查json中某個(gè)數(shù)組元素的個(gè)數(shù)(這里檢測(cè)programs的長(zhǎng)度)
var data = JSON.parse(responseBody);tests["program's lenght"] = data.programs.length === 5;
將返回中的值設(shè)置為一個(gè)環(huán)境變量 pm.environment.set("key",xxx.data.value);或者postman.setEnvironmentVariable("key", "value");
將返回中的值設(shè)置為一個(gè)全局變量盆昙,? ? ? ? pm.globals.set("key",xxx.data.value);或者postman.setGlobalVariable("key", "value");
//注意:Global后面不能加S羽历,value值一定要指定到某個(gè)具體節(jié)點(diǎn)
實(shí)際操作一下:
一個(gè)微信登錄的接口token值獲取
這是一個(gè)微信登錄的接口,屬于post方法淡喜,里面的必須參數(shù)是unionid秕磷,這里我已經(jīng)把unionid填在body里了,點(diǎn)擊send下面可以得到一個(gè)token
該登錄token每次請(qǐng)求的值都是不一樣的炼团,屬于一個(gè)動(dòng)態(tài)值澎嚣。而后面我們的所有接口請(qǐng)求都需要這個(gè)token,現(xiàn)在就可以使用tests將它放置在環(huán)境變量里
var acquiretoken = JSON.parse(responseBody);
//定義一個(gè)acquiretoken方法(獲取token),把responseBody轉(zhuǎn)為json字符串
pm.environment.set("token",acquiretoken.data.token);
//將token變量放置到當(dāng)前環(huán)境變量里去
再次執(zhí)行send后们镜,點(diǎn)擊右上角小眼睛
發(fā)現(xiàn)變量就儲(chǔ)存在了dome的環(huán)境變量里,每次點(diǎn)擊send進(jìn)行請(qǐng)求润歉,發(fā)現(xiàn)環(huán)境變量里token都會(huì)隨著結(jié)果變化而變化模狭。
同理,全局變量統(tǒng)一可以這樣設(shè)置
在設(shè)置過變量后踩衩,調(diào)用變量的時(shí)候嚼鹉,在postman里也比較方便贩汉,直接使用{{變量名}}就可以了,
加入我們?cè)赽ody里需要一個(gè)token值锚赤,那么我們可以直接在引用在環(huán)境變量里儲(chǔ)存的token匹舞,例如:
上面的效果和下面這種把一點(diǎn)點(diǎn)輸入的的效果是一樣的!