1. 程式人生 > 其它 >全網最全postman介面測試教程和專案實戰~從入門到精通!!!

全網最全postman介面測試教程和專案實戰~從入門到精通!!!

Postman實現介面測試內容大綱一覽:

一、什麼是介面?為什麼需要介面?

介面指的是實體或者軟體提供給外界的一種服務。

因為介面能使我們的實體或者軟體的內部資料能夠被外部進行修改。從而使得內部和外部實現資料互動。所以需要介面。
比如:

硬體介面:USB介面:它的作用是使電腦能夠和U盤等外部裝置互動資料。

軟體介面:右稱:API(application program interface):微信提現功能呼叫銀聯介面實現資料互動。

二、介面返回的資料格式。
1.json格式如:

{‘error_code’:40001,msg:‘提現成功’,data:[具體的資料]}
error_code(code):錯誤碼
msg(message):對錯誤碼的中文說明
data(result):具體的資料

目前80%-90%多會返回這個json格式:
json資料格式是由以下兩種資料組成:(可以互相巢狀)
a.字典,{鍵值對}
b.陣列:[12,13,14]
驗證json格式以及可以做加密和解密:https://www.bejson.com/
2.xml格式如:
<error_code>40001</error_code>
提現成功
具體的資料
3.html格式如:

<html>
<head>
<title></title>
</head>
<body></body>
</html>

二、介面返回的資料格式。

1.http協議:地址以https//開頭:這裡重點講解http協議,因為目前市面上80%的介面都是使用這種協議!

(1) 什麼是http協議
http協議是一種超文字傳輸協議。主要用於瀏覽器和伺服器之間互動資料。互動資料分為兩個部分:
請求:get(獲取資料),post(提交資料),put(修改資料),delete(刪除資料)
響應:用數字來表示響應的結果
1XX資訊
2XX成功
3XX重定向(跳轉)
4XX客戶端錯誤
5XX伺服器錯誤
(2)http協議請求詳解

請求行(請求方式,請求地址,協議的版本)
POST http://localhost/phpwind/index.php?m=u&c=login&a=dorun HTTP/1.1
請求頭
Host: localhost(請求的主機地址)
Connection: keep
-alive(這個連線儲存活躍) Content-Length: 110(請求的內容有110個位元組) Accept: application/json, text/javascript, /; q=0.01(客戶端可以接收的資料格式) X-Requested-With: XMLHttpRequest(ajax請求,非同步請求) User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36(客戶端的使用者) Content-Type: application/x-www-form-urlencoded; charset=UTF-8(內容的格式) Referer: http://localhost/phpwind/index.php?m=u&c=login(來源) Accept-Encoding: gzip, deflate, br(壓縮方式) Accept-Language: zh-CN,zh;q=0.9(語言) Cookie: csrf_token=2c76c391ab3922fe; (cookie資訊) 空一行 請求資料 username=admin&password=123456&backurl=http%3A%2F%2Flocalhost%2Fphpwind %2F&invite=&csrf_token=2c76c391ab3922fe

(3) http協議響應詳解

空一行響應行(協議,響應碼,響應資訊)
HTTP/1.1 200 OK
響應頭
Date: Tue, 02 Jun 2020 13:09:47 GMT
Server: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45
X-Powered-By: PHP/5.4.45
Set-Cookie: z92_lastvisit=1409%091591103387%09%2Fphpwind%2Findex.php%3Fm%3Du%26c%3Dlogin
%26a%3Ddorun; expires=Wed, 02-Jun-2021 13:09:47 GMT; path=/
Vary: Accept-Encoding
Content-Length: 310
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html
空一行

響應資料
{“refresh”:false,“state”:“success”,“data”:"",“html”:"",“message”:[""],"__error":""}
2.webservice協議:地址以https://開頭,但是包含一個?wsdl

3.dubbo協議:以dubbo://開頭

四、企業當中如何做介面測試?
1.得到api介面文件,熟悉介面業務,介面地址,鑑權,入參,出參,錯誤碼。
2.編寫介面測試計劃方案以及評審。
3.編寫介面測試用例以及評審

思路:
正例:
鑑權反例:
鑑權碼為空,錯誤的鑑權碼,鑑權碼已過期…
引數反例:
引數為空,引數型別異常,引數長度異常,
其他場景:
分頁場景:(0,第一頁1,中間頁5,最後一頁10,100,其他異常)

4.使用介面測試工具執行介面測試
5.輸出介面測試報告。

五、介面測試工具Postman介紹
Postman是一款功能強大的網頁除錯與傳送HTTP請求的Chrome外掛,專為介面而生。介面功能如下:

六、使用Postman執行介面測試頁籤和傳參說明
(1) Postman請求主要頁籤說明:

Params:get請求傳參

Headers:請求頭
Body:post請求傳參

1.none沒有引數
2.form-data:傳檔案和鍵值對
3.x-www… 傳鍵值對
4.raw:傳text,json,xml
5.binary:傳檔案的二進位制。

Pre-request Script:請求之前的指令碼
Tests:請求之後的斷言指令碼,用於判斷請求是否成功!

(2) Postman響應主要頁籤說明:

Body:響應的資料(Pretty:json格式,Raw:文字格式,Preview:網頁格式)
Cookies:快取
Headers:響應頭
Test Results:斷言的結果

(3) Postman返回碼和返回狀態資訊說明

Status:200返回碼

OK:返回資訊

Time:170ms 毫秒

Size:343B 位元組

七、Postman斷言

//斷言:判斷介面有沒有成功,常用的斷言如下:

//1.斷言返回碼為200
pm.test(“Status code is 200”, function () {
pm.response.to.have.status(200);
});
//2.斷言返回的結果中中包括access_token字串。
pm.test(“Body matches string”, function () {
pm.expect(pm.response.text()).to.include(“access_token”);
});
//3.斷言返回的json資料中的值:斷言expires_in的值為7200
pm.test(“Your test name”, function () {
var jsonData = pm.response.json();
pm.expect(jsonData.expires_in).to.eql(7200);
});
//4.斷言響應的內容等於一個字串
pm.test(“Body is correct”, function () {
pm.response.to.have.body(“response_body_string”);
});
//5.檢查響應頭中是否有Content-Type欄位
pm.test(“Content-Type is present”, function () {
pm.response.to.have.header(“Content-Type”);
});
//6.斷言響應的時間少於200MS

pm.test(“Response time is less than 200ms”, function () {
pm.expect(pm.response.responseTime).to.be.below(300);
});

八、Postman環境變數和全域性變數

1.在右上角的齒輪圖示中可以設定環境變數和全域性變數,如:
開發環境:url:192.168.0.1
測試環境:url:192.168.0.2
預釋出環境:url:192.168.0.3
線上環境:url:www.xxx.com
2.在請求時:通過{{}}去呼叫全域性變數

3.在執行時:選擇不同的環境

九、上一個介面的返回值如何作為下一個介面的引數
1.上一個介面的tests中取值:
//JSON.parse把返回的值轉化成一個vjson格式的資料,儲存到value這個變數中
var value = JSON.parse(responseBody)
//把取得的token值儲存到全域性變數的access_token變數中。
pm.globals.set(“access_token”, value.access_token);

2.下一個介面通過{{access_token}}取值

十、PHPWIND論壇API專案實戰
此專案筆者列舉出有如下介面:
1.訪問專案介面
2.登入介面
3.跳轉到登入成功頁面介面
4.選板塊介面
5.點選新板塊介面
6.發帖介面
7.跳轉到發帖成功介面
8.回帖介面
9.跳轉到回帖成功頁面介面
10.退出介面
介面文件如下:

介面演示如下:

十一、內容太多寫不下,總結一下
如果你對此文有任何疑問,如果你也需要介面專案實戰,如果你對軟體測試、介面測試、自動化測試、面試經驗交流感興趣

歡迎加入: Python自動化測試技術群: 953306497 群裡的免費資料都是筆者十多年測試生涯的精華。還有同行大神一起交流技術哦。