Postman進階功能

    Postman除了前面介紹的一些功能,還有其他一些小功能在日常接口測試或許用得上。今天,我們就來盤點一下,如下所示:

1.數據驅動

    想要批量執行接口用例,我們一般會將對應的接口用例放在同一個Collection中,然後再通過Runner批量執行。這種方式適用於接口用例參數固定的情況下,但也存在另一個問題,如果每次運行時,接口參數都在變化,該如何操作了?

    認真看過前面文章的童鞋可能已經猜到,將變量參數化就可以了。但這種方式,存在也存在另外一個問題,就是需要每次將參數提前設置好,比如在Pre-request Script中設置如下:

pm.environment.set("username","Surpass")
pm.environment.set("password","Surpass")

使用Pre-request Script設置環境變量並進行賦值不論運行多少次,其實還是用固定的的數據進行測試。

    既然以上兩種方式都不能解決我們的問題,那將數據寫到文件中,然後從文件中讀取是不是可以?在Postman中其實也提供了這種方式。

這種用於存放測試數據的文件,一般稱之爲測試數據集

    在Postman中測試數據集支持兩種格式csvjson

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章