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,或掃描下面的二維碼添加關注: