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


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

用Postman做接口測試的時候,要把多條用例一起執行,就需要把用例連接起來,一次性執行

 

目錄

串行傳參

動態傳參

 

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

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

其次獲取access_token

接口調用說明:

https請求方式: GET,

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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM