接口自動化是怎么做的 Python如何實現(xiàn)對系統(tǒng)的API接口功能實現(xiàn)自動化測試?
Python如何實現(xiàn)對系統(tǒng)的API接口功能實現(xiàn)自動化測試?根據(jù)課題的描述,課題要解決的主要問題是:如何基于復(fù)雜場景(多接口耦合)進行接口自動測試。以上最佳實踐也是很多洞,涉水而出。我嘗試了很多方法,甚
Python如何實現(xiàn)對系統(tǒng)的API接口功能實現(xiàn)自動化測試?
根據(jù)課題的描述,課題要解決的主要問題是:如何基于復(fù)雜場景(多接口耦合)進行接口自動測試。
以上最佳實踐也是很多洞,涉水而出。我嘗試了很多方法,甚至開發(fā)了一個關(guān)鍵字驅(qū)動的自動化測試框架。讓我們談?wù)劵趫鼍暗淖詣踊睦щy,以及為什么最終選擇Python robot框架。
參照關(guān)鍵字驅(qū)動測試的思想,將接口請求發(fā)送、響應(yīng)驗證和響應(yīng)內(nèi)容返回三部分封裝為“請求驗證”關(guān)鍵字。
同時封裝“content extraction”關(guān)鍵字,提取接口響應(yīng)體的具體數(shù)據(jù)。這樣就可以得到前一個接口返回的具體數(shù)據(jù)作為下一個接口的輸入?yún)?shù)。
就是這樣。任何場景都可以通過“request verification”關(guān)鍵字、“content extraction”關(guān)鍵字和“request verification”關(guān)鍵字進行驗證
這里我們需要考慮選擇哪些方法和工具。首先,基于測試庫體系結(jié)構(gòu)框架的思想,用Python實現(xiàn)了關(guān)鍵字方法。robot框架工具的核心思想是關(guān)鍵字驅(qū)動,其主要功能是關(guān)鍵字庫、資源導(dǎo)入和用例編寫。建議將關(guān)鍵字方法作為庫導(dǎo)入后,每個關(guān)鍵字在自然語言中映射一次,方便業(yè)務(wù)測試人員使用。
Robot框架還支持?jǐn)?shù)據(jù)驅(qū)動。你可以了解它。
大家一般用什么工具測試HTTP和json接口?
Soupui,這是最常用的接口測試工具。
在我們的日常開發(fā)過程中,大多數(shù)是兩種類型的接口:soap API和rest API。Soupui對這兩個接口都有很好的支持,而且它還支持Amazon Web服務(wù),它只出現(xiàn)在軟件的首頁上,但沒有實際使用。
事實上,許多接口測試工具都很好地支持這兩種常見接口。這里我不詳細(xì)說明具體用法。它們都是圖形界面操作。您可以根據(jù)說明一步一步地創(chuàng)建一個新接口。
其中,壓力測試非常方便,也可以根據(jù)提示逐步創(chuàng)建。最后的操作頁面是這樣的:
您可以設(shè)置:并發(fā)數(shù)、策略、壓力測試時間等
結(jié)果可以顯示:最大響應(yīng)時間、最小響應(yīng)時間、平均響應(yīng)時間、TPS等。
非常容易使用,您可以嘗試。
接口自動化測試,數(shù)據(jù)庫表需要校驗嗎?
視情況而定。
接口讀取數(shù)據(jù)庫操作,如get模式,即查詢、驗證預(yù)期響應(yīng)內(nèi)容和實際響應(yīng)內(nèi)容,即驗證數(shù)據(jù)倉庫數(shù)據(jù)查詢過程,因此無需驗證數(shù)據(jù)庫。當(dāng)然,每次執(zhí)行自動化都需要環(huán)境初始化。在每次執(zhí)行自動化用例之前插入自動化測試數(shù)據(jù),執(zhí)行之后清除自動化數(shù)據(jù)。
寫入數(shù)據(jù)庫的接口,如post或delete模式,即寫入/刪除。一般來說,除了驗證預(yù)期的響應(yīng)結(jié)果和實際的響應(yīng)結(jié)果外,還需要驗證數(shù)據(jù)庫是否真的進行了相關(guān)的操作。因為接口返回的結(jié)果并不能真正反映數(shù)據(jù)是否被寫入或刪除。
通常使用SQL驗證。當(dāng)字段較多時,建議根據(jù)請求體封裝一個方法來實現(xiàn)拼接SQL的功能,具體如下:
然后封裝數(shù)據(jù)庫查詢方法來驗證count的個數(shù)是否等于期望的個數(shù)。
接口自動化測試有幾種方式?有沒有好用的自動化框架?
很多,不是一個接一個。
結(jié)合我們自己的實踐,我們建議使用robot框架或httprunner,它們基于Python開發(fā)和開源。你可以自己選擇百度。
如果業(yè)務(wù)場景包含接口依賴項,而B接口依賴于a接口的返回,建議使用robot框架和場景自動化的請求庫結(jié)合使用,以滿足您的需要。
Robot框架采用關(guān)鍵字驅(qū)動的測試框架,支持?jǐn)?shù)據(jù)驅(qū)動的測試框架,既滿足單一界面的要求,又滿足場景的自動測試覆蓋??梢允褂肞ython封裝請求發(fā)送、響應(yīng)處理關(guān)鍵字、響應(yīng)驗證斷言關(guān)鍵字。通過關(guān)鍵字的組合,實現(xiàn)了自動用例的編寫,開發(fā)效率高,維護成本低,降低了自動用例編寫的難度(前提測試開發(fā)人員封裝關(guān)鍵字,業(yè)務(wù)測試編寫測試用例)。