api接口測試用例 接口測試用例設(shè)計(jì)是只針對(duì)一個(gè)個(gè)單接口測試,還是流程場景測試?
接口測試用例設(shè)計(jì)是只針對(duì)一個(gè)個(gè)單接口測試,還是流程場景測試?首先,我們需要區(qū)分業(yè)務(wù)流程場景和操作流程場景。業(yè)務(wù)流程場景一般是指系統(tǒng)的業(yè)務(wù)流程,類似于辦公流程,具有很強(qiáng)的流程性。對(duì)于業(yè)務(wù)流程場景,需要在
接口測試用例設(shè)計(jì)是只針對(duì)一個(gè)個(gè)單接口測試,還是流程場景測試?
首先,我們需要區(qū)分業(yè)務(wù)流程場景和操作流程場景。
業(yè)務(wù)流程場景一般是指系統(tǒng)的業(yè)務(wù)流程,類似于辦公流程,具有很強(qiáng)的流程性。
對(duì)于業(yè)務(wù)流程場景,需要在場景中設(shè)計(jì)接口的自動(dòng)用例。一般采用關(guān)鍵字驅(qū)動(dòng)的測試框架Python請(qǐng)求模塊。
參照關(guān)鍵字驅(qū)動(dòng)測試的思想,將接口請(qǐng)求發(fā)送、響應(yīng)驗(yàn)證和響應(yīng)內(nèi)容返回(下一個(gè)接口取決于上一個(gè)接口返回)三部分封裝為“請(qǐng)求驗(yàn)證”關(guān)鍵字。
同時(shí)封裝“content extraction”關(guān)鍵字,提取接口響應(yīng)體的具體數(shù)據(jù)。這樣就可以得到前一個(gè)接口返回的具體數(shù)據(jù)作為下一個(gè)接口的輸入?yún)?shù)。
就是這樣。任何業(yè)務(wù)場景都可以使用“請(qǐng)求驗(yàn)證”關(guān)鍵字、“內(nèi)容提取”關(guān)鍵字、“請(qǐng)求驗(yàn)證”關(guān)鍵字
操作流程場景通常是指先使用哪個(gè)函數(shù),然后使用哪個(gè)函數(shù)。沒有強(qiáng)制性的操作步驟規(guī)范,如單個(gè)查詢函數(shù)。
對(duì)于操作過程場景,我們可以根據(jù)情況對(duì)單個(gè)接口進(jìn)行自動(dòng)測試。許多現(xiàn)有的自動(dòng)化框架和工具都適用于此場景中的自動(dòng)化測試開發(fā),這里將不介紹這些內(nèi)容。
大家一般用什么工具測試HTTP和json接口?
Soupui,這是最常用的接口測試工具。
在我們的日常開發(fā)過程中,大多數(shù)是兩種類型的接口:soap API和rest API。Soupui對(duì)這兩個(gè)接口都有很好的支持,而且它還支持Amazon Web服務(wù),它只出現(xiàn)在軟件的首頁上,但沒有實(shí)際使用。
事實(shí)上,許多接口測試工具都很好地支持這兩種常見接口。這里我不詳細(xì)說明具體用法。它們都是圖形界面操作。您可以根據(jù)說明一步一步地創(chuàng)建一個(gè)新接口。
其中,壓力測試非常方便,也可以根據(jù)提示逐步創(chuàng)建。最后的操作頁面是這樣的:
您可以設(shè)置:并發(fā)數(shù)、策略、壓力測試時(shí)間等
結(jié)果可以顯示:最大響應(yīng)時(shí)間、最小響應(yīng)時(shí)間、平均響應(yīng)時(shí)間、TPS等。
非常容易使用,您可以嘗試。
在國外,資深的軟件測試人員大多是手動(dòng)測試,他們厲害之處在于測試用例的設(shè)計(jì),但在國內(nèi),很多測試人員都把自動(dòng)化測試當(dāng)成很厲害的資本,為什么?
Devops知道Internet應(yīng)用程序需要快速迭代,每天發(fā)布數(shù)百個(gè)版本。您可以手動(dòng)測試它們。記住要改變一個(gè)點(diǎn),你需要測試所有的點(diǎn)。如果是微服務(wù)架構(gòu),還需要測試項(xiàng)目團(tuán)隊(duì)的集成。
另外,測試是人寫的,用例是人設(shè)計(jì)的,可以反映人的水平。這臺(tái)機(jī)器只是重復(fù)地運(yùn)轉(zhuǎn),而且運(yùn)轉(zhuǎn)得更好。
Service層和Dao層真的有必要每個(gè)類都加上接口嗎?
這主要取決于您的項(xiàng)目:
例如,如果項(xiàng)目中使用hibernate,以后可能會(huì)切換到mybatis,那么Dao需要使用該接口。這不會(huì)影響上層代碼的更改。
另一個(gè)例子是,項(xiàng)目是一個(gè)單一的應(yīng)用程序。任何代碼修改都需要重新編譯整個(gè)項(xiàng)目,因此不需要接口。如果項(xiàng)目是由模塊編譯和部署的,那么可以使用接口解耦。假設(shè)修改了Dao,只需要重新編譯和部署Dao模塊,而不影響上層模塊。
此外,如果項(xiàng)目團(tuán)隊(duì)中有許多新手,簡單的代碼結(jié)構(gòu)可能更合適。復(fù)雜項(xiàng)目結(jié)構(gòu)的學(xué)習(xí)成本較高。
如果工程進(jìn)度非常緊迫,我們可以用簡單粗暴的方式用經(jīng)濟(jì)成本來說明原因。
使用接口的成本是不使用接口的成本(包括后續(xù)維護(hù)成本)。
如果項(xiàng)目變化很大,部署了模塊,項(xiàng)目不急,使用接口的成本比不使用接口的成本低,雖然早期不使用接口似乎更簡單;相反,不使用接口的成本低,而且連框架都不能用~
畢竟工具是提高效率的,那你為什么不能和自己相處呢!