接口

什么是接口

在XX公司有兩個項目,《員工信息管理系統(tǒng)-信管》、《員工考勤管理系統(tǒng)-考管》,其中信管系統(tǒng)中保存中公司所有員工信息,包括:ID,姓名,年齡,入職時間,職位等信息。而考管系統(tǒng)正在開發(fā)中,考管系統(tǒng)要用到信管系統(tǒng)中的員工信息,那么怎么樣才能拿到信息呢?

將信管系統(tǒng)中的數(shù)據(jù)庫拷貝到考管中一份。

a) 不好維護,員工有變動不能第一時間通知考管系統(tǒng)
b) 需要了解數(shù)據(jù)結(jié)構(gòu),不然不能對數(shù)據(jù)庫中數(shù)據(jù)進行操作。
考管系統(tǒng)直接連接信管的數(shù)據(jù)庫
a) 需要了解數(shù)據(jù)結(jié)構(gòu),不然不能對數(shù)據(jù)庫中數(shù)據(jù)進行操作。
在信管系統(tǒng)中寫一個接口,接收信管發(fā)送過來的請求,處理后返回相關(guān)信息。
a) 不需要維護新的數(shù)據(jù)庫,不需要了解數(shù)據(jù)結(jié)構(gòu),只需要了解這個接口的參數(shù)即可。
??前兩種就不介紹了,第三種方法,添加了一個接口,降低開發(fā)成本,和運維成本,完
成考管系統(tǒng)對員工信息的需求。

那么接口是什么:

接口就是內(nèi)部模塊對模塊,外部系統(tǒng)對其他服務(wù)提供的一種可調(diào)用或者連接的能力的標準。就好比信管系統(tǒng)對考管系統(tǒng)提供的接口服務(wù),他是系統(tǒng)向外接提供的一種用于數(shù)據(jù)傳輸?shù)囊粋€服務(wù),只要滿足接口定義協(xié)議,就能調(diào)用接口,實現(xiàn)數(shù)據(jù)傳輸功能。

接口的分類:

外部接口: 一個程序?qū)o另一個程序的服務(wù)。
內(nèi)部接口: 一個程序中一個接口需要另一個接口提供的數(shù)據(jù)。

http協(xié)議請求方法介紹:

常見的接口分類http:get,post,delete,put 等等。但是呢,我我做的接口測試 還真的就用過一個請求方法,就是 POST 方式提交的JSON數(shù)據(jù)。

系統(tǒng)對外的接口:

比如你要從別的網(wǎng)站或服務(wù)器上獲取資源或信息,別人肯定不會把數(shù)據(jù)庫共享給你,他只能給你提供一個他們寫好的方法來獲取數(shù)據(jù),你引用他提供的接口就能使用他寫好的方法,從而達到數(shù)據(jù)共享的目的。

程序內(nèi)部的接口:

方法與方法之間,模塊與模塊之間的交互,程序內(nèi)部拋出的接口,比如bbs系統(tǒng),有登錄模塊、發(fā)帖模塊等等,那你要發(fā)帖就必須先登錄,那么這兩個模塊就得有交互,它就會拋出一個接口,供內(nèi)部系統(tǒng)進行調(diào)用。

接口分類:

web service 接口

webService接口是走soap協(xié)議通過http傳輸,請求報文和返回報文都是xml格式的,我們在測試的時候都用通過工具才能進行調(diào)用,測試。

http api接口

http api接口是走http協(xié)議,通過路徑來區(qū)分調(diào)用的方法,請求報文都是key-value形式的,返回報文一般都是json串,有g(shù)et和post等方法,這也是最常用的兩種請求方式。

GET和POST的區(qū)別
  1. Get是不安全的,因為在傳輸過程,數(shù)據(jù)被放在請求的URL中;Post的所有操作對用戶來說都是不
    可見的。
  2. Get傳送的數(shù)據(jù)量較小,這主要是因為受URL長度限制;Post傳送的數(shù)據(jù)量較大,一般被默認為不
    受限制。
  3. Get執(zhí)行效率卻比Post方法好。Get是form提交的默認方法。
JSON是什么?

JSON是一種通用的數(shù)據(jù)類型。JSON的本質(zhì)是字符串,可以轉(zhuǎn)換為Python中的字典類型key-value的形式。

接口API與SDK介紹

API是接口的一種,在程序交互中具有重要的作用。
而SDK與API有著密不可分的關(guān)系。
總的來說,兩者沒有值得比較的區(qū)別,因為是具有關(guān)聯(lián)性的兩種東西。

API的概念
定義

API(Application Programming Interface)是一些預(yù)先定義的函數(shù),或指軟件系統(tǒng)不同組成部分銜接的約定。
也可以理解為是兩個應(yīng)用程序之間通信的機制,或者使用一組規(guī)則和協(xié)議的組件或計算機硬件。

目的

提供應(yīng)用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源代碼,或理解內(nèi)部工作機制的細節(jié)。

使用的地方

API被編寫并使用在以下幾個地方:
基于web的應(yīng)用程序
電腦操作系統(tǒng)
數(shù)據(jù)庫系統(tǒng)
計算機硬件
軟件庫
上面是很廣義的API的概念,包含了硬件和軟件,但我們常說的API其實是很狹義的Web Service或者說 Web API。

人和程序交互的叫做UI(user interface),所有人輸入的包括鼠標鍵盤觸摸屏聲音輸入都算。
程序和程序交互叫做API,所有非人對非人交互都通過API進行傳遞數(shù)據(jù),觸發(fā)功能。

SDK的概念

SDK即“軟體開發(fā)工具包”,軟件工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合。指由第三方服務(wù)商提供的實現(xiàn)軟件產(chǎn)品某項功能的工具包。

通常SDK是由專業(yè)性質(zhì)的公司提供專業(yè)服務(wù)的集合,比如提供安卓開發(fā)工具、或者基于硬件開發(fā)的服務(wù)等。也有針對某項軟件功能的SDK,如推送技術(shù)、圖像識別技術(shù)、移動支付技術(shù)、語音識別分析技術(shù)等,在互聯(lián)網(wǎng)開放的大趨勢下,一些功能性的SDK已經(jīng)被當(dāng)作一個產(chǎn)品來運營。

開發(fā)者不需要再對產(chǎn)品的每個功能進行開發(fā),選擇合適穩(wěn)定的SDK服務(wù)并花費很少的經(jīng)歷就可以在產(chǎn)品中集成某項功能。

SDK和API的區(qū)別

實際上SDK包含了API的定義,API定義一種能力,一種接口的規(guī)范,而SDK可以包含這種能力、包含這種規(guī)范。但是SDK又不完完全全只包含API以及API的實現(xiàn),它是一個軟件工具包,它還有很多其他輔助性的功能。
SDK 包含了使用 API 的必需資料,所以人們也常把僅使用 API 來編寫 Windows 應(yīng)用程序的開發(fā)方式叫做“SDK編程”。

通俗語言解釋

API: 前端調(diào)用后端數(shù)據(jù)的一個通道,就是我們俗說的接口,通過這個通道,可以訪問到后端的數(shù)據(jù),但是又無需調(diào)用源代碼。
SDK: 工程師為輔助開發(fā)某類軟件的相關(guān)文檔、范例和工具的集合,使用SDK可以提高開發(fā)效率,更簡單的接入某個功能。
舉例說明: 一個產(chǎn)品想實現(xiàn)某個功能,可以找到相關(guān)的SDK,工程師直接接入SDK,就不用再重新開發(fā)了。

為什么做接口測試

接口測試介紹

接口測試是測試系統(tǒng)組件間 接口 的一種測試。
主要用于 檢測外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個子系統(tǒng)之間的交互點。測試的重點是要檢查數(shù)據(jù)的交換,傳遞和控制管理過程,以及系統(tǒng)間的相互邏輯依賴關(guān)系等。

為什么做接口測試

接口測試是測試系統(tǒng)組件間接口的一種測試。接口測試主要用于檢測外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個子系統(tǒng)之間的交互點。測試的重點是要檢查數(shù)據(jù)的交換,傳遞和控制管理過程,以及系統(tǒng)間的相互邏輯依賴關(guān)系等。

由于如今的系統(tǒng)復(fù)雜度不斷上升,傳統(tǒng)的測試方法成本急劇增加且測試效率大幅下降,所以就要做接口測試。同時,接口測試相對容易實現(xiàn)自動化持續(xù)集成,且相對UI自動化也比較穩(wěn)定,可以減少人工回歸測試人力成本與時間,縮短測試周期,支持后端快速發(fā)版需求。接口持續(xù)集成是為什么能低成本高收益的根源。

現(xiàn)在很多系統(tǒng)前后端架構(gòu)是分離的,從安全層面來說,只依賴前端進行限制已經(jīng)完全不能滿足系統(tǒng)的安全要求(繞過前面實在太容易), 需要后端同樣進行控制,在這種情況下就需要從接口層面進行驗證。前后端傳輸、日志打印等信息是否加密傳輸也是需要驗證的,特別是涉及到用戶的隱私信息,如身份證,銀行卡等。

接口測試怎么做

后端接口測試測什么?
從下面這張圖可以看出后端接口測試主要測了些什么:

怎么做接口測試

一般情況下,由于我們項目前后調(diào)用主要是基于http協(xié)議的接口,所以測試接口時主要是通過工具或代碼模擬http請求的發(fā)送和接收。所以我們下面整理了一下使用Jmeter工具進行http接口測試。

開發(fā)接口測試案例的整體方案

第一步: 分析出測試需求,并拿到開發(fā)提供的接口說明文檔。
第二步: 從接口說明文檔中整理出接口測試案例,里面要包括詳細的入?yún)⒑统鰠?shù)據(jù)以及明確的格式和檢查點。
第三步: 和開發(fā)一起對接口測試案例進行評審。
第四步: 結(jié)合開發(fā)庫,準備接口測試案例中的入?yún)⒑统鰠?shù)據(jù),并整理成csv格式的文件。
第五步: 結(jié)合接口測試案例文檔和csv格式的數(shù)據(jù)文檔,做接口測試案例的自動化案例開發(fā)。

接口測試流程

接口自動化適用場景

測試前置、開發(fā)自測:
??一個新的自動化接口測試案例開發(fā)完成后,直接發(fā)給接口對應(yīng)的開發(fā),安排在開發(fā)本地環(huán)境執(zhí)行,一旦開發(fā)確認完成接口開發(fā),就開始執(zhí)行接口測試案例,基本上可以實時拿到測試結(jié)果,方便開發(fā)快速做出判斷。(開發(fā)本地運行的方式就是打開JMeter工具,導(dǎo)入JMX文件,開始執(zhí)行可。)

回歸測試:

開發(fā)本地測試通過后,或整個需求手工測試通過后,把自動化的接口測試案例做分類整理,挑選出需要納入到回歸測試中的案例,在持續(xù)集成環(huán)境重新準備測試數(shù)據(jù),并把案例納入到持續(xù)集成的job中來,這些用于回歸的接口測試案例需要配置到持續(xù)集成平臺自動運行。

接口測試工具介紹

這里呢 就是簡單給你個列表,后續(xù)呢我會寫jmeter 和 postman 的使用方法。

接口測試用例

基本信息(簡要)
列名 描述
接口名稱 這個接口的名稱
狀態(tài) 這個接口的狀態(tài),已完成、未完成
接口路徑 接口訪問的網(wǎng)址
請求參數(shù)
Headers:
??請求頭需要攜帶的值

Body:
??請求體的參數(shù),這個是接口的關(guān)鍵之一
??傳遞哪些參數(shù),什么數(shù)據(jù)類型,一般只有 number 和 string 類型。

返回數(shù)據(jù)
??這里聲明了這個接口調(diào)用成功返回什么結(jié)果,失敗返回什么結(jié)果。

設(shè)計用例

接口測試報告

另外寫一篇:https://blog.csdn.net/weixin_43664254/article/details/89951142

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容