以前的博客,對接口的定義、目的和分類等知識作了一個簡單介紹。臨時起意,這篇博客,就說說作接口測試,須要哪些基本的技能點吧,也算是小白入門掃盲。。。html
一、什麼是接口測試?mysql
定義:測試系統組件間接口的一種測試。主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點,重點是檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等;算法
目的:測試接口的正確性和穩定性;sql
原理:模擬客戶端向服務器發送請求報文,服務器接收請求報文後對相應的報文作處理並向客戶端返回應答,客戶端接收應答的過程;數據庫
重點:檢查數據的交換,傳遞和控制管理過程,還包括處理的次數;編程
核心:持續集成是接口測試的核心;安全
優勢:爲高複雜性的平臺帶來高效的缺陷監測和質量監督能力,平臺越複雜,系統越龐大,接口測試的效果越明顯(提升測試效率,提高用戶體驗,下降研發成本);服務器
用例設計重點:一般狀況下主要測試最外層的兩類接口:數據進入系統接口(調用外部系統的參數爲本系統使用)和數據流出系統接口(驗證系統處理後的數據是否正常);oracle
PS:設計用例時還須要注意外部接口提供給使用這些接口的外部用戶什麼功能,外部用戶真正須要什麼功能;框架
二、接口測試須要會什麼?
①瞭解系統及內部各個組件之間的業務邏輯交互;
②瞭解接口的I/O(input/output:輸入輸出);
③瞭解協議的基本內容,包括:通訊原理、三次握手、經常使用的協議類型、報文構成、數據傳輸方式、常見的狀態碼、URL構成等;
④經常使用的接口測試工具,好比:jmeter、loadrunner、postman、soapUI等;
⑤數據庫基礎操做命令(檢查數據入庫、提取測試數據等);
⑥常見的字符類型,好比:char、varchar、text、int、float、datatime、string等;
三、如何學這些技能?
①系統間業務交互邏輯:經過需求文檔、流程圖、思惟導圖、溝通等不少渠道和方式;
②協議:推薦《圖解http》這本書,內容生動,相對算是入門級的書籍,其餘的還有《圖解tcp、IP》等;
③接口測試工具:百度這些工具,而後你會發現,好多的教學博客、相關問題解決方案、以及一些基於工具的書籍,固然,選擇合適的書很重要;
④數據庫操做命令:學習網站(W3C、菜鳥教程)、教學博客,以及一些數據庫相關書籍,入門級推薦:《mysql必知必會》、《oracle PL/SQL必知必會》等
⑤字符類型:仍是百度,有句話這麼說:內事不決問百度,外事不決問Google。。。
四、如何獲取接口相關信息?
通常的企業,都會由開發或者對應的技術負責人員編寫接口文檔,裏面會註明接口相關的地址、參數類型、方法、輸入、輸出等信息,若是沒有,想辦法獲取。。。
接口文檔八要素:
封面:封面最好是本公司規定的封面,有logo,內容標題,版本號,公司名稱,文檔產生日期;
修訂歷史:表格形式較好些,包括:版本、修訂說明、修訂日期、修訂人、審覈時間審覈人等;
接口信息:接口調用方式,經常使用的GET/POST方式,接口地址;
功能描述:簡潔清晰的描述接口功能,好比:接口獲取的信息不包括哪些;
接口參數說明:每一個參數都要和實際中調用的同樣,包括大小寫;參數的含義言簡意賅的說明,格式,是string 仍是int 仍是long等格式;
說明部分,說明參數值是須要哪裏提供,並詳細說明參數怎麼生成的,例如時間戳,是哪一個時間段的,參數是否必填,一些參數是必需要有的,有些是可選參數等;
返回值說明:
①最好有一個模板返回值,並說明每一個返回參數的意義;
②提供一個真實的調用接口,真實的返回值;
調用限制,安全方面:
加密方式,或者本身公司一個特殊的加密過程,只要雙方採用一致的加密算法就能夠調用接口,保證了接口調用的安全性,好比常見的md5;
文檔維護:文檔在維護的時候,若有修改必定要寫上修改日期,修改人,對大的修改要有版本號變動;
五、如何進行進行接口測試?
若是經歷了上面的幾個場景以後,關於接口測試如何作,相信大部分人都應該能夠進行。至於採用何種工具,以及執行測試中遇到的問題,請百度!!!
博客、文庫、各大測試羣的羣文件,教程書籍,不少不少,只要稍微動動手,動動腦子,通常的問題均可以獲得解決。。。
麻省理工校訓:Mens et Manus (Mind and Hand)————動手,動腦!!!
六、自動化接口測試
前面說過,接口測試的核心就是持續集成,而自動化測試,能夠提高工做效率,下降成本,接口測試的自動化,就顯得頗有必要。
至於接口自動化的框架,能夠說有不少種,根據使用的工具不一樣、我的擅長的編程語言、工做環境須要等狀況,靈活性較大。
我我的比較熟悉的框架:jmeter+maven+Jenkins+mysql+dubbo。。。
七、其餘
工程師指具備從事工程系統操做、設計、管理、評估能力的人員。工程師的稱謂,一般只用於在工程學其中一個範疇持有專業性學位或相等工做經驗的人士。 ————百度百科
IT行業,是一個知識密集型產業,軟件測試工程師,應該也具備相應的知識、技能,即:核心競爭力。
持續學習必不可少,不要讓本身很容易被替代!!!
新技術的正確學習方式: