使用Postman工具做接口測試(三)——斷言與參數提取


  引言

在上一篇:使用Postman工具做接口測試(二)——環境變量與請求參數格式文中講了http請求一些基本配置與使用,實現了接口的調用,接口測試並沒結束。當我們調用一個接口后,需要對其實際結果與預期結果進行判斷,如果一致,則成功,反之,則失敗。還有實際項目中,單一接口很少,通常是有關聯的業務接口測試,比如下單操作,會調用商品信息接口,而我們在請求下單接口的時候,前提是獲取商品信息接口是正常的,否則無法下單。

  下面我會以登錄為例,來講如何利用postman提取上一個接口返回數據,並且放到當前接口來使用。

 

  接口關聯(參數提取)

  下面以登錄接口為例,講一下postman如何使用參數提取,可以通過Fiddler工具對系統登錄操作進行抓包分析,本文是以公司登錄接口為例,出於保密考慮,有些地方不夠敞開,敬請諒解。

抓包后,我們得到一些參數,除登錄的賬戶、密碼,還有一些其他參數,最重要的是動態參數,什么是動態參數?就是每次登錄它都會變化,加密方式是固定的,但是動態參數一定是變化的,所以找到動態參數得獲取方式,是最關鍵的。

  請看圖:

 

 

這是一個登錄的接口,是302,它通過重定向,最終會跳到登錄url上面,返回200。這里顯然execution參數是動態的,我是已經參數化,從上個接口獲取的。先看不執行上一個接口,只執行這個登錄接口的效果:

  圖中可以看到,返回的是500,服務器錯誤,因為{{get_execution}}獲取不到值。

  ps:登錄接口是post方法!

 

  那么想得到值,必須先調上個接口獲取execuion的值。首先通過Get方法獲取到動態參數execution,如圖:

 

 

  拿到動態參數execution的值后,就可以執行登錄接口:

 

  圖中已經登錄成功,返回狀態碼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接口測試中斷言和關聯的實例,如果本文對你有一點幫助,請給小編一個贊以示鼓勵,謝謝。后面講初始化接口數據、測試用例集、測試報告。

歡迎加入測試開發交流QQ群:696400122

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM