01、接口測試
(1)服務(wù)器端(server):在使用別人的服務(wù)器上,例如微信APP客戶端,服務(wù)端在騰訊的服務(wù)端上,微信上的賬號信息,聊天記錄均存儲在服務(wù)端上;用戶A發(fā)送1條信息到服務(wù)端上,服務(wù)端再把這條信息轉(zhuǎn)發(fā)到用戶B上。
服務(wù)器使用的語言分別為:Java、Python、PHP、Go、C、C++等等
(2)客戶端(client):手機上的APP,網(wǎng)站
客戶端使用的語言分別為:object-c(IOS)、Android、HTML、CSS、JS等等
(3)接口:通過客戶端與服務(wù)端進(jìn)行交互的
(4)這么多種類的語言,造成無法識別,需要通用的數(shù)據(jù)類型進(jìn)行解析:json{},沒有json之前用的XML格式
-
XML
??:通用的數(shù)據(jù)類型
<title>接口測試
<content>服務(wù)器與客戶端需要接口進(jìn)行交互</content>
-
JSON
??:通用的數(shù)據(jù)類型,以一種鍵值對來展示:
{
"title" : "接口測試",
"content" : "服務(wù)器與客戶端需要接口進(jìn)行交
}
02、如何測試接口
1、接口:是由客戶端和服務(wù)器來進(jìn)行交互的,以及接口返回的數(shù)據(jù)一般都是json格式的數(shù)據(jù)類型。
2、接口測試基本步驟如下:
-
在接口文檔中或者其它地方,拿到接口的URL地址
-
查看接口是用什么方式發(fā)生請求(例如:get和post請求)
-
添加請求頭,請求體
-
發(fā)送查看返回結(jié)果,校驗返回結(jié)果是否正確
現(xiàn)在我也找了很多測試的朋友,做了一個分享技術(shù)的交流群,共享了很多我們收集的技術(shù)文檔和視頻教程。
如果你不想再體驗自學(xué)時找不到資源,沒人解答問題,堅持幾天便放棄的感受
可以加入我們一起交流。而且還有很多在自動化,性能,安全,測試開發(fā)等等方面有一定建樹的技術(shù)大牛
分享他們的經(jīng)驗,還會分享很多直播講座和技術(shù)沙龍
可以免費學(xué)習(xí)!劃重點!開源的?。?!
qq群號:691998057【暗號:csdn999】
3、打開接口文檔(參考:doc.nnzhp.cn)
(1)URL
(2)請求方式
(3)請求參數(shù)
(4)get請求
-
在瀏覽器上,直接輸入接口文檔中的請求URL:http://api.nnzhp.cn/api/user/stu_info,頁面報錯提示“必填參數(shù)未填寫!請查看接口文檔!”(如圖所示)
-
?基于上面中的url鏈接中不帶必填參數(shù)報錯,故需在URL中補上必填參數(shù):http://api.nnzhp.cn/api/user/stu_info?stu_name=%E5%B0%8F%E6%98%8E
-
機器學(xué)習(xí)PAI控制臺:https://pai.data.aliyun.com/console?regionId=ap-southeast-1&commodityId=&projectId=&deployFrom=&modelPath=&type=#/eas
-
?有多個必填參數(shù)時,需要在URL中添加其他必填參數(shù)用“&”拼接,例如:http://api.nnzhp.cn/api/user/stu_info?stu_name=%E5%B0%8F%E6%98%8E&age=25
(5)post請求
-
復(fù)制URL在瀏覽器打開,報錯“請求方式錯誤!請查看接口文檔”,例如如圖顯示
-
這時候需要借助postman接口工具進(jìn)行測試,前提條件:需要本地安裝postman應(yīng)用軟件(注意:如果是POST請求,選擇Params填寫參數(shù),這時URL中會自動帶上該參數(shù)信息,這種請求方式應(yīng)該是GET請求方式而不是POST請求,如圖:)
-
POST請求,應(yīng)該選擇Body選項,勾選“form-data”或者“x-www-form-urlencoded”填寫必填參數(shù),如圖所示:
-
POST請求,用戶注冊,如圖:
-
?POST請求,入?yún)閖son類型,如圖:
-
?查詢是否存在該學(xué)生信息:
-
?POST請求,Body選擇form-data,Key由Text切換File格式,進(jìn)行文件上傳,(注意:x-www-form-urlencoded沒有File格式,只有Text選項,不能上傳多媒體文件)如圖:
?4、瀏覽器進(jìn)行抓包
(1)瀏覽器打開檢查或者開發(fā)者工具,再或者檢查元素等控制臺
(2)一般查看調(diào)用接口Network(網(wǎng)絡(luò))下面的XHR調(diào)用了哪些接口
(3)請求url:https://qun.qq.com/cgi-bin/qunwelcome/myinfo?callback=?&bkn=682554596
?(4)利用Postman接口工具進(jìn)行調(diào)用接口:get_group_list
??
(5)接口search_group_members
??,多個參數(shù)進(jìn)行接口測試:
?(6)cookie和session
-
保存時間:根據(jù)需要設(shè)定
-
保存位置:客戶端
-
保存時間:用戶活動時間+一段延遲時間(登錄時提示用戶保存時間7天時間)
-
保存位置:服務(wù)器端
-
cookie:在瀏覽器存放自己本地信息數(shù)據(jù)的一個鍵值對(key-value)的地方
-
session:存放在服務(wù)端的一個鍵值對
5、GET請求方式和POST請求方式的區(qū)別:
(1)GET請求沒有請求體,只要請求頭和URL:host/api/xxx?name=xxx
(2)POST請求是有請求頭、請求體
(3)GET請求沒有POST請求安全
(4)GET請求有參數(shù)長度限制,POST沒有
03、postman接口自動化
1、測試銀行項目、金融項目會遇到加密參數(shù),需要:
(1)參數(shù)去掉加密
(2)提供一個工具,產(chǎn)生加密后的參數(shù)
(3)自己了解加密算法,然后自己加密
2、Postman中手動配置環(huán)境變量:
(1)在Postman中,有Environment和Environment,用于實現(xiàn)不同環(huán)境的管理,不同服務(wù)器環(huán)境分別為:
-
Production 生產(chǎn)環(huán)境
-
Development 開發(fā)環(huán)境
-
Local 本地局域網(wǎng)環(huán)境
(2)環(huán)境快速查看,如圖1所示? :
(3)使用Environment實現(xiàn)多服務(wù)版本管理,點擊右上角的設(shè)置,點擊【Manage Environments】,和圖2所示:
(4)在彈窗【MANAGE ENVIRONMENTS】界面中,右下角點擊“Add”,如圖:
(5)在“Add Environment”中,填寫變量名和變量值 ,如圖:
(6)配置好變量名稱和變量值后,可以在請求URL中進(jìn)行參數(shù)化:
(6)編寫腳本,腳本參數(shù)化,如同
?(7)點擊runner,配置運行參數(shù),如同:
(8)查看最后的運行結(jié)果,狀態(tài)碼為200 ok,表示運行成功,如圖:
圖中有個字段是:“This requests does not have any tests.”
需要檢查:
第一步:檢查是否變量名稱是否對應(yīng);
第二步:是否點擊了保存,再點擊Runner
第三步:是否添加了校驗
?(9)添加校驗,設(shè)置檢查
(10) postman斷言:
(11) 點擊【Tests】按鈕,右邊欄有個snippets欄,里面是postman內(nèi)置的測試腳本,輔助接口測試:
A:判斷狀態(tài)碼
Status code : Code is 200
?
對應(yīng)的腳本:
pm.test("Status code is 200", function () {
?pm.response.to.have.status(200);
? );
B:返回的response包含內(nèi)容
??Response body : Containing string
?
? ? ?對應(yīng)的腳本:
?pm.test("Body matches string", function () {
??pm.expect(pm.response.text()).to.include("string_you_want_to_search");
? ? ?});
C:返回的json數(shù)據(jù)中的值
??Response body : JSON value check
?
? ? ? 對應(yīng)的腳本為:?
pm.test("Your test name", function () {
? ? ? ?var jsonData = pm.response.json();
? ? ? ?pm.expect(jsonData.value).to.eql(100);
? ? ? ?});
D:響應(yīng)的內(nèi)容等于一個字符串
Response body : is equal to a string
?
對應(yīng)的腳本:
? ? ? ?pm.test("Body is correct", function () {
? ? ? ?pm.response.to.have.body("response_body_string");
? ? ? ?});
E:檢查響應(yīng)頭中是否有Content-Type字段
?Response headers : Content-Type header check
?
對應(yīng)的腳本:
? ? ? ?pm.test("Content-Type is present", function () {
? ? ? ?pm.response.to.have.header("Content-Type");
? ? ? ? });
F:判斷響應(yīng)的時間少于200MS
?Response time is less than 200ms
?
? ? ? ?對應(yīng)的腳本:
? ? ? ?pm.test("Response time is less than 200ms", function () {
? ? ? ?pm.expect(pm.response.responseTime).to.be.below(200);
? ? ? ? });
(12)新建集合便于將個別請求進(jìn)行分組,如圖:
04、HTTP
1、http和https的不同之處:
-
安全性不同:
http:普通的http請求,,信息明文傳輸信息,不安全;
https:具有安全性的ssl加密傳輸協(xié)議,為瀏覽器和服務(wù)器之間的通信加密,確保數(shù)據(jù)傳輸?shù)陌踩?/p>
-
連接方式不同:
http的連接很簡單,是無狀態(tài)的;
https是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議;
-
端口不同:
http協(xié)議:使用的端口是80;
https協(xié)議:使用的端口是443;
-
證書申請方式不同:
http協(xié)議:免費申請;
https協(xié)議:需要到ca申請證書,一般免費證書很少,需要交費。
2、一般完整的URL為:http://192.168.13.3:80 host/ip:port/api/user/add_stu uri
3、接口HTTP參數(shù)
-
get? ? ? --- 通過請求URL得到資源
-
POST --- 用于添加新的內(nèi)容
-
PUT? ? ---用于修改某個內(nèi)容
-
DELETE---刪除某個內(nèi)容
-
CONNECT---用于代理進(jìn)行傳輸,如使用SSL
-
OPTIONS---詢問可以執(zhí)行哪些方法
-
PATCH---部分文檔更改
-
PROPFIND(WebDAV)---查看屬性
-
PROPPATCH(WebDAV)---設(shè)置屬性
-
MKCOL(WebDAV)---創(chuàng)建集合(文件夾)
-
COPY(WebDAV)---拷貝
-
MOVE(WebDAV)---移動
-
LOCK(WebDAV)---加鎖
-
UNLOCK(WebDAV)---解鎖
-
TRACE ---用于遠(yuǎn)程診斷服務(wù)器
-
HEAD --- 類似于GET,但是不返回body信息,用于檢查對象是否存在,以及得到對象的元數(shù)據(jù)
-
請求頭包含許多有關(guān)客戶端環(huán)境和請求正文的又用信息。如圖所示:例如語言種類和狀態(tài)碼
-
json 格式?
-
xml? 格式
-
html 格式
-
二進(jìn)制格式(多用于圖片)
-
字符串格式
-
http請求方式:
-
http請求頭(headers)
-
http請求體(body):請求體即為請求等正文。
?4、用戶接口可以通過以下4種不同方式的請求來做不同的事情:
(1)獲取數(shù)據(jù),用“GET”方式,成功了返回HTTP狀態(tài)碼:200
(2)創(chuàng)建數(shù)據(jù),用“POST”方式,成功了返回HTTP狀態(tài)碼:201
(3)修改數(shù)據(jù),用“PUT”方式,成功了返回HTTP狀態(tài)碼:203
(4)刪除數(shù)據(jù),用“DELETE”方式,成功了返回HTTP狀態(tài)碼:204
5、HTTP狀態(tài)嗎:
(1)請求消息(1字頭)例如:100 Continue(請繼續(xù))
(2)請求成功 (2字頭)例如:200 OK(請求已成功)
(3) 重定向 (3字頭)例如:300 Multiple Choice(多項選擇,會返回一個選項列表)
(4) 客戶端請求錯誤 (4字頭)例如:400 Bad Request (錯誤請求)? 403 Forbidden(禁止)? 404 Not Found(沒有找到)
(5)服務(wù)器錯誤(5、6字開頭)例如:500 Internal Server(內(nèi)部錯誤) 502 Bad Gateway(代理或者網(wǎng)關(guān)下一鏈路收到未響應(yīng))?
詳細(xì)查看HTTP狀態(tài)碼、HTTP Status Code、HTTP常見狀態(tài)碼查詢:https://tool.oschina.net/commons?type=5
下面是配套資料,對于做【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!
最后: 可以在公眾號:程序員小濠 ! 免費領(lǐng)取一份216頁軟件測試工程師面試寶典文檔資料。以及相對應(yīng)的視頻學(xué)習(xí)教程免費分享!,其中包括了有基礎(chǔ)知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進(jìn)階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構(gòu)開發(fā)測試框架、性能測試、安全測試等。文章來源:http://www.zghlxwxcb.cn/news/detail-861083.html
如果我的博客對你有幫助、如果你喜歡我的博客內(nèi)容,請 “點贊” “評論” “收藏” 一鍵三連哦!文章來源地址http://www.zghlxwxcb.cn/news/detail-861083.html
到了這里,關(guān)于接口自動化測試:Postman實戰(zhàn)教程!的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!