Postman之關聯設置和參數化實現


一、關聯設置

在實際的接口測試中,后一個接口經常需要用到前一個接口返回的結果,從而讓后一個接口能夠正常執行。

關聯操作步驟如下:

1.利用postman獲取上一個接口指定返回值

2.使用postman全局變量保存上一個接口的值,代碼如下:

postman.setGlobalVariable("全局變量名",str);其中前面的參數為全局變量名稱,后買你為變量

3.使用{{全局變量名}}引用

例如:設置access_token為全局變量並引用

第一步:在Tests頁簽中獲取返回值access_tokens

var data=JSON.parse(responseBody);
postman.setGlobalVariable("access_token",data.access_token);

第二步:引用變量access_token

 

 二、內置參數化實現

1.postman自帶三個變量

  {{$guid}}//生成GUID

  {{$timestamp}}//當前時間戳

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

2.在Pre-request Script頁簽中使用代碼實現:

  Pre-request Script頁簽為執行接口請求之前要做的操作,而Tests是執行完請求要做的操作,內建變量一般放在Requests里,我們也可以用代碼在Pre-request Script頁簽中實現,好處是可以

可復用,精准斷言。

2.1時間戳參數化

Pre-request Script頁簽中輸入:

  var time=Date.now();
  pm.globals.set("pretime", time);

URL地址輸入:

  https://www.baidu.com/s?wd={{pretime}}

Tests頁簽中輸入:

  var time=pm.globals.get("pretime");

  tests["case01 判斷百度標簽是否和百度搜索相同"]=responseBody.has(time)

2.2GUID參數化

Pre-request Script頁簽中輸入:

  const guid='xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
  .replace(/x/g,()=>(Math.floor(Math.random()*16)).toString(16))
  .replace(/x/g,()=>(Math.floor(Math.random()*4+8)).toString(16))
  pm.globals.set("preguid", guid);

URL地址輸入:

  https://www.baidu.com/s?wd={{preguid}}

Tests頁簽中輸入: 

  var guid=pm.globals.get("preguid");
  tests["case01 判斷百度標簽是否和百度搜索相同"]=responseBody.has(guid)

2.3隨機整數參數化

 

 

 

 

 

 2.4從多個選擇中實現參數化

 

 

 

 2.5設置隨機手機號

 

 

三、外部參數化實現

  在postman中,除了上述兩種方法實現參數化,還可以利用外部數據文件(支持csv文件和包含json格式文本的數據)。外部數據文件目前是通過Runner頁簽導入。

  json文件需要確保文件中有鍵值對數組。數組中的每個元素是鍵值對對象,代表一次迭代。key作為為request中要使用的變量名,value作為keyde取值。

 步驟:

1.准備測試數據(csv格式或者json格式)

csv格式數據

 

 

 json格式數據

 

 2.在postman腳本中,HTTPrequest中使用{{key}}引用,在script中使用data.key或者data["key"]取一i你用

3.打開Runner窗口,點擊Data旁邊的select File按鈕,導入參數化文件

4.點擊data file type類型后,點擊preview按鈕,檢查數據是否正確,如果不正確,調整數據文件格式或編碼

5.設置迭代次數,每次迭代都將使用數據文件中的一行,如果迭代次數超過數據文件中的行數,將重復使用最后一行

例:百度搜索數據參數化

第一步,准備參數化文件

 

 第二步,引用參數

 

 

 

 第三步:導入文件

 

 第四步:查看數據是否正確

 

 第五步:設置迭代次數和延遲時間

 

 第六步:設置好后點擊run執行

 

 

 


免責聲明!

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



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