1. 程式人生 > 實用技巧 >postman常用test語句

postman常用test語句

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

  • var data = JSON.parse(responseBody);---這個我沒用過,先做個記錄
    JSON.parse()方法,把json字串轉化為物件。parse()會進行json格式的檢查是一個安全的函式。 如:檢查json中某個陣列元素的個數(這裡檢測programs的長度)
    var data = JSON.parse(responseBody);tests["program's lenght"] = data.programs.length === 5;
  • 1.設定環境變數 postman.setEnvironmentVariable("key", "value");// postman.setEnvironmentVariable("orgName",jsonData.content.userInfo.orgName);指定到某一個路徑節點的key
  • 2.設定全域性變數 postman.setGlobalVariable("key", "value");
  • 3.檢查response body中是否包含某個string
  • tests["Body matches string"] =responseBody.has("string_you_want_to_search");
  • 4.檢測JSON中的某個值是否等於預期的值,返回碼
  • tests["returnNO=0000"] = jsonData.returnNo ==='0000';
  • 5.轉換XML body為JSON物件 var jsonObject = xml2Json(responseBody);
  • 6.測試response Headers中的某個元素是否存在(如:Content-Type)
    tests["Content-Type is present"] = postman.getResponseHeader("Content-Type"); //getResponseHeader()方法會返回header的值;
  • 7.設定header裡的資料為變數
  • var jsonData = JSON.parse(responseBody);
  • var data = postman.getResponseHeader("Authorization");pm.environment.set("Authorization",data);
  • 8.伺服器狀態碼校驗
  • tests["Status code is 200"] = responseCode.code === 200;
  • 9.設定超時時間,超過這個時間介面會報錯
  • tests["Response time is less than 1500ms"] = responseTime < 1500;
  • 10.和上個介面比對結果--校驗當前介面的返回是否和上個接口裡取到的引數一致
  • //tests["比對結果"] = jsonData.content[1].schoolName === pm.environment.get("schoolName");//只要返回的節點下有這個變數值--推薦一個比較好用的檢視json格式的網站:http://www.bejson.com/jsonviewernew/可以輕鬆檢視層級和節點,效果是這樣的:e4ca9e6c5f24e05363fe692dd4c6341bbae.jpg
    tests["比對結果"] = responseBody.has (pm.environment.get("schoolName")); //只要返回body裡有這個變數值
  • 11.校驗介面返回是否有資料--我的程式設定的是如果當前沒有資料,則只返回content[]
  • tests["獲取第一個學生資訊結果"] = jsonData.content.items[0];//所以這句斷言可以校驗,如果content裡還有資料,則視為返回不為空
  • 12.兩種返回校驗,只要返回其中任何一個視為通過,否則報錯
  • tests["returnNO=0000|9999"] = jsonData.returnNo ==='0000' || jsonData.returnNo ==='9999'; 返回碼
  • tests["returninfo=oh yeah,通過了|票券無法使用"] = responseBody.has("oh yeah,通過了")||responseBody.has("票券無法使用");string
  • 13.//暫時常用的就這些,還有一個思路要記下,購買流程時記得把下單時產生的訂單號設定為環境變數,儲存起來,這樣結算介面的時候使用這個變數來保證每次都是產生的新訂單,結算可以成功!否則只能結算一次,下次再結算可能會提示支付失敗,因為已經支付成功過了
  • 14.pm.globals.set("type",parseInt(4*Math.random())+1);//針對不同型別的課程型別
    設定一個1到4的隨機整數,欄位名是type,parselnt是強制轉換為整數
  • 15.postman遇到unicode的返回時如何校驗?如果後臺程式碼是php的很可能會有這個問題,html或xml是unicode的格式的,轉換成json又是中文的,為難的地方是使用var jsonObject = xml2Json(responseBody);這句話並沒有用,沒有校驗到相應的中文返回;然後想了兩個迂迴的方法://postman.setEnvironmentVariable("message",jsonData.message); 先把unicode的返回欄位設定為變數,這個變數值儲存時會為中文(至少我這邊是這樣子的)
    //tests["任務狀態"] = jsonData.message === pm.environment.get("message");然後拿這個message的值的你變數時儲存的值對比,一致則為pass,但是這樣有一個問題,因為變數的獲取和對比都是一個返回裡,肯定是每次都pass的,所以要結合code返回一起檢視
  • 第二種:tests["任務狀態"] = jsonData.message === '任務狀態或者報名狀態已變更' ---這個比較直觀了,不需要設定環境變數,直接在正確的返回寫死了,然後拿返回欄位的key值去校驗,但這個也有個地方需要優化,就是當你的返回碼不同但是並不屬於報錯時,介面返回的key肯定也不一樣,所以靈活點的方法就是加個if,如果返回300則對比下面這段話,如果返回其它的而對比其它相應的返回
  • b3248b556199cd9d683156efc6f99821cca.jpg

轉載於:https://my.oschina.net/EvanDev/blog/2980173