? ? Postman除了前面介紹的一些功能,還有其他一些小功能在日常介面測驗或許用得上,今天,我們就來盤點一下,如下所示:
1.資料驅動
? ? 想要批量執行介面用例,我們一般會將對應的介面用例放在同一個Collection中,然后再通過Runner批量執行,這種方式適用于介面用例引數固定的情況下,但也存在另一個問題,如果每次運行時,介面引數都在變化,該如何操作了?
? ? 認真看過前面文章的童鞋可能已經猜到,將變數引數化就可以了,但這種方式,存在也存在另外一個問題,就是需要每次將引數提前設定好,比如在Pre-request Script中設定如下:
pm.environment.set("username","Surpass")
pm.environment.set("password","Surpass")
使用Pre-request Script設定環境變數并進行賦值不論運行多少次,其實還是用固定的的資料進行測驗,
? ? 既然以上兩種方式都不能解決我們的問題,那將資料寫到檔案中,然后從檔案中讀取是不是可以?在Postman中其實也提供了這種方式,
這種用于存放測驗資料的檔案,一般稱之為測驗資料集
? ? 在Postman中測驗資料集支持兩種格式csv和json
- csv格式
username,password
Surpass,Surpass
Kevin,Kevin
Diana,Diana
...
- json格式
[
{
"username": "Surpass",
"password": "Surpass"
},
{
"username": "Kevin",
"password": "Kevin"
},
{
"username": "Diana",
"password": "Diana"
}
]
資料格式類似于表格,第一行對應變數名,后面資料對應相應的測驗資料
? ? 下面來看看操作步驟:
- 1、打開Run Collection界面,填寫運行次數、匯入測驗資料集,最后點擊Run Collection

- 2、運行結果如下所示:

2.定期任務
? ? Postman提供了一個Monitor功能,支持提交具有定時功能的測驗任務,可以按設定的定時器執行介面用例,操作如下所示:

3.介面依賴
? ? 介面依賴就是在執行一個介面時,其資料會依賴于其他介面,其本質上是一個介面資料傳遞的問題,例如:比如在洗掉用戶時,必須要求攜帶相應的token,而token則是在用戶登錄后才會產生,
3.1 介面執行順序
- 1.默認執行順序
? ? 在Postman中默認的執行順序,是按照在Collection中的目錄順序執行,即從上到下依次執行,

- 2.自定義執行順序
? ? 如果按默認的目錄順序執行,通常無法其業務需求,好在Postman提供了一個函式 postman.setNextRequest("你要跳轉的介面名"),支持跳轉到指定介面執行,例如:在執行完介面用戶查詢后,跳過介面用戶新增,直接跳轉執行修改密碼,示例如下所示:
-
- 1、在用戶查詢介面Tests中添加如下代碼:
if(pm.response.code == 200 && pm.response.text().toString().indexOf("username")!=-1 ){
// 如果 回應碼為 200 且 回傳body中包含username,則代表查詢成功
pm.test["query"] = true;
var responseBody=pm.response.json()
var username=responseBody.args.username
var password=responseBody.args.password
pm.environment.set("modifyUsername",username)
pm.environment.set("modifyPassword",password)
console.log("go to request : 修改密碼")
postman.setNextRequest("修改密碼")
}
else{
pm.test["query"] = false
}
-
- 2、在修改密碼介面中Tests中添加如下所示:
console.log("run 修改密碼介面")
var responseBody=pm.response.json()
var username=responseBody.form.username
var password=responseBody.form.password
console.log("修改密碼介面 - username",username,"修改密碼介面 - password",password)
-
- 3、查看運行結果如下所示:

? ? 在使用自定義介面執行順序時,需要注意以下幾點:
postman.setNextRequest()僅在運行集合測驗時生效,即在Run Collection時才生效,單獨運行介面時不生效
postman.setNextRequest()在運行時,在跳轉時會忽略跳轉時中間包含的介面,跳轉后的介面如果仍然有介面則繼續運行后續介面,即如果有介面A/B/C/D/E/F,如果設定的跳轉條件為A->D,則最終執行的介面順序為A->D->E->F,B和C介面被忽略
跳轉指定的介面必須位于同一個Collection內
postman.setNextRequest()函式不管在Tests腳本中何處被呼叫,它都只在當前腳本最后才被真正執行,
原文地址:https://www.jianshu.com/p/02b93f773057
本文同步在微信訂閱號上發布,如各位小伙伴們喜歡我的文章,也可以關注我的微信訂閱號:woaitest,或掃描下面的二維碼添加關注:

作者: Surpassme
來源: http://www.jianshu.com/u/28161b7c9995/
http://www.cnblogs.com/surpassme/
宣告:本文著作權歸作者所有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出 原文鏈接 ,否則保留追究法律責任的權利,如有問題,可發送郵件 聯系,讓我們尊重原創者著作權,共同營造良好的IT朋友圈,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/499762.html
標籤:其他
