Postman高級應用——串行傳參和動態傳參詳解

Postman是一款功能強大的網頁調試與發送網頁HTTP請求的Chrome插件
html

用Postman作接口測試的時候,要把多條用例一塊兒執行,就須要把用例鏈接起來,一次性執行json

 

目錄api

串行傳參微信

動態傳參app

 

使用的接口是微信公衆號開發文檔裏面的接口,詳細請看開發文檔:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432dom

首先須要獲取到接口測試號,開始開發>接口測試號申請>得到appID和appsecret,位置爲:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421137522post

其次獲取access_token測試

接口調用說明:ui

https請求方式: GET,spa

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
輸入appID和appsecret獲得access_token,以下圖所示:

 

串行傳參

舉例:先獲取到access_token值,而後再查看已建立的標籤

1.提取接口返回值

 在獲取access_token的接口中,Tests下輸入以下代碼:

let json = JSON.parse(responseBody);//聲明一個變量json,將JSON返回Body裏面的值解析並給變量json
tests["a"] = json.expires_in ===7200;//設置一個斷言 pm.globals.set("token", json.access_token);//獲取json裏面的access_token的值給token,運行一次就更新一次,並將token值設置爲全局變量

操做以下圖所示:

2.將提取到的返回值做爲下一個接口的入參(查看已建立的標籤)

接口調用說明,詳見:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140837

http請求方式:GET(請使用https協議)

https://api.weixin.qq.com/cgi-bin/tags/get?access_token=ACCESS_TOKEN

此處的access_token值就爲上一步提取到的值,由於access_token值只能用2小時,爲了不麻煩,因此設置爲全局變量爲{{token}}

操做以下圖所示:

運行一次便自動添加,設置爲全局變量後,每一次的token值都會發生改變,以下圖所示:

將這兩個接口用例保存到同一文件夾下,並運行,以下圖所示:

運行後的結果以下圖所示:

 

動態傳參

作自動化測試時,有些接口不適合把參數寫死,因此就須要動態傳遞參數

動態傳參有三種實現方式:

1.Postman有如下內建變量,適合一次性使用

    ①{{$guid}}//生成GUID
    ② {{$timestamp}}//當前時間戳
    ③{{$randomInt}}//0-1000的隨機整數
2.參數依賴上一個請求的返回
    上個請求的Tests裏提取參數存環境變量,這個請求裏用{{變量名}}取值
3.參數每次都不一樣,但以後的斷言或別的請求裏可能還要用
    在Pre-request Script裏寫代碼處理,存爲環境變量,參數裏用{{變量名}}取值
 
舉例爲百度接口,http://www.baidu.com/s?,請求方式爲GET

實現方式一:

①{{$guid}}//生成GUID
生成GUID值,操做以下圖所示:
② {{$timestamp}}//當前時間戳
時間戳是根據1970-01-01開始進行計算的,經過該方法獲取到的值,進行轉換後,就是當前的時間值
轉換地址爲: http://tool.chinaz.com/Tools/unixtime.aspx,轉換以下圖所示:

③{{$randomInt}}//0-1000的隨機整數

產生0-1000的隨機整數,可用於自動化用戶名操做,操做以下圖所示:

實現方式二:

和串行傳參方式同樣,此處再也不復述

實現方式三:

在Pre-request Script裏寫代碼處理,存爲環境變量,參數裏用{{變量名}}取值
Pre-request Script和Tests的區別:
比如如TestNG裏面的用例與前置條件
Pre-request Script是設置前置條件的,不能設置斷言,在運行Tests裏面的代碼時,會先運行Pre-request Script裏面的代碼
Tests能夠設置斷言,提取返回值等

所以,存爲環境變量,是在Pre-request Script裏寫代碼,以下圖所示:

兩種格式均可惜,任選其一便可,代碼以下所示:

postman.setGlobalVariable("value","test"+(parseInt (Math.random()*100)));//*100是指只取0~99之間的隨機值
pm.globals.set("value", "test"+(parseInt (Math.random()*100)));

 

本文僅表明做者觀點,系做者@溫一壺清酒發表。轉載請註明出處:http://www.cnblogs.com/hong-fithing/
相關文章
相關標籤/搜索