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格式如:
<xml>
<error_code>40001</error_code>
<msg>提現成功</msg>
<data>具體的數據</data>
</xml>
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.退出接口
接口文檔如下:
接口演示如下:
十一、內容太多寫不下,總結一下
如果你對此文有任何疑問,如果你也需要接口項目實戰,如果你對軟件測試、接口測試、自動化測試、面試經驗交流感興趣歡迎加入:軟件測試技術群:695458161,群里的免費資料都是筆者十多年測試生涯的精華。還有同行大神一起交流技術哦。
作者:來自公眾號:軟測之家
出處:https://blog.csdn.net/pengjiangchun
原創不易,歡迎轉載,但未經作者同意請保留此段聲明,並在文章頁面明顯位置給出原文鏈接。