微信公众平台接口调试工具json格式不对怎么搞_关于测试一个接口的面试题
這里有愛,有分享,有工程師們的成長日記,點藍字“軟件測試面試匯總”進行關注,微信公眾號TestMadman
http接口工具有很多如:postman、jmeter、soupUI、Java+httpclient、robotframework+httplibrary、Fidder+postman等
接口的種類和分類:webservice和http api接口
1)webservice接口是走soap協議通過http傳輸,請求報文和返回報文都是xm格式,可以通過jme、soapui工具進行測試;
2)http api接口是走http協議通過路徑來區分調用的方法,請求報文格式都是key-value形式,返回報文一般是json串,常見的請求方式有get、post請求等;
1、什么是接口測試
接口測試是測試系統組件間接口的一種測試。接口測試主要用于檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等
2、接口測試流程
需求討論,需求評審,場景設計,編寫用列,準備數據,執行測試
a)需求評審,熟悉業務和需求
b)開發提供接口文檔(必須提供接口說明、url、請求方法、請求參數、參數類型、請求參數說明及返回參數說明)
c)編寫接口測試用例
d)進行用例評審
e)提測后開始測試
f)提交測試報告
3、http協議get和post請求方式區別
get請求:從指定的服務器中獲取數據,直接在瀏覽器里輸入就可以獲取信息
post的請求:提交數據給指定的服務器處理,可以向服務器發送修改請求,從而修改服務器的,需要借助測試工具;
4、做接口測試如何分析是前段還是后端的問題?
如果發送的數據是正確的,但是后臺反饋的數據是不符合需求的,那就是后臺的問題;如果前端沒有請求接口,或者請求的時候發送數據與需求不符,那這個時候就是前端的問題了
5、session和cookies區別?
1、cookie數據存放在客戶的瀏覽器上,session數據放在服務器上。
2、cookie不是很安全,別人可以分析存放在本地的COOKIE并進行COOKIE欺騙
考慮到安全應當使用session。
3、session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能
考慮到減輕服務器性能方面,應當使用COOKIE。
4、單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。
5、所以個人建議:
將登陸信息等重要信息存放為SESSION
其他信息如果需要保留,可以放在COOKIE中
6、怎么抓取HTTPS協議?
使用Fiddler抓取HTTPS協議主要由以下幾步進行:
第一步,Fiddler截獲客戶端發送給服務器的HTTPS請求,Fiddler偽裝成客戶端向服務器發送請求進行握手 。
第二步,服務器發回相應,Fiddler獲取到服務器的CA證書, 用根證書(這里的根證書是CA認證中心給自己頒發的證書)公鑰進行解密, 驗證服務器數據簽名, 獲取到服務器CA證書公鑰。然后Fiddler偽造自己的CA證書(這里的CA證書,也是根證書,只不過是Fiddler偽造的根證書), 冒充服務器證書傳遞給客戶端瀏覽器。
第三步,與普通過程中客戶端的操作相同,客戶端根據返回的數據進行證書校驗、生成密碼Pre_master、用Fiddler偽造的證書公鑰**,并生成HTTPS通信用的對稱密鑰enc_key。
第四步,客戶端將重要信息傳遞給服務器, 又被Fiddler截獲。Fiddler將截獲的密文用自己偽造證書的私鑰解開, 獲得并計算得到HTTPS通信用的對稱密鑰enc_key。Fiddler將對稱密鑰用服務器證書公鑰**傳遞給服務器。
第五步,與普通過程中服務器端的操作相同,服務器用私鑰解開后建立信任,然后再發送**的握手消息給客戶端。
第六步,Fiddler截獲服務器發送的密文, 用對稱密鑰解開, 再用自己偽造證書的私鑰**傳給客戶端。
第七步,客戶端拿到**信息后,用公鑰解開,驗證HASH。握手過程正式完成,客戶端與服務器端就這樣建立了”信任“。
在之后的正常**通信過程中,Fiddler如何在服務器與客戶端之間充當第三者呢?
服務器—>客戶端:Fiddler接收到服務器發送的密文, 用對稱密鑰解開, 獲得服務器發送的明文。再次**, 發送給客戶端。
客戶端—>服務端:客戶端用對稱密鑰**,被Fiddler截獲后,解密獲得明文。再次**,發送給服務器端。由于Fiddler一直擁有通信用對稱密鑰enc_key, 所以在整個HTTPS通信過程中信息對其透明。
7、HTTP和HTTPS協議區別?實現機有什么不同?
1. http是超文本傳輸協議,信息是明文傳輸;https是具有安全性的ssl傳輸協議。
2. http與https使用的是不同的連接方式,端口也一樣,http默認端口是80;https默認端口是443;
3. http連接狀態比較簡單,是無狀態的;https協議是由ssl+http協議組成的可進行傳輸、身份認證的網絡協議。
8、在測試接口中怎么知道請求成功還是失敗?
根據接口請求時接口的返回狀態碼來判斷,狀態碼以4或5開頭就可以視為請求失敗
9、說出請求接口中常見的返回狀態碼?
1xx - 信息提示
2xx - 成功
3xx - 重定向
4xx - 客戶端錯誤
5xx - 服務器錯誤(200.201.204.304.400.401.403.404.410.500.503)
10、怎么設計接口測試用例?
目的:測試接口的正確性和穩定性;
原理:模擬客戶端向服務器發送請求報文,服務器接收請求報文后對相應的報文做處理并向客戶端返回應答,客戶端接收應答的過程;
重點:檢查數據的交換,傳遞和控制管理過程,還包括處理的次數;
核心:持續集成是接口測試的核心;
優點:為高復雜性的平臺帶來高效的缺陷監測和質量監督能力,平臺越復雜,系統越龐大,接口測試的效果越明顯(提高測試效率,提升用戶體驗,降低研發成本);
用例設計重點:通常情況下主要測試最外層的兩類接口:數據進入系統接口(調用外部系統的參數為本系統使用)和數據流出系統接口(驗證系統處理后的數據是否正常);
PS:設計用例時還需要注意外部接口提供給使用這些接口的外部用戶什么功能,外部用戶真正需要什么功能;
11、為什么要做接口測試?
因為不同端(前段,后端)的工作進度不一樣,所以我們要針對最開始出來的接口,以及需要調用其他公司的(銀行,支付寶,微信,qq等)
一些接口進行接口測試及驗證數據,從安全層面來說,只依賴前端進行限制已經完全不能滿足系統的安全要求(繞過前面實在太容易),需要后端同樣進行控制,在這種情況下就需要從接口層面進行驗證。前后端傳輸、日志打印等信息是否**傳輸也是需要驗證的,特別是涉及到用戶的隱私信息,如身份證,銀行卡等
12、做接口測試當請求參數多時,tps下降明顯,此接口根據參數從redis中湖區數據,每個參數與redis交互一次,當一組參數是tps5133,五組參數時tps1169,多次交互影響了處理性能,如何改進?
tps就是每秒事務數,transaction per second。
吞吐量下降是可能因為頻繁訪問redis,而頻繁訪問redis的原因是參數過多,解決的思路很容易想到:?減少參數。
我們可以把多組參數變成json字符串之類的一個參數,從而達到信息量不減少而參數個數變少的效果。
13、接口的加密測試中對稱加密和非對稱加密有什么區別嗎?如何展開測試?
對稱加密: 信息交換的雙方使用同一個密鑰加密解密,就像是用同一把鑰匙開一把鎖
非對稱加密
公開密鑰加密(英語:Public-key cryptography),也稱為非對稱加密(英語:asymmetric cryptography),是密碼學的一種算法,它需要兩個密鑰,一個是公開密鑰,另一個是私有密鑰;一個用作加密的時候,另一個則用作解密。使用其中 一個密鑰把明文加密后所得的密文,只能用相對應的另一個密鑰才能解密得到原本的明文;甚至連最初用來加密的密鑰也不能用作解密。由于加密和解密需要兩個不 同的密鑰,故被稱為非對稱加密;不同于加密和解密都使用同一個密鑰的對稱加密。雖然兩個密鑰在數學上相關,但如果知道了其中一個,并不能憑此計算出另外一 個;因此其中一個可以公開,稱為公鑰,任意向外發布;不公開的密鑰為私鑰,必須由用戶自行嚴格秘密保管,絕不通過任何途徑向任何人提供,也不會透露給要通 信的另一方,即使他被信任。
基于公開密鑰加密的特性,它還提供數字簽名的功能,使電子文件可以得到如同在紙本文件上親筆簽署的效果
14、闡述接口測試和UI測試在測試活動中是如何協同測試的?
UI與接口測試的協同可以從下面的方向考慮
UI的操作實際上就是用另一種方式調用接口,那么接口有多少種參數組合就要求UI用例要構造多少種操作進行調用
UI操作所需要的數據可以用接口來生成
接口測試可以保證數據和邏輯的準確性,UI測試需要考慮交互和界面展示的邏輯正確性
UI測試需要重視接口調用不成功或者接口異常情況下UI的呈現方式和用戶體驗
UI中可能會有一些狀態的緩存信息(這樣就不需要每次頻繁調用接口去獲取了),比如鑒權信息等,需要重點關注這些緩存的更新策略
15、在手工接口測試或者自動化接口測試的過程中,上下游接口有數據依賴如何處理?
上下游接口的數據依賴無非就是準備測試數據。
假如一個事務需要順序調用3個接口,A B C, C依賴于AB, 而AB有數據依賴,這時候就需要準備好A和B的數據。
數據一般有兩種方式生成
動態方式:假如B依賴A創造的數據,那么每次執行B之前必須執行A去做數據創建
靜態方式:獨立統一的測試數據庫, ABC需要的數據都可以從庫里拿到
16、依賴第三方數據的接口如何測試?
依賴第三方就mock掉,可以自己寫mock server
17、http接口測試和web service接口測試區別是什么?
省略
18、接口測試中依賴登錄狀態的接口如何測試?
依賴登錄態,那么每次測試該接口之前都需要調用登錄的接口
如果是jwt之類的token based auth的話,每次在調用接口時提供token就可以了
19、設計接口測試用例:設計的是電商系統,其中包括很多參數,如商品,商家,店鋪等等,針對這些數據的修改,會設計到很多參數,如商品名稱,商品尺寸,商品顏色等等。現在設計實現“修改”接口時,如何確定要傳哪些參數呢?是只需要傳入我要修改的參數還是全部參數?
修改的接口,也就是update的接口一般只需要傳:被更新了的字段?以及 被更新實體的?主鍵?比如id。
這是開發常識,如果大家研究過jsonapi規格的話,可以直接套用jsonapi的設計進行闡述。
20、目前接口文檔是有word格式管理,因迭代快,產生很多文檔,分不清那些事不用的接口,那些是正在用的接口,那些是更新后的接口,文檔雜亂,不方便管理,另外文檔是word格式,不方便查詢,如何管理?
swagger文檔可以解決這個問題。()
swagger是我用過最好用的,只是編寫相關的json比較麻煩,又不想集成在代碼中。不過可以在網站(www.sosoapi.com)上在線表單方式編寫swagger-ui對應的json哈,編輯簡單而且可以在線預覽和導入導出,挺方便的。
目前100000+人已關注加入我們
???????
???????
歡迎同學們掃描二維碼報名吧!
快,關注這個公眾號,一起漲姿勢~
軟件測試面試匯總
IT測試人的自媒體
微信號:Tester006
QQ?:?869120106
公眾號:TestMadman
長按二維碼關注吧
一起成長,一起分享,希望能對您有所幫助,我們是TestMadman,期待您的關注。
總結
以上是生活随笔為你收集整理的微信公众平台接口调试工具json格式不对怎么搞_关于测试一个接口的面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android基础知识之一
- 下一篇: 日志测试法