在上一篇:使用Postman工具作接口測試(二)——環境變量與請求參數格式文中講了http請求一些基本配置與使用,實現了接口的調用,接口測試並沒結束。當咱們調用一個接口後,須要對其實際結果與預期結果進行判斷,若是一致,則成功,反之,則失敗。還有實際項目中,單一接口不多,一般是有關聯的業務接口測試,好比下單操做,會調用商品信息接口,而咱們在請求下單接口的時候,前提是獲取商品信息接口是正常的,不然沒法下單。html
下面我會以登陸爲例,來說如何利用postman提取上一個接口返回數據,而且放到當前接口來使用。服務器
下面以登陸接口爲例,講一下postman如何使用參數提取,能夠經過Fiddler工具對系統登陸操做進行抓包分析,本文是以公司登陸接口爲例,出於保密考慮,有些地方不夠敞開,敬請諒解。工具
抓包後,咱們獲得一些參數,除登陸的帳戶、密碼,還有一些其餘參數,最重要的是動態參數,什麼是動態參數?就是每次登陸它都會變化,加密方式是固定的,可是動態參數必定是變化的,因此找到動態參數得獲取方式,是最關鍵的。post
請看圖:測試
這是一個登陸的接口,是302,它經過重定向,最終會跳到登陸url上面,返回200。這裏顯然execution參數是動態的,我是已經參數化,從上個接口獲取的。先看不執行上一個接口,只執行這個登陸接口的效果:ui
圖中能夠看到,返回的是500,服務器錯誤,由於{{get_execution}}獲取不到值。加密
ps:登陸接口是post方法!url
那麼想獲得值,必須先調上個接口獲取execuion的值。首先經過Get方法獲取到動態參數execution,如圖:spa
拿到動態參數execution的值後,就能夠執行登陸接口:code
圖中已經登陸成功,返回狀態碼200。
下面介紹方法,在界面中找到Tests,個人第一篇文章已經介紹了這個功能是幹什麼用的,如不清楚,請從頭看。而後,編寫提取參數的JS代碼:
//定義變量 var login_execution = pm.response.text(); //match()裏面的先後兩個反斜槓是必要的 var get_login_execution = login_execution.match(/name="execution" value="(.*?)"/)[1]; //設置環境變量get_execution pm.environment.set("get_execution", get_login_execution); //打印get_execution console.log(pm.environment.get("get_execution")); //打印get_login_execution console.log(get_login_execution);
在環境變量中,添加變量名稱:get_execution,打開控制檯console,運行接口,獲取參數,如圖:
由於我打印輸出了兩次,左圖中因此顯示兩次,右圖須要設置get_execution變量爲環境變量,由於第二個接口須要使用,當前和初始值不須要填,運行腳本,獲取到的值,自動填進去。
而後執行登陸接口後,就會帶着這個參數請求。
下面來驗證登陸是否成功,能夠模擬請求登陸後的一些操做,如圖:
這是一個登陸後,查詢列表的頁面。
剛纔咱們是登陸成功了,可是咱們在實際接口測試過程當中,若是接口不少,咱們不可能經過肉眼每一個接口點開去看它的狀態碼和返回數據,這個時候斷言就派送用場了,就拿上面那個登陸後查詢列表的接口爲例,咱們知道能夠查到數據,如今換一種方式,經過斷言來判斷是否查詢成功。
注意:斷言是調用接口以後,纔去執行的,因此代碼一樣是寫在Tests裏面。
pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); pm.test("Body matches string", function () { pm.expect(pm.response.text()).to.include("周易瑩"); });
查看一下結果對比:
若是接口返回數據中包含:"周易瑩" , 而且狀態碼是200,就表示成功了,反之,則登陸失敗,由於這個接口不登陸是沒法請求。
如今演示一下,沒有登陸,去調這個接口看看:
以上就是Postman接口測試中斷言和關聯的實例,若是本文對你有一點幫助,請給小編一個贊以示鼓勵,謝謝。後面講初始化接口數據、測試用例集、測試報告。