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 = https://www.cnblogs.com/zhuoran111/p/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 群里的免費資料都是筆者十多年測驗生涯的精華,還有同行大神一起交流技術哦,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/309389.html
標籤:Python
上一篇:python基礎教程:startswith()和endswith()的用法
下一篇:劍指offer計劃鏈表
