全網最全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 群里的免費資料都是筆者十多年測試生涯的精華。還有同行大神一起交流技術哦。

 


免責聲明!

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



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